Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Format Datum in Range

Format Datum in Range
15.03.2021 15:05:12
Jerry
Liebe Community,
Nach 4 Stunden Quälerei mit Datumsformat darf ich mich bitte an Euch wenden:
Es befinden sich im Bereich A5:A50 Datumswerte, zB 04.01.2021 etc
Wenn ich über TypeName(ActiveCell.Value) im Direktfenster die Einträge abfrage handelt es sich
um Strings.
Ich kann nicht mit Range("A5:A50).NumberFormat= "dd/mm/yy" diese Strings ins Format Datum umwandeln
es bleiben Strings.
Was muss ich bitte tun?
Mit bestem Dank für Eure Hilfe
Jerry Stewart

Anzeige

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Format Datum in Range
15.03.2021 15:10:07
ralf_b
format setzen und dann Werte auf sich selbst einfügen einfügen.
Range("A5:A50).value = Range("A5:A50).value nur so ne Idee.

AW: Format Datum in Range
15.03.2021 15:13:39
Werner
Hallo,
Sub Makro1()
Range("A4:A50").TextToColumns Destination:=Range("A4"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
End Sub
Gruß Werner

Anzeige
AW: Format Datum in Range
15.03.2021 15:16:33
Daniel
Hi
Erstmal die Strings in Datumswerte wandeln.
Ich würde die Menüfunktion Daten - Datentools - Text in Spalten auf den Zellbereich A5:A50 anwenden und im Schritt 3 des Assistenten angeben, dass die Werte Datum sein sollen und in welcher Reihenfolge Tag, Monat und Jahr angegeben sind.
Wenn du das als Makro brauchst, lass den Recorde mitlaufen.
Alternativ kannst du auch eine leere Zelle kopieren und mit I halte-Einfügen und der Operation "addieren" in die Zellen einfügen.
Oder einfach mit der Menüfunktion "Ersetzen" Punkt durch Punkt austauschen.
Beides könnte aber bei Ausführung per Makro Probleme machen, WG der unterschiedlichen Anordnung von Monat und Tag in Europa und USA, bzw bei der Ausführung per Makro, nur bei text-,in-Spalten kannst du das explizit angeben.
Gruß Daniel

Anzeige
AW: Format Datum in Range
15.03.2021 15:17:03
Daniel
Hi
Erstmal die Strings in Datumswerte wandeln.
Ich würde die Menüfunktion Daten - Datentools - Text in Spalten auf den Zellbereich A5:A50 anwenden und im Schritt 3 des Assistenten angeben, dass die Werte Datum sein sollen und in welcher Reihenfolge Tag, Monat und Jahr angegeben sind.
Wenn du das als Makro brauchst, lass den Recorde mitlaufen.
Alternativ kannst du auch eine leere Zelle kopieren und mit I halte-Einfügen und der Operation "addieren" in die Zellen einfügen.
Oder einfach mit der Menüfunktion "Ersetzen" Punkt durch Punkt austauschen.
Beides könnte aber bei Ausführung per Makro Probleme machen, WG der unterschiedlichen Anordnung von Monat und Tag in Europa und USA, bzw bei der Ausführung per Makro, nur bei text-,in-Spalten kannst du das explizit angeben.
Gruß Daniel

Anzeige
noch mit entspr. Formatierung
15.03.2021 15:19:14
Werner
Hallo,
Sub Makro1()
Range("A4:A50").TextToColumns Destination:=Range("A4"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
Range("A4:A50").NumberFormat = "dd\/mm\/yy"
End Sub
Gruß Werner

Anzeige
AW: noch mit entspr. Formatierung
15.03.2021 15:29:00
Jerry
Besten Dank, Werner, funktioniert perfekt, Dein Code!
Nur eine Frage: das kann doch nicht sein, dass es so kompliziert ist, oder?
Gruss
Jerry

AW: noch mit entspr. Formatierung
15.03.2021 15:32:44
Werner
Hallo,
was bedeutet "kompliziert"? Text ist halt nun mal Text und keine Zahl. Da änderst du auch nichts dran, wenn du die Zellformatierung änderst - das bleibt trotzdem Text.
Stellt sich die Frage, ob du das Pferd von hinten aufzäumst. Wie kommen denn deine "Text-Datumswerte" in die Zellen? Wenn möglich solltest du vielleicht da ansetzen.
Gruß Werner

Anzeige
AW: noch mit entspr. Formatierung
15.03.2021 16:03:46
Jerry
Hallo Werner,
Dein Code funktioniert insofern perfekt, als dass die gesamte Range als Datum formatiert ist.
Aber er bringt Einträge durcheinander: in meiner Range sind nur aufsteigende Daten gereiht,
nach der Anwendung Deines Codes steht zB 11.03.21 und danach 02.03.21
Ich habe keine Ahnung nach welchem Muster die Datumsangabe durcheinander gebracht werden.
Vielleicht kannst Du mir eine Aufklärung geben.
Besten Dank
Jerry

Anzeige
AW: noch mit entspr. Formatierung
15.03.2021 17:27:37
Werner
Hallo,
bei mir nicht. Mehr kann ich dazu nicht sagen, deine Datei kenne ich nicht.
Also lade mal deine Datei, bei der das so ist, hier hoch.
Gruß Werner

AW: noch mit entspr. Formatierung
16.03.2021 09:21:27
Jerry
Hallo Werner,
Danke für Deine Hilfe!
Ich habe die Datei nun hochgeladen mit den Datumsangaben.
Wenn man den Datentyp abfragt zB im Direktfenster mit ?TypeName(ActiveCell.Value)
bekommt man Range zurück.
Man kann direkt zB mit "Zellen formatieren" in Zahl oder Datum nichts machen,
man bekommt die Eigenschaft Range nicht weg.
Man kann die Angaben weder in eine Zahl noch in ein Datum umwandeln.
Mysteriös!
LG
Jerry

Anzeige
du hast nix hochgeladen...
16.03.2021 09:37:18
Werner
Hallo,
...vermutlich hast du den Link, der von der Forensoftware erzeugt wird, nicht kopiert und in den Beitrag eingefügt.
Gruß Werner

AW: du hast nix hochgeladen...
16.03.2021 10:22:25
Jerry
Könntest du mir bitte Deine Email-Adresse geben, Werner, wär einfacher, Danke!

Wenn jetzt plötzlich deine Daten...
16.03.2021 10:54:00
Werner
Hallo,
...in B6 bis B50 stehen und nicht wie im Eingangsbeitrag in A4 bis A50, dann mußt du halt auch die Bezüge im Makro entsprechend anpassen.
Sub Makro1()
Range("B6:B50").TextToColumns Destination:=Range("B6"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
Range("B6:B50").NumberFormat = "dd\/mm\/yy"
End Sub
Gruß Werner

Anzeige
AW: Wenn jetzt plötzlich deine Daten...
16.03.2021 11:08:37
Jerry
ja das ist klar, Werner, hab ich auch gemacht, Danke!
Ich habe Dir ja nur einen kleinen Auszug aus der OriginalDatei in eine MAppe schnell kopiert.
In der OriginalDatei sind alle Datumsangaben in Spalte A und werden durcheinander gebracht.
Was hat es in Deinem Code mit :=Array(1,4) zu tun, das könnte eventuell ursächlcih für die Veränderung der Sortierung sein.
Danke für Deine Hilfe,
LG
Jerry

Anzeige
AW: Wenn jetzt plötzlich deine Daten...
16.03.2021 11:24:57
Werner
Hallo,
und warum schickst du nicht deine Originalmappe? Die Mappe mit den "Datumswerten" in Spalte A reicht, alle übrigen Daten kannst du löschen.
Gruß Werner

AW: Wenn jetzt plötzlich deine Daten...
16.03.2021 11:47:43
Jerry
Sorry, Werner, der Fehler lag nicht an Deinem Code, sondern an der Quelldatei!!!
Vielen Dank, ich hoffe ich komm weiter, sonst melde ich mich nochmal,
LG
Jerry

Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
16.03.2021 12:15:45
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datumsformatierung in Excel: So klappt's!


Schritt-für-Schritt-Anleitung

Um Datumsangaben in einem Excel-Bereich korrekt zu formatieren, kannst Du folgende Schritte befolgen:

  1. Datumswerte überprüfen: Stelle sicher, dass die Werte in Deinem Bereich (z.B. A5:A50) tatsächlich als Strings vorliegen. Du kannst dies mit dem Befehl TypeName(ActiveCell.Value) überprüfen.

  2. Text in Spalten verwenden:

    • Markiere den Zellbereich A5:A50.
    • Gehe zu Daten > Datentools > Text in Spalten.
    • Wähle im Assistenten die Option Getrennt und klicke auf Weiter.
    • Klicke erneut auf Weiter und wähle im Schritt 3 Datum und die Reihenfolge Tag, Monat, Jahr.
    • Klicke auf Fertig stellen.
  3. VBA-Makro verwenden: Alternativ kannst Du auch ein VBA-Makro verwenden:

    Sub Makro1()
       Range("A5:A50").TextToColumns Destination:=Range("A5"), DataType:=xlDelimited, _
       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
       Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
       :=Array(1, 4), TrailingMinusNumbers:=True
       Range("A5:A50").NumberFormat = "dd/mm/yy"
    End Sub
  4. Endgültige Formatierung: Überprüfe anschließend, ob die Datumswerte korrekt angezeigt werden.


Häufige Fehler und Lösungen

  • Strings bleiben Strings: Wenn die Datumswerte nach der Formatierung weiterhin als Strings angezeigt werden, stelle sicher, dass Du die Text in Spalten-Funktion korrekt angewendet hast.

  • Falsche Reihenfolge der Datumswerte: Wenn die Datumswerte nach der Formatierung durcheinander geraten, könnte dies an der Quelle der Daten liegen. Überprüfe die Quelldatei auf Unstimmigkeiten.


Alternative Methoden

  1. Leere Zelle kopieren: Du kannst auch eine leere Zelle kopieren und dann mit Einfügen > Werte einfügen und der Operation Addieren die Strings in Datumswerte umwandeln.

  2. Ersetzen-Funktion: Verwende die Ersetzen-Funktion, um Punkte durch Schrägstriche zu ersetzen, bevor Du die Datumsformatierung anwendest.

  3. VBA Range.Format: Du kannst auch das vba.range.format-Objekt nutzen, um die Formatierung direkt auf die Zellen anzuwenden.


Praktische Beispiele

  • Beispiel 1: Angenommen, Du hast die folgenden Datumswerte in A5:A50:

    04.01.2021
    15.01.2021
    20.01.2021

    Nach Anwendung der oben beschriebenen Methoden sollten die Werte korrekt als Datumswerte im Format dd/mm/yy angezeigt werden.

  • Beispiel 2: Wenn Du die VBA-Methode anwendest, wird der gesamte Zellbereich mit nur einem Klick formatiert.


Tipps für Profis

  • Verwende Datenüberprüfung, um sicherzustellen, dass nur gültige Datumswerte in die Zellen eingegeben werden.
  • Experimentiere mit verschiedenen Excel-Formatierungen, um die Anzeige Deiner Daten zu optimieren.
  • Bei der Verwendung von VBA ist es sinnvoll, die Option Explicit zu verwenden, um Fehler bei der Variablen-Deklaration zu vermeiden.

FAQ: Häufige Fragen

1. Warum bleibt mein Datum nach der Formatierung ein String?
Das liegt oft daran, dass die ursprünglichen Daten nicht im richtigen Format vorliegen. Verwende die Text in Spalten-Funktion, um sie korrekt zu konvertieren.

2. Wie kann ich Datumswerte in einer anderen Reihenfolge formatieren?
Du kannst die Reihenfolge im Schritt 3 des Text in Spalten-Assistenten anpassen oder im VBA-Code die FieldInfo-Parameter ändern.

3. Was ist der Unterschied zwischen Range.NumberFormat und Range.Format?
Range.NumberFormat ändert nur die Anzeige des Formats, während Range.Format auch die zugrunde liegenden Daten beeinflussen kann.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige