AW: alle Zellen in EINE kopieren
05.08.2006 21:54:28
ingUR
Hallo, Boudon,
bei einer überschaubaren Anzahl von Spalten, deren Zelleninalte je Zeile zu einem verkettem Datenstring zusammengefügt werden sollen wird die Zellenformel in der Zelle A1 des Tabellenblattes Tabelle1
=Tabelle1!A1 & " " & Tabelle1!B1 & " " & Tabelle1!C1 & " " & ....
wobei das Verkettungsstück & " " für ein zu wählendes Trennzeichen (hier: das Leerzeichen) gesetzt ist und auch entfallen kann.
Die Fomel über die darunterliegenden Zeilen A2 bis A[maxZeile] kopiert, liefer die gewünschten String fur einen Datensatz.
Eine Makroprozedur könnte als Basisversion der Bearbeitung so aussehen:
Sub VerketteSpalten()
Dim ws As Worksheet, strData As String
Dim rng As Range, rngQ As Range, maxc As Integer
On Error Resume Next
Set ws = Worksheets("DataStrings")
If ws Is Nothing Then
Set ws = Worksheets.Add(after:=Worksheets(1))
ws.Name = "DataStrings"
End If
ws.Cells.Clear
Range("A1").Select
Set rngQ = Range(Cells(1, 1), _
Cells(ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row + 1, _
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column + 1))
maxc = rngQ.Columns.Count
For Each rng In rngQ
If rng.Row = prevr Then
strData = strData & " " & rng
'hier ggf. ein Trennzeichen statt eines Leerzeichen eingeben
Else
ws.Cells(rng.Row - 1, 1) = strData
strData = rng
prevr = rng.Row
End If
'ws.Cells(rng.Row, 1) = strData
Next
ws.Cells(prevr, 1) = strData
End Sub
Die Prozedur wird auf das aktive Tabellenblatt bezogen, dessen Datenzellen einer Zeile zu einer Textkette zusammengesetzt werden.
Gruß,
Uwe