Supportnet Computer
Planet of Tech

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

Antwort 2 von Beverly

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

Wow!!

hier sind halt Profis am Werk,
habe beide varianten getestet, hat fehlerfrei Funktioniert.

Wie versprochen 1.000.000 DANK

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: