Office: Variant-Variable konvertiert Datum

Helfe beim Thema Variant-Variable konvertiert Datum in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Wissende, folgendes Problem. Ich bekomme von einer Funktion ein Array aus Strings zurück. Der Rückgabewert muss aber zwingend vom Type Variant... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Steffen0815, 16. September 2006.

  1. Variant-Variable konvertiert Datum


    Hallo Wissende,
    folgendes Problem.
    Ich bekomme von einer Funktion ein Array aus Strings zurück.
    Der Rückgabewert muss aber zwingend vom Type Variant sein.

    Jetzt fängt aber VBA an zu denken, sobald ein Element ein Datum ist, wandelt er es in Double um.
    Bsp.:
    Ausgangsdaten: "Ein String","05.04.2006","Noch ein String"
    Übergebene Daten:
    VVar(0) : "Ein String" VarType: vbString
    VVar(1) : 38812 VarType: vbDouble ' das war mal "05.04.2006"
    VVar(2) : "Noch ein String" VarType: vbString

    Tja leider nützt mir die 38812 nichts - ich brauche den Text "05.04.2006".
    Nun könnte man versuchen das zurückzuwandeln.
    Allerdings weiß ich nicht, ob im Text "05.04.2006" oder z.B. "5.4.06" stand.

    Ich denke fast meine Frage ist hoffnungslos: kann ich VBA zwingen im Variant nur strings zu übergeben.

    :)
     
    Steffen0815, 16. September 2006
    #1
  2. Hi Steffen,

    Zwingend? Ich halte VarTypen immer für die ungünstigste Lösung. Zum einen könntest Du überlegen, die eingelesenen Werte nicht erst einmal generell in Strings umzuwandeln. Bsp.: aVar(0) = cstr(25)
    Beim Auslesen dann mit IsNumeric oder IsDate könnten die Daten ja entsprechend ausgewertet und mit den Typumwandlungsfunktionen ] CDate, CDbl, etc.] wieder zurück verwandelt werden. Oder, Du erstellst Dir einen benutzerdefinierten Typ. Bsp.:

    Code:
    Dein Array bekommt dann diesen Typ zugewiesen:
    Code:
    ...und einlesen dann so:

    Code:
     
  3. Hallo Ralf,
    Dank für die Antwort.
    Aber zwingend heißt zwingend *wink.gif*.

    Die VBA-Funktion DDERequest liefert nun mal variant (lt. Dokumentation eine Matrix) zurück, da kann man nichts ändern.

    Tja und die Rückkonvertierung geht eben nicht, da ich nicht weiß in welchem Format das Datum vorlag (das ist ein beliebiger Text und da kann ein Nutzer halt auch ein Datum in beliebiger Form reinschreiben).
     
    Steffen0815, 18. September 2006
    #3
  4. Variant-Variable konvertiert Datum

    Hi Steffen,

    ich nehme mal an, es geht um Parameter 3 (Data). Versuche mal folgendes:

    CVar(Cstr(Datenwert))
     
  5. Hallo Steffen,

    mal ein Beispiel zum nachvollziehen der Zell Formatierung

    in einer leeren Blatt gibst Du mal ein Datum ein dam wird automatisch die Zell Formatierung auf "*14.03.2001" gesetzt also eine Datums Zell Formatierung.

    Die Leer Zelle ist Immer Mit Standart Formatiert.

    also musst Du nur die Zell Formatierung In das Zell Format Datum umändern dann Siehst Du das Datum als Datum nicht Als Zahl.

    Wenn Du die Zahlen Siehst dann ist die Zell Formatierung Auf Standart nicht Auf Datum.


    Beispiel Für Zelle A1

    Range("A1").Select
    Selection.NumberFormat = "m/d/yyyy"

    Gruß Peter9
     
  6. \@Peter:
    leider hilft mir das nicht weiter, da es nicht um das Formatieren von Zellen geht, sondern um normale Variable.

    @Ralf:
    Es geht um DDERequest, ich hatte den Beitrag im Nachhinein geändert .
    Eine Rückkonvertierung ist nicht möglich. Nachfolgendes Beispiel zeigt, was im Prinzip passiert: Code:
    Aus dem Datumswert lässt sich der String nicht mehr herstellen.

    [edit]
    Also ich hab mir die ganze Sache noch mal durchdacht.
    Also das sendente Programm nimmt scheinbar die entsprechenden Typanpassungen vor (nicht VBA "denkt" sondern das andere Programm).
    Da ich darauf keinen Einfluss habe, dürfte mein Problem leider nicht zu lösen sein. *mad.gif*
    Trotzdem Dank für's mitdenken
    [/edit]
     
    Steffen0815, 18. September 2006
    #6
  7. Hallo Steffen,

    zu dein ersten dann sollte erstmal die Formatierung Stimmen

    deine geänderte Sache sehe ich mir mal nachher an

    gruß Peter9

    Code:
     
  8. Variant-Variable konvertiert Datum

    hallo Steffen,

    so das müsste auch gehen.

    Code:
    Gruß Peter9
     
  9. Hallo Peter,
    danke für deine Mühe, aber das Problem ist, dass das was DDERequest zurückgibt von mir nicht beeinflusst werden kann.
    DDERequest ist die Aufforderung an ein externes Programm Daten an Excel zu schicken. (mein Code war nur Simulation)
    VBA verlangt zwingend eine Variantvariable und das externe Programm "nutzt das hemmungslos aus", um die einzelnen Komponenten verschieden zu formatieren. sh. erster Beitrag.
     
    Steffen0815, 18. September 2006
    #9
