Hallo zusammen.
Ich schreibe mittels VBA den Inhalt einer Tabelle in eine Textdatei.
In B2 steht eine Uhrzeit in folgendem Schema: hh:ii:ss.
In der erzeugten Textdatei steht 402.336.868.046.296.
Warum das?
Wie kann ich die 402.336.868.046.296 Zahl in die richtige Uhrzeit umwandeln?
Gibts hierfür vordefinierte Excel-Formeln, wenn es eine Excel-Formel gibt, wie berechne ich diese Uhrzeit ohne Excel? Gibts hierfür einen Lösungsansatz?
Danke euch.
Freundliche Grüße,
Sebastian
Hallo Sebastian,
Ich schreibe mittels VBA den Inhalt einer Tabelle in eine
Textdatei.
In B2 steht eine Uhrzeit in folgendem Schema: hh:ii:ss.
ii? Das geht?
In der erzeugten Textdatei steht 402.336.868.046.296.
Zeig mal den Code. Was steht denn in B2, bzw. was wird angezeigt wenn die Zelle auf TT.MM.JJJJ hh:mm:ss formatierst?
Wie kann ich die 402.336.868.046.296 Zahl in die richtige
Uhrzeit umwandeln?
X,5645786 bzw. 0,5645786 könnte ich ja als Uhrzeit verstehen, deine zahl sagt mir nix.
Gibts hierfür vordefinierte Excel-Formeln, wenn es eine
Excel-Formel gibt, wie berechne ich diese Uhrzeit ohne Excel?
Gibts hierfür einen Lösungsansatz?
„Ohne Excel“ = mit Vba?
Gruß
Reinhard
Hi Reinhard.
ii? Das geht?
Sorry, das war ein Tippfehler, ich meinte mm!! 
Zeig mal den Code. Was steht denn in B2, bzw. was wird
angezeigt wenn die Zelle auf TT.MM.JJJJ hh:mm:ss formatierst?
Ich habe hier keinen Code, es steht zB 11:48:11 drinnen.
In der TXT-Datei steht aber die lange Zahl. Sind das womöglich Millisekunden?
X,5645786 bzw. 0,5645786 könnte ich ja als Uhrzeit verstehen,
deine zahl sagt mir nix.
„Ohne Excel“ = mit Vba?
Ja zB in VBA.
Ich habe eine Formel im WWW gefunden und zwar steht in
A1 > 402.336.451.349.537
B1 > =DATUM(LINKS(A1;1)+2000;TEIL(A1;2;2);TEIL(A1;4;2))+ZEIT(TEIL(A1;6;2);RECHTS(A1;2)
In B1 steht 38050,69236, wenn ich die Zelle in Uhrzeit formatiere steht: 16:37:00.
Freundliche Grüße,
Sebastian
Hallo Sebastian,
Zeig mal den Code. Was steht denn in B2, bzw. was wird
angezeigt wenn die Zelle auf TT.MM.JJJJ hh:mm:ss formatierst?
Ich habe hier keinen Code, es steht zB 11:48:11 drinnen.
In der TXT-Datei steht aber die lange Zahl. Sind das womöglich
Millisekunden?
eher nein.
11:48:11 wäre als Zahl 0,4917939814815
1 ist quasi 24h, ,5 ist 12:00 usw.
Ich habe eine Formel im WWW gefunden und zwar steht in
A1 > 402.336.451.349.537
B1 >
=DATUM(LINKS(A1;1)+2000;TEIL(A1;2;2);TEIL(A1;4;2))+ZEIT(TEIL(A1;6;2);RECHTS(A1;2)
In B1 steht 38050,69236, wenn ich die Zelle in Uhrzeit
formatiere steht: 16:37:00.
Ja, das kapiere ich, Datum ist der 38050te Tag nach dem 1.1.1900.
,69236 ist die Uhrzeit.
Mit 402.336.451.349.537 kann ich nix anfangen.
Gruß
Reinhard
Hallo Reinhard.
Ein Beispiel:
Schreibe in Excel in A1 ein Datum zB dieses: 26.02.2010 11:50.
Dann schreibe in A2 =A1 und dann Zellenformatieren auf Benutzerdefiniert mit hh:mm:ss.
Dann öffnen den VBA Editor.
Schreibe (ggf. Tabelle1 in XXX ändern):
Sub tst()
Dim tst As String
tst = Worksheets("Tabelle1").Range("A2").Value
Worksheets("Tabelle1").Range("A3").Value = tst
End Sub
Nun steht in A3: 402.354.930.555.556!!
Wie bekomme ich nur die Uhrzeit? Mittels VBA?
Danke dir.
Gruß Sebastian
Hallo Sebastian,
jetzt konnte ich das erst nachbauen. Irgendwie sah ich so Zahlen noch nie. nachfolgend ein tabellenbereich.
Der Datum/Zeitstempel 26.10.2010 11:50 wird von Excel innerbetrieblich so gespeichert:
40477,4930555556
Das ist ein Double-Wert.
Den zwängst du aber in die als String deklarierte Variable „tst“
Bei MsgBox tst
sieht man keinen Unterschied in der msgbox egal wie tst deklariert ist, String oder nix.
Nun schreibst du in A3, irgendwie dabei oder schon vorher hat Excel das Komma verschwinden lassen von 40477,4930555556. Die Punkte kommen ja von der Formatierung *glaub*
Formatiere tst als Double dann stimmts wieder.
Tabellenblatt: [Mappe1]!Tabelle1
│ A │ B │
──┼─────────────────────┼──────────────────┤
1 │ 26.10.2010 11:50 │ │
──┼─────────────────────┼──────────────────┤
2 │ 11:50:00 │ │
──┼─────────────────────┼──────────────────┤
3 │ 404.774.930.555.556 │ 40477,4930555556 │
──┴─────────────────────┴──────────────────┘
Benutzte Formeln:
A2: =A1
Zahlenformate der Zellen im gewählten Bereich:
A1
haben das Zahlenformat: TT.MM.JJJJ hh:mm
A2
haben das Zahlenformat: hh:mm:ss
A3
haben das Zahlenformat: #.##0
B1:B2
haben das Zahlenformat: Standard
B3
haben das Zahlenformat: 0,0000000000
Tabellendarstellung erreicht mit dem Code in FAQ:2363
Gruß
Reinhard
Ok, aber wie bekomme ich nur die Uhrzeit als Text, ohne Excel-Zellenformatierung, etc?
Ich benötige nur 11:50:00 als Text.
Danke dir.
Gruß Sebastian
Hallo Sebastian,
Option Explicit
'
Sub uhr()
Dim appNP
Range("A1:A2").NumberFormat = "hh:mm:ss"
Range("A1").Value = "10:50"
Range("A2").Value = "12:34"
Close
Open "c:\text\kwuhrzeit.txt" For Output As #1
Print #1, Range("A1").Text
Print #1, Range("A2").Text
Close
appNP = Shell("notepad.exe c:\text\kwuhrzeit.txt", vbMaximizedFocus)
End Sub
Gruß
Reinhard
Hi Sebastian,
Ok, aber wie bekomme ich nur die Uhrzeit als Text, ohne Excel-Zellenformatierung, etc?
Format(Range(„A1“).Value,„hh:mm:ss“)
Format(what, how) macht aus einer Zahl einen String. Du kannst in A1 die Excel-internen Werte drinlassen, Range(x).Value greift darauf zu, egal wie es formatiert ist.
Hinter der Anzeige von bspw. 11:50:00 steckt 0,493055555555556.
Gruß
Markus