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

Forumthread: Inhalt von mehreren Zellen in eine Zelle

Inhalt von mehreren Zellen in eine Zelle
13.03.2019 13:54:16
mehreren
Hallo,
ich habe ein Problem mit Excel/VBA. Mein Ziel ist es, die Inhalte von Dateien aus unterschiedlichen Zellen einer Zeile, in einer zu vereinen (die einzelnen Zellinhalte werden dann durch beispielsweise ein Komma getrennt). Hierbei kann jedoch die Anzahl der Zellen pro Zeile variieren, das heißt der Startpunkt der Zellen, ab wo diese gemeinsam in eine andere Zelle geschrieben werden ist fest, aber der Endpunkt ist variabel. Dieser sollte irgendwie gekennzeichnet werden (im meinem Beispiel ist das das Wort "sheet". Bedeutet: Der Inhalt mehrerer Zellen soll solange in eine einzige Zelle geschrieben werden, bis das Schlüsselwort "sheet" erreicht wurde.).
Die Sache sollte bestenfalls in VBA ablaufen, ich denke auch, dass es wegen der unterschiedlichen und variablen Zeilenlänge in VBA auch am Einfachsten zu lösen ist. Ich weiß jedoch nicht wie... und da hoffe ich auf euch! ^^
Anbei auch eine Beispieldatei, mit Erklärungen nochmal: https://www.herber.de/bbs/user/128355.xlsx
Vielen Dank und viele Grüße
Lukas
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalt von mehreren Zellen in eine Zelle
13.03.2019 14:08:22
mehreren
Tach!
Der code stückelt zusammen mit Komma getrennt, bis zur nächsten leeren Zelle oder bis Zelle rot ist.
Sub test()
Dim Text As String
Dim sp As Long
For Each cl In Range("A:A").SpecialCells(xlCellTypeConstants)
sp = 1
Do While Cells(cl.Row, sp)  "" And Cells(cl.Row, sp).Interior.ColorIndex  3
Text = Text & IIf(Text  "", ",", "") & Cells(cl.Row, sp)
sp = sp + 1
Loop
Cells(cl.Row, "G") = Text
Next cl
End Sub
Gruß, MCO
Anzeige
AW: Inhalt von mehreren Zellen in eine Zelle
13.03.2019 14:31:02
mehreren
Hallo MCO,
vielen Dank, das hilft mir sehr weiter! Ein Problem hab ich jedoch noch. Soweit ich das überblicken kann, kopiert der Code alle Zellen in eine Zelle. Also ich meine, dass die Werte aus Zeile 1 auch in der "vereinten" Zelle in Zeile 2 stehen.. Wie kann ich das vermeiden?
Also ich meine, dass einfach der Zellinhalt aus mehreren Zellen, die alle in einer Zeile sind, einfach in die andere Zelle (aber in der gleichen Zeile!) geschrieben wird.
Könntest du mir hier nochmal helfen? ;)
Vielen Dank und Gruß
Lukas
Anzeige
AW: Inhalt von mehreren Zellen in eine Zelle
13.03.2019 14:40:05
mehreren
Hallo Lucas,
du mußt nur vor dem Next die Variable Text leeren.
Sub test()
Dim Text As String, sp As Long
For Each cl In Range("A:A").SpecialCells(xlCellTypeConstants)
sp = 1
Do While Cells(cl.Row, sp)  "" And Cells(cl.Row, sp).Interior.ColorIndex  3
Text = Text & IIf(Text  "", ",", "") & Cells(cl.Row, sp)
sp = sp + 1
Loop
Cells(cl.Row, "G") = Text
Text = ""
Next cl
End Sub
Gruß Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Inhalte mehrerer Zellen in eine Zelle zusammenfassen


Schritt-für-Schritt-Anleitung

Um die Inhalte mehrerer Zellen in eine Zelle zu kopieren, kannst Du einfach VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie Du das machst:

  1. Öffne Deine Excel-Datei.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen und wähle Modul aus.

  4. Kopiere den folgenden Code in das Modul:

    Sub InhalteZusammenfassen()
       Dim Text As String
       Dim sp As Long
       For Each cl In Range("A:A").SpecialCells(xlCellTypeConstants)
           sp = 1
           Do While Cells(cl.Row, sp) <> "" And Cells(cl.Row, sp).Interior.ColorIndex <> 3
               Text = Text & IIf(Text <> "", ",", "") & Cells(cl.Row, sp)
               sp = sp + 1
           Loop
           Cells(cl.Row, "G") = Text
           Text = ""
       Next cl
    End Sub
  5. Schließe den VBA-Editor.

  6. Drücke ALT + F8, wähle InhalteZusammenfassen aus und klicke auf Ausführen.

Dieser Code nimmt die Werte aus den Zellen in der ersten Spalte und fasst sie in eine Zelle in der Spalte G zusammen, bis eine leere Zelle oder eine Zelle mit rotem Hintergrund erreicht wird.


Häufige Fehler und Lösungen

  • Problem: Der Code fügt alle Zellinhalte in eine Zelle zusammen, unabhängig von der Zeile.

    • Lösung: Stelle sicher, dass die Variable Text vor dem Next cl zurückgesetzt wird, wie im obigen Beispiel gezeigt.
  • Problem: Der Code funktioniert nicht, wenn es leere Zellen gibt.

    • Lösung: Achte darauf, dass die Range Range("A:A") nur Zellen mit Inhalt enthält. Nutze SpecialCells(xlCellTypeConstants).

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du auch die CONCATENATE-Funktion oder das &-Zeichen in Excel verwenden:

=A1 & ", " & B1 & ", " & C1

Für mehrere Zellen in einer Zelle ist die Funktion TEXTJOIN (ab Excel 2016) eine hervorragende Alternative:

=TEXTJOIN(", ", TRUE, A1:C1)

Diese Funktion ermöglicht es Dir, die Inhalte aus mehreren Zellen in einer Zelle zusammenzufassen, wobei Du das Trennzeichen (z.B. Komma) festlegen kannst.


Praktische Beispiele

  1. Beispiel 1: Du möchtest die Werte aus den Zellen A1 bis A5 in Zelle B1 zusammenfassen. Verwende die Formel:

    =TEXTJOIN(", ", TRUE, A1:A5)
  2. Beispiel 2: Mit VBA kannst Du auch mehrere Zeilen in einer Zelle schreiben. Passe die Zielzelle in der VBA-Funktion an, um den Inhalt in eine andere Zelle zu schreiben:

    Cells(cl.Row, "H") = Text

Hiermit kannst Du Inhalte aus mehreren Zellen in eine Zelle kopieren und dabei die Zeilenbezüge anpassen.


Tipps für Profis

  • Nutze die Funktion UNIQUE, um Duplikate zu vermeiden, bevor Du die Inhalte zusammenfügst.
  • Experimentiere mit der FILTER-Funktion, um nur bestimmte Zellinhalte zu kombinieren.
  • Arbeite mit benutzerdefinierten VBA-Funktionen, um komplexe Anforderungen zu erfüllen, wie z.B. das Filtern nach bestimmten Kriterien.

FAQ: Häufige Fragen

1. Wie kann ich die trennerischen Zeichen anpassen?
Du kannst das Trennzeichen in der CONCATENATE- oder TEXTJOIN-Funktion anpassen, indem Du das gewünschte Zeichen in die Formel einfügst (z.B. "; ").

2. Funktioniert das auch mit Excel Online oder nur mit Desktop-Versionen?
Die genannten Funktionen wie TEXTJOIN sind in Excel Online verfügbar, während VBA nur in der Desktop-Version funktioniert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige