Thema: Bereiche Verketten


Seite durchsuchen:
Home


zurück zur Übersicht

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

alle Antworten zu dieser Frage




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

Antworten der Gruppe: Tabellenkalkulation
www.supportnet.de







Office 365 stellt vertraute Microsoft Office-Tools für die Zusammenarbeit und Produktivität über die Cloud bereit. So können alle ganz einfach von nahezu überall zusammenarbeiten und auf E-Mails, Webkonferenzen, Dokumente und Kalender zugreifen.

07121 07122 07123 07124 07125 07126 07127 07128