Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Text in Spalten nach Uhrzeit-Format

VBA Text in Spalten nach Uhrzeit-Format
02.05.2019 13:56:29
Jan
Hallo zusammen,
ich versuche eine Spalte (Datum Uhrzeit) mit "Text in Columns" so zu formatieren, dass die Uhrzeit in eine extra Spalte eingetragen wird. Habe das Problem, dass mit diesem Code immer nach US Zeit (AM;PM) formatiert wird.
Kann mir jemand weiterhelfen?
https://www.herber.de/bbs/user/129530.xlsx
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 2), Array(2, 1)), TrailingMinusNumbers:=True
Grüße
Jan
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Text in Spalten nach Uhrzeit-Format
02.05.2019 15:19:18
Jan
*Es soll in der 24 Stunden Zählung ausgegeben werden.
AW: VBA Text in Spalten nach Uhrzeit-Format
02.05.2019 18:16:10
Daniel
VBA denkt amerikanisch.
Du musst dann selber das Zahlenformat der Zelle auf hh:mm setzen.
Gruß Daniel
Anzeige
AW: VBA Text in Spalten nach Uhrzeit-Format
03.05.2019 09:38:29
Jan
Danke für die Antwort :) !
Das funktioniert leider nicht mehr nachdem das Makro ausgeführt wurde.
Mir würde schon reichen, wenn das "AM" und "PM" mit der Uhrzeit in Spalte B und nicht in einer weiteren Spalte eingetragen wird.
Grüße
Jan
AW: VBA Text in Spalten nach Uhrzeit-Format
03.05.2019 10:01:19
Daniel
Hi
das grundsätzliche Problem bei deiner Aufgabe ist, dass du mit dem Text-In-Spalten hier keinen Text bearbeitest, sondern eine Zahl mit einer besonderen Formatierung (Datum) und in VBA daher auch schon für die Zerlegung das Datum im amerikanischen Format verwendet: "MM/DD/YYYY hh:mm AM"
durch das Leerzeichen als Trennzeichen wird aber auch das AM/PM abgetrennt und damit ist eine Rückumwandlung des Wertes in eine echte Uhrzeit nicht mehr möglich.
du hast da zwei Lösungsvarianten:
a) zu verwendest das TEXT IN SPALTEN nicht mit dem Leerzeichen als Trennzeichen, sondern trennst mit fester Breite nach dem 10. Zeichen in zwei Spalten.
b) du arbeitest nicht mit TEXT IN SPALTEN, sondern ermitteltst Datum und Uhrzeit per Formel:
Datum: =Ganzzahl(A3)
Uhrzeit: =Rest(A3;1)
Gruß Daniel
Anzeige
AW: VBA Text in Spalten nach Uhrzeit-Format
03.05.2019 10:16:42
Jan
Hi,
super Variante a) funktioniert!
Vielen Dank!
Gruß Jan
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Uhrzeit-Formatierung in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um eine Spalte mit Datum und Uhrzeit in Excel so zu formatieren, dass die Uhrzeit in einer separaten Spalte ausgegeben wird, kannst du den folgenden VBA-Code nutzen. Dieser Code stellt sicher, dass die Uhrzeit im 24-Stunden-Format (also ohne AM/PM) dargestellt wird:

Sub FormatUhrzeit()
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 2), Array(2, 1)), TrailingMinusNumbers:=True

    ' Formatieren der Zellen
    Range("B:B").NumberFormat = "hh:mm"
End Sub

Dieser Code verwendet die TextToColumns-Methode, um die Daten zu trennen und anschließend das Zahlenformat der Zielzelle auf hh:mm zu setzen.


Häufige Fehler und Lösungen

  1. AM/PM wird nicht korrekt formatiert.

    • Lösung: Stelle sicher, dass du das richtige Zahlenformat für die Uhrzeit in Spalte B anwendest. Verwende dafür Range("B:B").NumberFormat = "hh:mm".
  2. Uhrzeit wird in amerikanischem Format angezeigt.

    • Lösung: Achte darauf, dass dein Quellformat richtig eingestellt ist. Der VBA-Code sollte die Trennung mit fester Breite nach dem 10. Zeichen nutzen, um das Datum und die Uhrzeit korrekt zu separieren.

Alternative Methoden

Wenn die TextToColumns-Methode nicht die gewünschten Ergebnisse liefert, kannst du auch folgende Formeln verwenden:

  • Datum extrahieren: =Ganzezahl(A3)
  • Uhrzeit extrahieren: =Rest(A3;1)

Diese Formeln arbeiten direkt mit dem Zahlenformat und sind oft effektiver, wenn das ursprüngliche Format nicht wie gewünscht funktioniert.


Praktische Beispiele

Nehmen wir an, du hast in Spalte A folgende Werte:

01/01/2023 15:30 AM
01/01/2023 10:15 PM

Nutze den oben genannten VBA-Code, um die Werte in Spalte B in folgendem Format auszugeben:

15:30
22:15

Falls du die Formeln verwendest, trage sie in die entsprechenden Zellen ein, um die Werte zu extrahieren.


Tipps für Profis

  • Nutze den TextQualifier in Kombination mit den richtigen Trennzeichen, um sicherzustellen, dass die Daten korrekt interpretiert werden.
  • Überprüfe regelmäßig das NumberFormat, um sicherzustellen, dass die Ausgabe in dem gewünschten Format erfolgt. Das richtige excel vba uhrzeit format kann entscheidend sein, um Missverständnisse zu vermeiden.
  • Experimentiere mit den FieldInfo-Parametern, um die Ausgaben weiter anzupassen und zu individualisieren.

FAQ: Häufige Fragen

1. Warum wird die Uhrzeit nicht im 24-Stunden-Format angezeigt?
Überprüfe das NumberFormat der Zelle. Stelle sicher, dass es auf hh:mm gesetzt ist.

2. Welche Excel-Version benötige ich für die Verwendung von VBA?
Die meisten modernen Excel-Versionen unterstützen VBA, aber es wird empfohlen, Excel 2010 oder höher zu verwenden, um die besten Ergebnisse zu erzielen.

3. Was ist der Unterschied zwischen TextToColumns und Formeln?
TextToColumns teilt Daten auf Basis von Trennzeichen, während Formeln direkt mit den Daten arbeiten und oft flexibler sind, wenn es um spezielle Formate geht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige