Microsoft Excel

Herbers Excel/VBA-Archiv

Uhrzeit in Text umwandeln mit VBA

Betrifft: Uhrzeit in Text umwandeln mit VBA von: Jürgen Donath
Geschrieben am: 27.08.2014 10:22:02

Guten Morgen,
ich muss in meinem Projekt Uhrzeiten vom Datumsformat ins Textformat umwandeln, weil die Uhrzeit dann in einen Text eingearbeitet werden muss.
Mit einer Tabellenfunktion geht das ganz gut. Wenn ich also in E6 als Uhrzeit 19:30 stehen habe, wird diese Zeit mit der Formel

=TEXT(REST(E9;1);"hh:mm")

in einen Text, also "19:30" umgewandelt.
Mache ich dies jedoch mit einer adäquaten VBA-Anweisung wie diese hier

ActiveCell.FormulaR1C1 = WorksheetFunction.Text(Range("E9") Mod 1, "hh:mm")

dann wird als Text nicht 19:30 sondern 00:00 ausgewiesen. Sieht jemand, wo hier mein Denkfehler liegt? Oder geht das überhaupt nicht mit VBA?
Über eine Antwort würde ich mich sehr freuen.

Liebe Grüße
Jürgen

  

Betrifft: AW: Uhrzeit in Text umwandeln mit VBA von: Rudi Maintaire
Geschrieben am: 27.08.2014 10:33:49

Hallo,
ganz einfach so:
ActiveCell = Format(Range("E9"), "hh:mm")

Gruß
Rudi


  

Betrifft: AW: Uhrzeit in Text umwandeln mit VBA von: Daniel
Geschrieben am: 27.08.2014 10:52:39

Hi

ich vermute mal, dass hier dann die Excelautomatik zuschlägt und den Text wieder in eine Uhrzeit wandelt, weil er wie eine Uhrzeit aussieht.

probiere es mal so:

ActiveCell.Value = "'" & Format(Range("E9").value, "hh:mm")
das Hochkomma ist das Texterkennungszeichen und verhindert die automatische Umwandlung der Eingabe.

Gruß Daniel


  

Betrifft: AW: Uhrzeit in Text umwandeln mit VBA von: Jürgen Donath
Geschrieben am: 27.08.2014 11:11:42

Danke euch Dreien für die schnelle Antwort. Rudis Vorschlag geht leider nicht, da bleibt das Zeitformat erhalten, aber die beiden Hochkommavorschläge sind genial. Die gehen beide.

Einen schönen Tag noch
Jürgen


  

Betrifft: AW: Uhrzeit in Text umwandeln mit VBA von: Jürgen Donath
Geschrieben am: 27.08.2014 11:47:59

Danke euch Dreien für die schnelle Antwort. Rudis Vorschlag geht leider nicht, da bleibt das Zeitformat erhalten, aber die beiden Hochkommavorschläge sind genial. Die gehen beide.

Einen schönen Tag noch
Jürgen


  

Betrifft: AW: Uhrzeit in Text umwandeln mit VBA von: Jürgen Donath
Geschrieben am: 27.08.2014 13:10:28

Nochmal von mir etwas zu dem Thema. Hochkomma ist prima, wenn die in Text umgewandelte Uhrzeit für sich in einer Zelle steht. Wird dieser Text jedoch in einen anderen Text integriert, so wie hier

"19:30 - 23:45"
dann wird vor der 2. Uhrzeit das Hochkomma sichtbar: "19:30 - '23:45"

Um das zu vermeiden, habe ich vorher die aktive Zelle als Text formatiert und dann das Hochkomma weggelassen.
Man lernt immer wieder dazu.

Tschüß
Jürgen


  

Betrifft: AW: Uhrzeit in Text umwandeln mit VBA von: Daniel
Geschrieben am: 27.08.2014 13:24:53

Hi
das Hochkomma brauchst du nur am Anfang und auch nur dann, wenn der Text für Excel als Zahl, Zeit oder Datum erkenntbar ist, denn dann versucht Excel die Umwandlung in einen dieser Werte.
Sobald du den Wert mit weiteren Zeichen kompinierst, kann Excel die Eingabe nicht mehr zuordnen und behandelt sie als Text, auch ohne Hochkomma.

Gruß Daniel


  

Betrifft: AW: Uhrzeit in Text umwandeln mit VBA von: fcs
Geschrieben am: 27.08.2014 10:43:55

Hallo Jürgen,

die REST-Funktion ist in deiner Formel nicht erforderlich. TEXT(E9;"hh:mm") liefert immer nur die Stunden:Minuten-Darstellung, des Wertes nach dem Dezimalzeichen.

Die Mod-Funktion im Code ist hier komplett falsch. Sie liefert immer eine Ganze Zahl als Ergebnis und die ist bei Wert Mod 1 immer 0.

Damit die Umwandlung der Excel Zeit via VBA in Text funktioniert muss du die Einfügezellen als Text formatieren, oder der Uhrzeit ein Hochkomma voranstellen. Ich empfehle die Hochkomma-Variante.

Sub aaTest()
  ActiveCell.Value = "'" & WorksheetFunction.Text(Range("E9"), "hh:mm")
  'oder Alternativ
  ActiveCell.Offset.Value = "'" & Format(Range("E9"), "hh:mm")
End Sub
Gruß
Franz


 

Beiträge aus den Excel-Beispielen zum Thema "Uhrzeit in Text umwandeln mit VBA"