AW: Zeilenumbruch auslesen VBA
26.02.2023 13:02:18
AlterDresdner
Hallo,
nicht ganz so elegant, dafür aber lesbarer und getestet und (hoffentlich) mit Berücksichtigung aller Eventualitäten
Sub Auseinander()
Const ObstSp = 1 'Spalte Obst
Const BemSp = 2 'Bemerkungsspalte
Dim Trenner
Dim Quelle As Object, Ziel As Object
Dim zeile As Long, zzeile As Long, a, b, j, k, Tag, Monat, Jahr, Dat, Bem As String, Obst As String
Trenner = Chr(10) 'Trennzeichen in Quelle
Set Quelle = ActiveSheet
With Quelle
Workbooks.Add
Set Ziel = ActiveWorkbook.ActiveSheet
zeile = 2
zzeile = 2
While Not IsEmpty(.Cells(zeile, ObstSp)) 'solange in QUelle was steht
Obst = .Cells(zeile, 1)
a = Split(.Cells(zeile, BemSp), Trenner)
For Each b In a
On Error Resume Next
j = InStr(1, b, ".")
Tag = Val(Left(b, j - 1))
If Tag = 0 Or Tag > 31 Then Error (123)
b = Mid(b, j + 1)
k = InStr(1, b, ".")
Monat = Val(Left(b, k - 1))
If Monat = 0 Or Monat > 31 Then Error (123)
Jahr = Year(Now()) - 1
Select Case Monat - Month(Now())
Case 0 'gleicher Monat
If Tag Day(Now()) Then Jahr = Jahr + 1
Case Is > 0 'Monat in Zukunft
Case Else 'Monat in Vergangenheit
Jahr = Jahr + 1
End Select
Dat = DateSerial(Jahr, Monat, Tag)
If Err.Number > 0 Then Dat = "Datum nicht auswertbar"
On Error GoTo 0
Bem = Mid(b, k + 2)
Ziel.Cells(zzeile, 1) = Obst
Ziel.Cells(zzeile, 2) = Dat
'Ziel.Cells(zzeile, 2).NumberFormat = "dd.mm.yyyy"
Ziel.Cells(zzeile, 3) = Bem
zzeile = zzeile + 1
Next b
zeile = zeile + 1
Wend
End With
End Sub
Gruß der ALteDresdner