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