ein Else ist nicht unbedingt notwendig :-) (siehe z.B.
Sub Daten()
Dim i, wl, zeile, zn As Long
Dim ws, ts, tel As String
ws = ActiveSheet.Name
zn = 2
'Neues Blatt wird am Ende eingefügt
Worksheets.Add After:=Worksheets(Worksheets.Count)
'Neues Blatt benennen
ActiveSheet.Name = "Daten neu"
'Überschriften im neuen Arbeitsblatt
Worksheets("Daten neu").Range("A1") = "Name"
Worksheets("Daten neu").Range("B1") = "Firma"
Worksheets("Daten neu").Range("C1") = "Telefon"
Worksheets("Daten neu").Range("D1") = "Fax"
Worksheets("Daten neu").Range("E1") = "PLZ + Ort"
Worksheets("Daten neu").Range("F1") = "Straße"
'Daten werden in das Zielblatt geschrieben
For zeile = 1 To Worksheets(ws).UsedRange.SpecialCells(xlCellTypeLastCell).Row Step 3
'Hier wird das Komma in der ersten Zeile gesucht
wl = Len(Worksheets(ws).Cells(zeile, 1))
For i = 1 To wl
If Mid(Worksheets(ws).Cells(zeile, 1), i, 1) = "," Then Exit For
Next i
If i => wl Then
'kein Komma in Zeile gefunden
Worksheets("Daten neu").Cells(zn, 1) = Worksheets(ws).Cells(zeile, 1)
Worksheets("Daten neu").Cells(zn, 2) = "nicht vorhanden"
Else
'Name und Firma aus 1. Zeile werden ins neue Blatt übertragen
Worksheets("Daten neu").Cells(zn, 1) = Left(Worksheets(ws).Cells(zeile, 1), i - 1)
Worksheets("Daten neu").Cells(zn, 2) = Right(Worksheets(ws).Cells(zeile, 1), wl - i - 1)
End If
'zweite Zeile wird zerlegt
'Telefonnummer wird ermittelt
'1. Komma nach Telefonnummer wird gesucht
wl = Len(Worksheets(ws).Cells(zeile + 1, 1))
For i = 1 To wl
If Mid(Worksheets(ws).Cells(zeile + 1, 1), i, 1) = "," Then Exit For
Next i
'Hier wird die Telefonnummer mit Telefon in Variable geschrieben
tel = Left(Worksheets(ws).Cells(zeile + 1, 1), i - 1)
'Hier wird der restliche Inhalt in Variable geschrieben
ts = Right(Worksheets(ws).Cells(zeile + 1, 1), wl - i - 1)
'Hier wird die reine Telefonnummer gesucht
For i = 1 To Len(tel)
If IsNumeric(Mid(tel, i, 1)) = True Then Exit For
Next i
'Telefonnummer wird in Zeile geschrieben
'Hochkomma wird eingefügt, damit führende Null erhalten bleibt
If Mid(tel, i, 1) = "" Then
'Falls keine Zahl gefunden wird, wird 0000 eingefügt
Worksheets("Daten neu").Cells(zn, 3) = "'0000"
Else
'Hochkomma wird eingefügt, damit führende Null erhalten bleibt
Worksheets("Daten neu").Cells(zn, 3) = "'" & Right(tel, Len(tel) - i + 2)
End If
'Fax-Nummer
wl = Len(ts)
For i = 1 To wl
If Mid(ts, i, 1) = "," Then Exit For
Next i
'Hier wird die Fax_Nummer in Variable geschrieben
tel = Left(ts, i - 1)
'Hier wird der restliche Inhalt in Variable geschrieben
ts = Right(ts, wl - i - 1)
'Hier wird die reine Fax-Nummer gesucht
For i = 1 To Len(tel)
If IsNumeric(Mid(tel, i, 1)) = True Then Exit For
Next i
'Fax-Nr. wird in Zeile geschrieben
'Hochkomma wird eingefügt, damit führende Null erhalten bleibt
If Mid(tel, i, 1) = "" Then
'Falls keine Zahl gefunden wird, wird 0000 eingefügt
Worksheets("Daten neu").Cells(zn, 4) = "'0000"
Else
'Hochkomma wird eingefügt, damit führende Null erhalten bleibt
Worksheets("Daten neu").Cells(zn, 4) = "'" & Right(tel, Len(tel) - i + 1)
End If
'PLZ & Ort - Komma wird gesucht
wl = Len(ts)
For i = 1 To wl
If Mid(ts, i, 1) = "," Then Exit For
Next i
Worksheets("Daten neu").Cells(zn, 5) = Left(ts, i - 1)
'Straße
Worksheets("Daten neu").Cells(zn, 6) = Right(ts, Len(ts) - i - 1)
'Zeilennummer für Zielblatt wird erhöht
zn = zn + 1
Next zeile
End Sub
M.O.