In einem durch zwei Überschriften ( per VBA gesucht und mit x und y
definiert) markierten Bereich befinden sich mehrfach 2-5 Zeilen
Text durch Leerzellen getrennt. Dieser Bereich wird von mir mit
resize um zwei auf drei Spaltenerweitert. Diese Textbereiche
( unterschiedlich 3-6 Stück) möchte ich wieder in einer Zelle mit
"verketten" vereinigen. Ich stelle es mir so vor:
Geh nach unten suche die erste Zelle die nicht leer ist;
zähle die Reihen bis zur ersten Leerzelle ( Z )
Füge in der Leerzelle "verketten" mit Anzahl Z ein;
ActiveCell.FormulaR1C1 = "=CONCATENATE(R[-3]C&"" ""&R[-2]C&"" ""&R[-1]C)"
Erweitere die Formel auch für die beiden Spalten b und c
und kopiere die Formel als Wert in die Spalten d,e und f.
Dann müßte sich die/eine Schleife den nächsten Bereich
unterhalb der eingefügten Formel vornehmen
Die Schleife läuft durch bis zur Zelle y.
Als Ergebnis habe ich die verketteten Texte als Werte,
nicht als Formel in den Spalten d-f. Mittels
Gehezu/Inhalte/Leerzellen/Zellen löschen in den Spalten
d-f habe ich dann das gewünschte Ergebnis in d1 - f(?)
welches ich dann an die gewünschte Stelle einer anderen
Tabelle kopieren kann. Dann wird meine "Zwischenlagertabelle"
gelöscht und das nächste Dokument ( mehr als 1000 !) ist dran.
Wenn ich das richtig erklärt habe, müßtet Ihr als erstes auf die
Excel "Teilsummenfunktion" kommen. Dies ist aber auf Text
nicht anwendbar, oder bin ich auf dem falschen Dampfer ?
Wer hat ein wenig Zeit für mich und bastelt mir die VBA-Schleife.
Also mir zumindest ist jetz so auf anhieb nicht sooo klar, was du willst...
Per VBA verschiedene zeilen die text enthalten in eine stecken?
wenn du eine variable hast, kannst du diese problemlos verketten. beispiel:
For x=1 to 10
strText=StrText & x
next
jetzt hast du eine Variable, die den Inhalt 12345678910 hat. ist es das, was
du suchst?
bye
Ulli.
Heiner Berghoff schrieb:
--
Microsoft MVP für Excel
> Also mir zumindest ist jetz so auf anhieb nicht sooo klar, was du
willst...
Der relevante Abschnitt der Datei sieht etwa so aus:
Überschrift1
Leerzeile
Leerzeile
ab
df
cl
Leerzeile(1)
hd
gh
Leerzeile(2)
am
ol
df
Leerzeile(3)
Leerzeile
Leerzeile
Überschrift2
In den Leerzeilen (1,2,3) unter den je unbekannt langen Textblocks
möchte ich mit "verketten" die Texte wieder in eine
Zeile bringen. Problem sind die unbekannte Anzahl an
Blocks sowie die unbekannte Anzahl an Zeilen innerhalb eines
Blocks. Solltest Du mir helfen wollen, maile ich Dir die Datei
mal zu.
geht es Dir nur darum die Daten zwischen einer und der nächsten Leerzelle zu
einem String zusammenzufassen?
Vielleicht kann Dir meine kleine Prozedur dabei helfen. Einfach mal
ausprobieren und zurückmailen, ob's geklappt hat.
Gruß
Michael
Sub verketten()
Dim ende As Long
Dim beginn As Long
Dim tabellenende As Long
Dim nächsterBeginn As Long
Dim zf as String
tabellenende = tabellenende = Sheets
"Tabelle2").UsedRange.Rows.Count
beginn = Cells(1, 1).End(xlDown).Row
For i = 1 To tabellenende
If Cells(beginn + 1, 1) = "" Then
ende = beginn
Else
ende = Cells(beginn, 1).End(xlDown).Row
End If
If ende = tabellenende Then Exit Sub
nächsterBeginn = Cells(ende, 1).End(xlDown).Row
For Each cell In Range(Cells(beginn, 1), Cells(ende, 1))
zf = zf & cell.Value
Next cell
Cells(ende + 1, 1) = zf
beginn = nächsterBeginn
zf = ""
If i = tabellenende Then Exit Sub
Next i
End Sub
Heiner Berghoff <heiner....@cityweb.de> schrieb in im Newsbeitrag:
8en7sv$paa$1...@news.cityweb.de...