Zuweisen von /Rechnen mit Datumsformaten

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Zuweisen von /Rechnen mit Datumsformaten
von: Dirk
Geschrieben am: 22.06.2002 - 17:11:43

Hallo,

ich habe folgendes Problem:

In einer Zelle steht ein String, der Datum und Uhrzeit darstellt und zwar in folgender Form: "YYYYMMDDhhmm" also z.B."200212300024".

Wie kann ich nun 1.) in VBA diesen String zu einem Datumsformat umwandeln,

2.)von o.g. Wert 2 Stunden abziehen und in eine andere Zelle schreiben.(bei obigen Beispiel sollte sich also "200212292224" ergeben!)

Wär super wenn jemand dazu eine Idee hätte...komme irgendwie nicht richtig weiter.

Gruß und schönes Wochenende

Dirk


nach oben   nach unten

Re: Zuweisen von /Rechnen mit Datumsformaten
von: Ramses
Geschrieben am: 22.06.2002 - 21:08:20

Hallo Dirk,

wie werden die Daten ausgegeben wenn es sich um eine einstellige Uhrzeit handelt.

Dein Beispiel ist:
30.12.2002 00:24

Wenn das Datum jetzt lautet 1.12.2002,.. wie erhältst du dann die Daten ?

Gruss Rainer

nach oben   nach unten

Re: Zuweisen von /Rechnen mit Datumsformaten
von: Dirk
Geschrieben am: 23.06.2002 - 12:36:34

Hallo Rainer,

ich erhalte die Daten immer mit führender "0".

Bei deinem Beispiel würde ich 20021201 erhalten.
Eben immer im Format YYYYMMDDhhmm.
Der 1.1.2002 00:01 würde als 200201010001 erscheinen, davon möchte ich automatisch 2h abziehen lassen, sodass in einer anderen Zelle für dieses Beispiel 200112312201 stehen sollte.

Einstellige Uhrzeiten, wie z.B. 01:05 Uhr erhalte ich als 0105.

Schönen Sonntag noch !

Dirk

nach oben   nach unten

Das geht dann so...
von: Ramses
Geschrieben am: 23.06.2002 - 13:20:44

Hallo Dirk,

Diesen Code in ein Modul kopieren und ausführen:

Sub Change_InputString()
Dim strV, NewValue, Minustime
Dim cr As Long
Dim yr As Integer, mth As Integer, dy As Integer
Dim hr As Integer, mit As Integer
'Letzte Zelle mit einem Eintrag in Spalte A = 1 suchen
cr = 65536
If Cells(cr, 1) = "" Then
cr = Cells(cr, 1).End(xlUp).Row
End If
'Die Zahl in Minustime steht für die Stunden die du abziehen willst
Minustime = TimeSerial(2, 0, 0)
'---------
'Das musst du jetzt anpassen
For i = 1 To cr
'1 Steht für Spalte A
'dort suche ich in diesem Beispiel den String
'die Spalte musst du anpassen
strV = Cells(i, 1)
'Extrahieren das Jahres
yr = Left(strV, 4)
'Extrahieren des Monats
mth = Left(Right(strV, Len(strV) - 4), 2)
'Extrahieren des Tages
dy = Left(Right(strV, Len(strV) - 6), 2)
'Extrahieren der Stunde
hr = Left(Right(strV, Len(strV) - 8), 2)
'Extahieren der Minute
mit = Left(Right(strV, Len(strV) - 10), 2)
'Zusammensetzen der einzelne Werte um ein berechenbaren wert zu erhalten
NewValue = DateSerial(yr, mth, dy) + TimeSerial(hr, mit, 0)
'Stunden abziehen
NewValue = NewValue - Minustime
MsgBox Format(x, "yyyy.mm.dd hh:mm")
'oder bei Dir
'2 = Spalte B dort gebe ich deinen Wert aus
'Cells(i,2) = NewValue
Next i
End Sub


Code eingefügt mit Syntaxhighlighter 1.12

Gruss Rainer

nach oben   nach unten

Re: Das geht dann so...
von: Dirk
Geschrieben am: 23.06.2002 - 13:51:10

Hi Rainer,
TAUSEND DANK !!!

Suuuuuper !

Gruß

Dirk


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Zuweisen von /Rechnen mit Datumsformaten"