Bereiche Verketten
Hallo ich habe ein Großes Problem mit ca. 5000 Adressen
die ich in einer Spalte in folgendem Format vorliegen habe:
André Baur;
Güterstrasse 187;
4053;
Basel;
BS;
061 361 95 77;
;
Andy Pfirter;
Blumengasse 5;
4051;
Basel;
BS;
061 261 20 30;
Zwischen jedem Datensatz befindet sich eine leere Zeile mit einem ;
Ich benötige die Daten aber in Spalten oder zumindest eine Zeile pro Datensatz. z.B.
Coiffeur;André Baur;Salon messieurs;Güterstrasse 187;4053;Basel;BS;
Was ich dann mit "Text in Spalten" Trennen kann.
Zu beachten ist auch das manche Datensätze vier Zeilen haben und andere bis zu 8
Über die Funktion Verketten =VERKETTEN(A2;A3;A4;A5;A6;A7;A8;A9) kriege ich das richtige Ergebniss, allerdings muss ich das manuell für alle 5000 Adressen machen.
Für eure schnelle Hilfe danke ich euch Millionenfach.
Antwort schreiben
Antwort 1 von LittleT vom 05.03.2019, 13:54 Options
Hallo a4hexcel,
ich würde das ganze jetzt über VBA lösen.
du hast einen Startpunkt. Am beginn 0
du gehst die Spalte durch bis du nur ein ";" findest.
Merkst dir diese Zeile z.b. 5.
Dann weißt du du muss zeile 1 - 4 verketten.
Dann wird die ende zeile also 5 die erste und du gehst wieder durch bis du ein ";" findest.
Nun z.b. 10 =>Verkette zeile 6 - 9 usw.
Als VBA Code :
Private Sub CommandButton1_Click()
beginn = 0
x = 1
Do While Worksheets("Tabelle1").Cells(x, 1) <> ""
If Worksheets("Tabelle1").Cells(x, 1) = ";" Then
ende = x
For i = beginn + 1 To ende - 1
Text = Text + Worksheets("Tabelle1").Cells(i, 1).Value
Next i
Worksheets("Tabelle1").Cells(x, 2).Value = Text
Text = ""
beginn = ende
End If
x = x + 1
Loop
End Sub
Antwort 2 von Beverly vom 05.03.2019, 14:12 Options
Hi,
eine weitere Möglichkeit wäre dieser Code, da stehen die verketteten Begriffe ohne Lehrzeilen in Spalte B
Sub verketten()
Dim loLetzte As Long, loZeile As Long, loZähler As Long
Dim strWerte As String
loLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
loZähler = 1
For loZeile = 1 To loLetzte + 1
If Cells(loZeile, 1) <> ";" And Cells(loZeile, 1) <> "" Then
strWerte = strWerte & Cells(loZeile, 1)
Else
Cells(loZähler, 2) = strWerte
loZähler = loZähler + 1
strWerte = ""
End If
Next loZeile
End Sub
Bis später,
Karin
Antwort 3 von a4hexcel vom 05.03.2019, 15:46 Options
Wow!!
hier sind halt Profis am Werk,
habe beide varianten getestet, hat fehlerfrei Funktioniert.
Wie versprochen 1.000.000 DANK