Diskussionsgruppe: Tabellenkalkulation
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.
Von: a4hexcel Datum: 05.03.2007, 13:04
Antwort 1
von LittleT vom 05.03.2007, 13:54
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.2007, 14:12
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.2007, 15:46
Wow!!
hier sind halt Profis am Werk, habe beide varianten getestet, hat fehlerfrei Funktioniert.
Wie versprochen 1.000.000 DANK
|
07121
07122
07123
07124
07125
07126
07127
07128
|