VBA Ergebnis ungleich Manuel nach value=value

Bild

Betrifft: VBA Ergebnis ungleich Manuel nach value=value
von: Thorben
Geschrieben am: 20.11.2015 11:51:26

Moin moin alle zusammen,
ich habe hier eine Musterdatei in der eine einfache Abfrage + Berechnung stattfindet.
https://www.herber.de/bbs/user/101668.xlsm
1 Formel
1 x manuell
1 x mit dem Recorder aufgenommen und dann per VBA
Die manuelle Excel Formel gibt alles richtig wieder.
Schreibe ich die Formel nun per VBA in die Zellen dann gibt diese bei einigen
statt des gewünschtem Ergebnis ein binäres Datum zurück???
Fehler gefunden, hier:

  • With Range("D2:D" & Cells(Rows.Count, "A").End(xlUp).Row)
    arr = .Value2
    .Value2 = arr
    End With ' Range

  • Wenn ich diese Prozedur nun weglasse ist alles i.O.
    Meine Frage nun: Warum?
    Bitte schauts euch mal an und freue mich auf euer Feedback!
    Vielen Dank und Gruß
    Thorben

    Bild

    Betrifft: AW: VBA Ergebnis ungleich Manuel nach value=value
    von: Rudi Maintaire
    Geschrieben am: 20.11.2015 12:09:13
    Hallo,
    das liegt an den automatischen Umwandlungsfunktionen.
    Formatiere die Zellen vor der Umwandlung als Text.

        With Range("D2:D" & Cells(Rows.Count, "A").End(xlUp).Row)
        .NumberFormat = "@"
          arr = .Value2
        .Value2 = arr
        End With ' Range
    Gruß
    Rudi

    Bild

    Betrifft: AW: VBA Ergebnis ungleich Manuel nach value=value
    von: Daniel
    Geschrieben am: 20.11.2015 12:17:13
    Hi
    wenn du auf diese Weise per Makro Werte in eine Zelle oder einen Zellbereich schreibst, dann prüft Excel nochmal nach, ob es sich bei der Eingabe um eine Zahl, ein Datum oder eine Formel handeln könnte und wandelt die Eingabe entsprechend um.
    Nur wenn die Eingabe weder als Zahl, Datum oder Formel erkannt wird, wird sie als Text interpretiert und unverändert in der Zelle angezeigt.
    Desweiteren ist es so, dass Excel für diese Prüfung immer die internationalen Schreibweisen zu Grunde legt, wenn die Eingabe durch ein Makro erfolgt.
    Da international auch der "/" als Trennzeichen im Datum verwendet wird, erkennt Excel das "5/10" und andere eben als Datum in Kurzschreibweise und wandelt die Eingabe in ein Datum um.
    Da du das Zahlenformat der Zellen nicht änderst und dieses weiterhin auf Standard steht, wird der dem Datum entsprechende Ganzzahlwert angezeigt (in Excel ist ein Datum eine normale Zahl, ein Tag entspricht dem Wert 1. Die Zählung beginng am 1.1.1900 und wird jeden Tag um 1 hochgezählt.
    Gruß Daniel

    Bild

    Betrifft: gemerkt/gespeichert Vielen Dank ihr beiden! owT
    von: Thorben
    Geschrieben am: 20.11.2015 12:44:54
    .

     Bild

    Beiträge aus den Excel-Beispielen zum Thema "VBA Ergebnis ungleich Manuel nach value=value"