Herbers Excel-Forum - das Archiv

verketten über FOR-Schleife

Bild

Betrifft: verketten über FOR-Schleife
von: Anton

Geschrieben am: 18.12.2006 17:02:21
Hallo Leute,
ich möchte texte verketten, die in einer anderen Tabelle in verschiedenen Spalten nebeneinander stehen.
Ziel ist es Klammern und Schrägstriche in einem bestimmten Rhythmus einzufügen.
1. Anfang: " ( "
2. Sieben Spalten nebeneinander durch " / " getrennt,
3a. wenn noch weitere Spalten belegt sind, dann: " ) ( "
3b. sonst: " ) "
wenn 3a: dann wieder holt sich 2. und 3.
Das hier ist mal mein bisheriger Code:
Sub F_zusammenbau_gekündigte()
'Gekündigte Abos auf neuem Blatt zusammenbauen
'Dim ZusSchräger As Byte
'Dim ZusKlammer As Byte
Dim letzteZ As Long
Dim WkSh_G  As Worksheet
Dim WkSh_Z  As Worksheet
Sheets.Add
ActiveSheet.Name = "zusammenbau_gekündigte"
Set WkSh_G = Worksheets("gekündigte")                'Tabelle mit den zu ersetzten Daten
Set WkSh_Z = Worksheets("zusammenbau_gekündigte")    'Zusammenbau-Tabelle: für Gekündigte
' For ZusKlammer = 1 To 7 Step 7
' For ZusSchräger = 1 To 6 Step 1
letzteZ = WkSh_G.UsedRange.Rows.Count
WkSh_Z.Cells(letzteZ, 1) = " ( " & WkSh_G.Cells(letzteZ, 1) & " / " & WkSh_G.Cells(letzteZ, 2) & _
" / " & WkSh_G.Cells(letzteZ, 3) & " / " & WkSh_G.Cells(letzteZ, 4) & " / " & WkSh_G.Cells(letzteZ, 5) & _
" / " & WkSh_G.Cells(letzteZ, 6) & " / " & WkSh_G.Cells(letzteZ, 7) & " ) "
'muster:  ( 25 / 1471461.001 / Neue Umsatzsteuer-Praxis /  /  /  / in Ansicht gekündigt )
Next ZusSchräger
Next ZusKlammer
Sheets("gekündigte").Select
End Sub

Ihr könnt am "FOR" & "NEXT..." schon sehen, dass ich mir einbilde das über eine Schleife lösen zu wollen.
Nur reichen meine Kenntnisse nicht aus.
Könnt Ihr mir bitte weiterhelfen?
Mein Dank geht schon jetzt in Eure Richtung.
Servus,
Anton
Bild

Betrifft: AW: verketten über FOR-Schleife
von: Fritz Hellbach

Geschrieben am: 18.12.2006 18:26:01
Hallo Anton,
Dein Code erscheint mir etwas wirr.
Also, Du möchtest ein Tabellenblatt auslesen und Felder zusammenführen
Z.B. so:
Sub xxx()
Dim letzteZ As Long
Dim WkSh_G  As Worksheet
Dim WkSh_Z  As Worksheet
Dim I&, J&, X&
Dim Slash$, Zusammen$
Dim LetzteZeileWKSH_G&
Sheets.Add
ActiveSheet.Name = "zusammenbau_gekündigte"
Set WkSh_G = Worksheets("gekündigte")                'Tabelle mit den zu ersetzten Daten
Set WkSh_Z = Worksheets("zusammenbau_gekündigte")    'Zusammenbau-Tabelle: für Gekündigte
LetzteZeileWKSH_G = WkSh_G.UsedRange.Rows.Count
Slash = " / "
X = 1       'Startzeile in WKSH_Z
For I = 2 To LetzteZeileWKSH_G
Zusammen = " ( "
For J = 1 To 7
Zusammen = Zusammen & WkSh_G.Cells(I, J)
Zusammen = Zusammen & Slash
Next
Zusammen = Replace(Zusammen, "/", ")", Len(Zusammen) - 3)
WkSh_Z.Cells(X, 1) = Zusammen
X = X + 1
Next
End Sub

Bild

Betrifft: AW: verketten über FOR-Schleife
von: Anton

Geschrieben am: 19.12.2006 10:58:06
Hallo Fritz,
jaja, Du hast recht.... was VBA angeht bin ich ein echtes Greenhorn.
Für Deinen Code bedanke ich deshalb sehr.
Es gibt da noch ein kleines Problem:
Nach dem "Replace" bleiben nur noch 4 Zeichen übrig.
Ich hab' schon in der Hilfe nachgeschlagen.... und keinen Fehler gefunden.
Kannst Du bitte nochmal drüber schauen?
Nochmals Danke,
Servus,
Anton
Bild

Betrifft: Problem gelöst
von: Anton

Geschrieben am: 19.12.2006 12:18:38
Hallo Fritz,
ich habe den Replace - Befehl ausgetauscht:
' Ergebnis = Replace(Zusammen, "/", ")", (Len(Zusammen) - 3)) 'Ersetze den Schrägstrich gegen KlammerZu
Ergebnis = Left(Zusammen, (Len(Zusammen) - 2))
Ergebnis = Ergebnis & DSatzEnde
'DSatzEnde ist der Klammer-Zu-String
Servus,
Anton
 Bild