Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
128to132
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
128to132
128to132
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zuweisen von /Rechnen mit Datumsformaten

Zuweisen von /Rechnen mit Datumsformaten
22.06.2002 17:11:43
Dirk
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


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zuweisen von /Rechnen mit Datumsformaten
22.06.2002 21:08:20
Ramses
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

Re: Zuweisen von /Rechnen mit Datumsformaten
23.06.2002 12:36:34
Dirk
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

Anzeige
Das geht dann so...
23.06.2002 13:20:44
Ramses
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

Anzeige
Re: Das geht dann so...
23.06.2002 13:51:10
Dirk
Hi Rainer,
TAUSEND DANK !!!

Suuuuuper !

Gruß

Dirk

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige