Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: kopieren von Spalten mit gleicher Überschrift

kopieren von Spalten mit gleicher Überschrift
13.10.2016 13:30:54
Spalten
Hallo,
ich bin relativ neu in der VBA-Welt und bräuchte eure Hilfe bitte.
Ausgangssituation: Ich habe 2 Tabellenblätter.
Ich möchte aus Tabellenblatt1 in Tabellenblatt2 Spalten kopieren.
In beiden Tabellenblättern habe ich die gleichen Überschriften(IDs) stehen.
Im Tabellenblatt1 in Zeile 2 und im Tabellenblatt2 in Zeile 1.
Nur in unterschiedlicher Reihenfolge. Das Makro soll zum sortieren dienen.
Das Makro soll(wenn möglich) das Tabellenblatt1 in der zweiten Zeile durchsuchen, und die Spalte drunter kopieren. Dann soll es die Spalte in Tabellenblatt2 unter der gleichen ID wieder einfügen.
Vielen Dank schon mal
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: kopieren von Spalten mit gleicher Überschrift
13.10.2016 14:14:05
Spalten
HI
im Prinzip so:
dim ÜB1 as range
dim ÜB2 as range
dim Kopierbereich as range
for each ÜB1 in Range(Sheets("Tabelle1").Cells(2, 1), Sheets("Tabelle1").Cells(2, 1).end( _
xltoright))
set ÜB2 = Sheets("Tabelle2").Rows(1).Find(what:=ÜB1.Value, lookat:=xlwhole)
if not ÜB2 is nothing then
Range(ÜB1.Offset(1, 0), ÜB1.end(xldown)).Copy Destination:=ÜB2.End(xldown).Offset(1, 0)
end if
next
ist jetzt für den Fall geschrieben, dass in den Spalten keine Leerzellen zwischendrin vorhanden sind, sondern alle Zellen befüllt sind.
Gruß Daniel
Anzeige
AW: kopieren von Spalten mit gleicher Überschrift
13.10.2016 14:40:13
Spalten
super vielen dank schon mal
aber er gibt mir in der Zeile nach dem "If not..." die Fehlermeldung "Laufzeitfehler 1004".
Weist du was das sein kann?
AW: kopieren von Spalten mit gleicher Überschrift
13.10.2016 15:19:59
Spalten
Ups sorry, das funktioniert so nur, wenn in Tabelle2 unter der Überschrift schon werte vorhanden sind.
probiers mal so, dass sollte auch gehen ,wenn die Zellen in Tabelle2 noch leer sind:
 Destination:=ÜB2.Worksheet.Cells(Rows.Count, ÜB2.Column).End(xlUp).Offset(1, 0)
Gruß Daniel
Anzeige
AW: kopieren von Spalten mit gleicher Überschrift
13.10.2016 15:26:29
Spalten
danke nochmal,
aber was mach ich wenn ich im ersten Tabellenblatt Leerzeichen in der Zeile2 habe?
AW: kopieren von Spalten mit gleicher Überschrift
13.10.2016 15:29:45
Spalten
Hi.
Leerzeilen füllen.
oder du musst die letzte Zelle nicht von oben mit End(xldown) anspringen, sondern so wie von mir in der Ergänzung gezeigt von unten, dh von der allerletzten Zeile (Rows.count) mit einem Sprung nach oben (end(xlup), dann sind Leerzellen zwischendrin nicht mehr störend.
Gruß Daniel
Anzeige
AW: kopieren von Spalten mit gleicher Überschrift
13.10.2016 15:33:55
Spalten
ok vielen dank.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Spalten mit gleichen Überschriften in Excel kopieren


Schritt-für-Schritt-Anleitung

Um Spalten mit gleichen Überschriften von einem Tabellenblatt in ein anderes zu kopieren, kannst Du das folgende VBA-Makro verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Dim ÜB1 As Range
    Dim ÜB2 As Range
    Dim Kopierbereich As Range
    
    For Each ÜB1 In Range(Sheets("Tabelle1").Cells(2, 1), Sheets("Tabelle1").Cells(2, 1).End(xlToRight))
       Set ÜB2 = Sheets("Tabelle2").Rows(1).Find(What:=ÜB1.Value, LookAt:=xlWhole)
       If Not ÜB2 Is Nothing Then
           Range(ÜB1.Offset(1, 0), ÜB1.End(xlDown)).Copy Destination:=ÜB2.Worksheet.Cells(Rows.Count, ÜB2.Column).End(xlUp).Offset(1, 0)
       End If
    Next
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um die Spalten zu kopieren.

Dieses Makro durchsucht die zweite Zeile von Tabelle1 nach den Überschriften und kopiert die entsprechenden Daten in Tabelle2 unter der gleichen Überschrift.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt auf, wenn die Zielzelle nicht gefunden werden kann. Stelle sicher, dass die Überschriften in beiden Tabellenblättern identisch sind und keine Leerzeilen in Tabelle2 vorhanden sind, bevor Du das Makro ausführst.

  • Leere Zellen im Quellbereich: Wenn Du Leerzeilen in der zweiten Zeile hast, kannst Du die letzte Zelle von unten ansteuern, um Leerzellen zu ignorieren. Verwende den Befehl:

    Destination:=ÜB2.Worksheet.Cells(Rows.Count, ÜB2.Column).End(xlUp).Offset(1, 0)

Alternative Methoden

Eine manuelle Methode besteht darin, die Spalten einfach zu kopieren und einzufügen:

  1. Markiere die Spalte in Tabelle1, die Du kopieren möchtest.
  2. Drücke CTRL + C, um die Spalte zu kopieren.
  3. Gehe zu Tabelle2 und suche die entsprechende Überschrift.
  4. Klicke mit der rechten Maustaste auf die Zelle unter der Überschrift und wähle Einfügen.

Diese Methode eignet sich gut, wenn Du nur gelegentlich Daten kopieren musst und kein VBA verwenden möchtest.


Praktische Beispiele

Angenommen, Du hast folgende Überschriften in Tabelle1 (Zeile 2) und Tabelle2 (Zeile 1):

  • Tabelle1 (Zeile 2): ID, Name, Alter
  • Tabelle2 (Zeile 1): Name, ID, Alter

Das oben genannte Makro wird die Daten aus Tabelle1 entsprechend der Überschrift in Tabelle2 einfügen. Wenn Du die Spalten jedoch in unterschiedlicher Reihenfolge anordnen möchtest, kannst Du die Makro-Logik anpassen.


Tipps für Profis

  • Überlege, ob Du die Spalten in Tabelle2 vorher sortieren möchtest, um sicherzustellen, dass die Daten korrekt eingefügt werden.
  • Nutze die Debug.Print Funktion in VBA, um die Werte während der Ausführung zu überprüfen und mögliche Fehlerquellen zu finden.
  • Wenn Du regelmäßig mit solchen Aufgaben arbeitest, speichere das Makro in Deiner persönlichen Makroarbeitsmappe, um schnellen Zugriff zu haben.

FAQ: Häufige Fragen

1. Kann ich das Makro auch für mehrere Tabellenblätter verwenden? Ja, Du kannst das Makro anpassen, um mehrere Tabellenblätter nacheinander abzuarbeiten. Füge einfach eine Schleife hinzu, die durch die gewünschten Tabellen blätter iteriert.

2. Was ist, wenn die Überschriften unterschiedliche Schreibweisen haben? Stelle sicher, dass die Schreibweise der Überschriften exakt übereinstimmt oder verwende die Funktion UCase oder LCase, um die Groß- und Kleinschreibung zu ignorieren.

3. Wie kann ich das Makro anpassen, um nur bestimmte Spalten zu kopieren? Du kannst eine Bedingung in die Schleife einfügen, die überprüft, ob die Überschrift in einer Liste von gewünschten Überschriften enthalten ist, bevor Du die Daten kopierst.

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