Thema:

Variant-Variable konvertiert Datum

Die Seite wird geladen...
  1. Variant-Variable konvertiert Datum - Similar Threads - Variant Variable konvertiert

  2. VBA:Laufzeitfehler beim Einlesen in Variable

    in Microsoft Excel Hilfe
    VBA:Laufzeitfehler beim Einlesen in Variable: Hallo Excel Freaks, ich habe eine Frage, ein Problem wo ich nicht mehr weiter weis.... In eine Exceldatei kopiere ich mir über Makro auf ein Tabellenblatt von anderen Exceldateien das...
  3. Informationen von ausgewählten Variante übertragen

    in Microsoft Excel Hilfe
    Informationen von ausgewählten Variante übertragen: Hallo zusammen, folgendes Problem kann ich nicht lösen: Ich habe beispielsweise mehrere Varianten zur Auswahl, die ich manuell eingebe in Excel. Am Ende entscheide ich mich für eine Variante,...
  4. Variant Array in Range

    in Microsoft Excel Hilfe
    Variant Array in Range: Hallo mal wieder, Ich schreibe gerade eine Klasse "Film". Diese beinhaltet Informationen wie "Name", "Regisseur", "Erscheinungsjahr" etc. In der Klasse gibt es außerdem eine Prozedur, die den...
  5. Variant-Array auslesen // Array in Zellen einfügen

    in Microsoft Excel Hilfe
    Variant-Array auslesen // Array in Zellen einfügen: Hallo zusammen, per Variant hab ich eine Range eingelesen und möchte diesen nun Ausgaben, bekomme bei der aktuelle Variante allerdings einen Laufzeitfehler(9) wenn ich meinen aktuellen Code...
  6. Unterschiedliche Varianten eines Frontends durch direkte Anpassungen der Datei?

    in Microsoft Access Hilfe
    Unterschiedliche Varianten eines Frontends durch direkte Anpassungen der Datei?: Guten Morgen Zusammen, ich habe eine kurze Frage, um sicherzugehen, dass ich bei der Aufteilung meiner DB und der späteren Pflege/Entwicklung richtig vorgehe: Wenn ich die DB in Front- und...
  7. Microsoft Team kostenlos, Anzeige der Besprechungen in der Windows Desktop Variante und IOS ...

    in Microsoft Teams Hilfe
    Microsoft Team kostenlos, Anzeige der Besprechungen in der Windows Desktop Variante und IOS ...: Ich habe beide Versionen installiert, a) auf einem Windows Computer und b) auf einem Iphone. Ich bin der Besitzer eines Teams und verwende jedesmal den gleichen Zugang. Während auf meinem Iphone...
  8. ListObject - Varinate A funktioniert, aber Variante B nicht?

    in Microsoft Excel Hilfe
    ListObject - Varinate A funktioniert, aber Variante B nicht?: Hallo, mal eine Frage. Ich möchte ein einfaches ListObject erstellen. Variante A funktioniert ohne Probleme. .ListObjects.Add(xlSrcRange, rngListRange, False, xlYes).Name =...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden