Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Zellen per Makro zusammenführen

Forumthread: Zellen per Makro zusammenführen

Zellen per Makro zusammenführen
12.03.2025 11:22:56
Chris
Hallo Forum,

ich möchte aus einer mehrspaltigen Tabelle per VBA (die Länge ist variabel) mehrere Spalten zusammenführen und diese untereinander auflisten.
Ich habe dazu eine Beispieltabelle erstellt. Evtl. hat jmd Kenntnisse wie man dies in VBA umsetzt, per Transpose?

Gruß
Chris

https://www.herber.de/bbs/user/176218.xlsx
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen per Makro zusammenführen
12.03.2025 11:47:58
Alwin Weisangler
Hallo Chris,

ich habe mal aus den Tabellen Listobjekte gemacht und die Lösung wäre dann so:


Option Explicit

Sub NeueTabelle()
Dim i&, j&, arrTabQ(), arrZ(): arrTabQ = Tabelle1.ListObjects(1).DataBodyRange.Value
ReDim arrZ(1 To UBound(arrTabQ), 1 To 5)
For i = LBound(arrZ) To UBound(arrZ)
arrZ(i, 1) = arrTabQ(i, 1)
arrZ(i, 2) = arrTabQ(i, 2) & " " & arrTabQ(i, 3) & " " & arrTabQ(i, 6)
arrZ(i, 3) = arrTabQ(i, 4)
arrZ(i, 4) = arrTabQ(i, 5)
arrZ(i, 5) = arrTabQ(i, 6)
Next i
With Tabelle2.ListObjects(1)
If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
.ListRows.Add.Range.Resize(UBound(arrZ), 5) = arrZ
End With
End Sub

https://www.herber.de/bbs/user/176219.xlsm

Gruß Uwe
Anzeige
AW: Zellen per Makro zusammenführen
12.03.2025 12:24:31
Chris
Hallo Uwe,

das funktioniert wunderbar. Danke!
Wie mache ich aus meinen normalen Tabellen "Listobjekte", so dass ich das Makro nutzen kann?

Chris
AW: Zellen per Makro zusammenführen
12.03.2025 13:33:12
Alwin Weisangler
Hallo Chris,

auch das ist ganz einfach.
Weg1: Klicke in irgend eine Zelle der Tabelle auf dem Tabellenblatt --> drücke Strg./T und den Rest sieht man dann.
Weg2: Markiere die Tabelle nebst Überschriften und dann Strg./T drücken.

Mal ein paar Sätze zu arbeiten mit Arrays:

Der Tempogewinn ist eine angenehme Begleiterscheinung, wenn man ´s richtig macht.
Der eigentlich große Zugewinn bei Umgang mit Array ist, dass man sauber zu programmieren lernt.

Aber das ist, wenn ich deine Frage zu Listobjekten sehe eher für spätere Zeiten, wenn man die offensichtlichen Möglichkeiten von Excel mal ein bisschen durchleuchtet hat, eine der nachfolgenden Schritte sich damit zu beschäftigen.

Gruß Uwe
Anzeige
AW: Zellen per Makro zusammenführen
12.03.2025 12:19:09
daniel
Hi
da brauchst du kein Transpose.

in die erste freie Spalte am Tabellenende kommt die Formel: =B1&" "&C1&" "&F1
diese Spalte kopierst du und fügst sie als Wert in die Spalte B ein
dann löschst du Spalte C und F.
eigentlich ganz einfach.
bekommst du das mit deinen bescheidenen VBA-Kenntnissen hin?
Gruß Daniel
Anzeige
AW: Zellen per Makro zusammenführen
12.03.2025 12:27:21
Chris
Hi Daniel,

klar, das bekomme ich mit bescheidenen VBA Kenntnissen hin, auch das Löschen von Spalten kann ich programmieren.
Um meine VBA Kenntnisse zu erweitern, versuche ich mit etwas komplizierteren Makros zu arbeiten, manchmal gelingt es,
manchmal nicht, insbesondere Arrays sind für mich wirklich kompliziert zu verstehen.
Chris
Anzeige
AW: Zellen per Makro zusammenführen
12.03.2025 17:01:41
daniel
Array geht natürlich auch, ist hier auch nicht sonderlich kompliziert:
Sub test()

Dim arr, erg
Dim z As Long

arr = Sheets("Quelle").Cells(1, 1).CurrentRegion.Value
ReDim erg(1 To UBound(arr, 1), 1 To 5)

For z = 1 To UBound(arr, 1)
erg(z, 1) = arr(z, 1)
erg(z, 2) = arr(z, 2) & " " & arr(z, 3) & arr(z, 6)
erg(z, 3) = arr(z, 4)
erg(z, 4) = arr(z, 5)
erg(z, 5) = arr(z, 6)
Next

Sheets("Quelle").Cells(1, 8).Resize(UBound(erg, 1), UBound(erg, 2)).Value = erg

End Sub


prinzipiell bevorzuge ich den Weg über Formeln und Menüaktionen, denn da kann ich besser die Einzelschritte mitverfolgen, und ich habe keine Schleifen, die dich durchklicken muss, wenn ich auf Fehlersuche das Makro im Einzelstepmodus durchgehe.
Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige