Supportnet / Forum / Tabellenkalkulation
Bereiche Verketten
Frage
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 1 von LittleT
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
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
Hi,
eine weitere Möglichkeit wäre dieser Code, da stehen die verketteten Begriffe ohne Lehrzeilen in Spalte B
Bis später,
Karin
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
Wow!!
hier sind halt Profis am Werk,
habe beide varianten getestet, hat fehlerfrei Funktioniert.
Wie versprochen 1.000.000 DANK
hier sind halt Profis am Werk,
habe beide varianten getestet, hat fehlerfrei Funktioniert.
Wie versprochen 1.000.000 DANK

