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

Werte unter Spaltenüberschrift kopieren

Forumthread: Werte unter Spaltenüberschrift kopieren

Werte unter Spaltenüberschrift kopieren
31.07.2018 08:07:01
Tim
Guten Morgen zusammen,
ich stehe vor der Herausforderung, dass ich aus einem Tabellenblatt (1) verschiedene Werte in ein neues Tabellenblatt (2) kopieren und einfügen möchte. Dabei müssen aber in beiden Tabellen die jeweiligen Überschriften beachtet werden. Hintergrund dazu ist, dass ich eine Tabelle via Mail erhalte, deren Format ich ändern muss, um sie weiterverarbeiten zu können.
Und zwar soll das Makro verschiedene Überschriften in der Tabelle 1 suchen und anschließend die Werte darunter kopieren. Die kopierten Werte sollen danach in Tabelle 2 unter Spalten mit anderen Überschriften eingefügt werden.
Bsp: Werte in Tabelle 1 mit Überschrift Test, sollen in Tabelle 2 mit Überschrift Test 2 kopiert und eingefügt werden.
Wer kann mir dazu weiterhelfen?
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte unter Spaltenüberschrift kopieren
31.07.2018 09:08:01
Michael
Hallo!
Prinzipiell vermutlich machbar. Magst Du uns ein (anonymisiertes) Beispiel für die beiden Tabellen zur Verfügung stellen? Dann kann man sich das mal konkreter anschauen.
LG
Michael
AW: Werte unter Spaltenüberschrift kopieren
31.07.2018 11:31:51
Michael
Hallo!
Ändert sich die Spalten-Anordnung der Quell-Tabelle von Mal zu Mal oder bleibt die Reihenfolge gleich?
Nachdem sich die Spalten-Überschriften, die Du in der Ziel-Tabelle verwendest, von der Quell-Tabelle unterscheiden ist es evtl. nicht notwendig einen aufwändigen Abgleich der Spaltenbezeichnungen zu vollziehen, sondern einfach nur fixe Spalten zu kopieren (und in der gewünschten Weise beim Einfügen anzuordnen).
Soll das jeweils in einer Arbeitsmappe (Datei), auf zwei Tabellenblättern, passieren oder in zwei getrennten Arbeitsmappen mit je einem Tabellenblatt?
LG
Michael
Anzeige
AW: Werte unter Spaltenüberschrift kopieren
31.07.2018 12:28:06
Tim
Also, man könnte auch mit festen Spalten arbeiten ohne dabei die Überschriften zu beachten, jedoch müssten dann die Werte ab Zeile 2 Übernommen werden, da die Überschriften nicht überschrieben werden sollen.
Es soll eine Arbeitsmappe sein, mit zwei Tabellenblättern.
AW: Werte unter Spaltenüberschrift kopieren
31.07.2018 12:57:28
Michael
Hallo!
So:
Sub a()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim WsQ As Worksheet: Set WsQ = Wb.Worksheets(1)
Dim WsZ As Worksheet: Set WsZ = Wb.Worksheets(2)
Dim tQ As ListObject: Set tQ = WsQ.ListObjects(1)
Application.ScreenUpdating = False
'Optional: Ziel-Tabellenblatt (2) vorab löschen ohne Überschriften
With WsZ
If .Cells(.Rows.Count, 1).End(xlUp).Row > 1 Then
.Range("A2:D" & .Cells(.Rows.Count, 1).End(xlUp).Row).Clear
End If
End With
With tQ.DataBodyRange
.Offset(, 10).Resize(.Rows.Count, 1).Copy
WsZ.Cells(2, 1).PasteSpecial (xlPasteValuesAndNumberFormats)
.Offset(, 8).Resize(.Rows.Count, 1).Copy
WsZ.Cells(2, 2).PasteSpecial (xlPasteValuesAndNumberFormats)
.Offset(, 4).Resize(.Rows.Count, 1).Copy
WsZ.Cells(2, 3).PasteSpecial (xlPasteValuesAndNumberFormats)
.Offset(, 9).Resize(.Rows.Count, 1).Copy
WsZ.Cells(2, 4).PasteSpecial (xlPasteValuesAndNumberFormats)
End With
Application.CutCopyMode = False
Set Wb = Nothing: Set WsQ = Nothing
Set WsZ = Nothing: Set tQ = Nothing
End Sub
Annahme: Das Quell-Blatt 1 sowie das Ziel-Blatt 2 existieren in der Mappe, und im Zielblatt sind die Überschriften vorhanden.
Der Code kopiert die jeweiligen Spaltenwerte in der vorgegebenen Reihenfolge aus der intelligenten Tabelle des Blattes 1 in das Blatt 2 (hier allerdings in einen regulären Zellbereich, ohne intelligente Tabelle).
LG
Michael
Anzeige
AW: Werte unter Spaltenüberschrift kopieren
31.07.2018 17:04:31
Tim
Funktioniert genauso wie ich es mir vorgestellt habe, vielen Dank!
AW: Gern, Danke für die Rückmeldung, owT
31.07.2018 20:43:19
Michael
AW: Gern, Danke für die Rückmeldung, owT
01.08.2018 07:26:10
Tim
Guten Morgen Michael,
besteht die Möglichkeit, dass du mir, obwohl du es bereits gefragt hast, den Part anpasst!?
"Soll das jeweils in einer Arbeitsmappe (Datei), auf zwei Tabellenblättern, passieren oder in zwei getrennten Arbeitsmappen mit je einem Tabellenblatt?"
=Wäre es möglich, das Makro in einer Arbeitsmappe zu haben, welches die Arbeitsmappe der Ursprungsdatei einliest und dann in eine neue Arbeitsmappe ausgibt. Hintergrund dazu ist, dass ich jetzt die Arbeitsmappe (1) in das Tabellenblatt (1) des Makros händisch kopiere, Anschließend führe ich das makro aus und kopiere mir das zweite Tabellenblatt (2) um daraus in einer neuen Arbeitsmappe die finale Datei zu erhalten...
Anzeige
AW: Ergänzte Variante
01.08.2018 09:19:07
Michael
Hallo!
Nachreichungen haben wir im Forum nicht so gern, aber ich bin mal nicht so: https://www.herber.de/bbs/user/123034.xlsm
Die Datei enthält nur ein Tabellenblatt mit einer Schaltfläche (Code im Modul1). Nach Klick auf die Schaltfläche erscheint ein Dateiauswahl-Dialog um die einzulesende Datei auszuwählen; die Quell-Datei wird dann, wie bisher, in eine neues Arbeitsblatt einer neuen Datei kopiert - die Spaltenüberschriften in der Ziel-Datei sind im Makro hartcodiert und werden eingetragen. Die Quell-Datei sowie die Makro-Datei schließen sich danach automatisch und Du hast die kopierten Daten in einer neuen Arbeitsmappe mit einem Tabellenblatt - diese ist aber noch ungespeichert, das musst Du dann noch manuell machen.
Passt?
LG
Michael
Anzeige
AW: Ergänzte Variante
01.08.2018 09:39:26
Tim
Mega, vielen Dank!!!!!
AW: Freut mich, viel Erfolg noch, owT
01.08.2018 09:47:01
Michael
Anzeige
Anzeige

Infobox / Tutorial

Werte unter Spaltenüberschrift kopieren in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei mit den beiden Tabellenblättern: Tabelle 1 (Quell-Tabelle) und Tabelle 2 (Ziel-Tabelle).

  2. Gehe zum VBA-Editor: Drücke ALT + F11.

  3. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeineDatei)“ > Einfügen > Modul.

  4. Kopiere den folgenden Code in das Modul:

    Sub WerteKopieren()
        Dim Wb As Workbook: Set Wb = ThisWorkbook
        Dim WsQ As Worksheet: Set WsQ = Wb.Worksheets(1)
        Dim WsZ As Worksheet: Set WsZ = Wb.Worksheets(2)
        Dim tQ As ListObject: Set tQ = WsQ.ListObjects(1)
    
        Application.ScreenUpdating = False
    
        ' Ziel-Tabellenblatt (2) vorab löschen ohne Überschriften
        With WsZ
            If .Cells(.Rows.Count, 1).End(xlUp).Row > 1 Then
                .Range("A2:D" & .Cells(.Rows.Count, 1).End(xlUp).Row).Clear
            End If
        End With
    
        With tQ.DataBodyRange
            .Offset(, 10).Resize(.Rows.Count, 1).Copy
            WsZ.Cells(2, 1).PasteSpecial (xlPasteValuesAndNumberFormats)
            .Offset(, 8).Resize(.Rows.Count, 1).Copy
            WsZ.Cells(2, 2).PasteSpecial (xlPasteValuesAndNumberFormats)
            .Offset(, 4).Resize(.Rows.Count, 1).Copy
            WsZ.Cells(2, 3).PasteSpecial (xlPasteValuesAndNumberFormats)
            .Offset(, 9).Resize(.Rows.Count, 1).Copy
            WsZ.Cells(2, 4).PasteSpecial (xlPasteValuesAndNumberFormats)
        End With
    
        Application.CutCopyMode = False
        Set Wb = Nothing: Set WsQ = Nothing
        Set WsZ = Nothing: Set tQ = Nothing
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus: Drücke ALT + F8, wähle „WerteKopieren“ und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: „Typen nicht übereinstimmend“
    Lösung: Stelle sicher, dass die Tabelle 1 eine intelligente Tabelle ist und die Daten korrekt formatiert sind.

  • Fehler: Daten werden nicht kopiert
    Lösung: Überprüfe, ob die Spaltenüberschrift in Tabelle 1 mit den Zielen in Tabelle 2 übereinstimmt.

  • Fehler: Ziel-Tabelle hat keine Überschriften
    Lösung: Achte darauf, dass die Ziel-Tabelle (Tabelle 2) die benötigten Überschriften hat, bevor du das Makro ausführst.


Alternative Methoden

  • Manuelles Kopieren: Du kannst die Zellen manuell kopieren, indem du die gewünschten Werte unter den Spaltenüberschriften auswählst und mit STRG + C kopierst und dann mit STRG + V einfügst.

  • Formeln verwenden: Nutze Formeln wie SVERWEIS oder INDEX / VERGLEICH, um Daten unter den entsprechenden Spaltenüberschriften zu referenzieren.


Praktische Beispiele

  • Beispiel 1: Wenn du Werte unter der Spaltenüberschrift „Test“ in Tabelle 1 hast, und diese in die Spalte „Test 2“ in Tabelle 2 kopieren möchtest, kannst du den Code anpassen, indem du die Offsets änderst.

  • Beispiel 2: Wenn du mehrere Spalten mit den gleichen Überschriften in einer Excel-Tabelle hast, kannst du den Code erweitern, um alle relevanten Daten zu kopieren, ohne die Überschriften zu überschreiben.


Tipps für Profis

  • Nutze Named Ranges, um die Handhabung der Daten zu erleichtern und die Lesbarkeit des Codes zu erhöhen.
  • Halte die Excel-Version aktuell, um die neusten Funktionen und Sicherheitsupdates nutzen zu können.
  • Automatisiere den Prozess durch Schaltflächen in der Excel-Oberfläche, um das Makro mit einem Klick auszuführen.

FAQ: Häufige Fragen

1. Kann ich das Makro auch in einer Excel-Tabelle ohne Spaltenüberschrift verwenden?
Ja, jedoch muss der Code entsprechend angepasst werden, um die Daten korrekt zu referenzieren.

2. Wie kann ich sicherstellen, dass die Überschriften in beiden Tabellen übereinstimmen?
Du kannst eine Überprüfung im Makro einfügen, die sicherstellt, dass die Überschriften vor dem Kopiervorgang übereinstimmen.

3. Ist es möglich, das Makro für mehrere Tabellen gleichzeitig anzuwenden?
Ja, du kannst den Code erweitern, um in einer Schleife durch mehrere Tabellen zu iterieren und die Werte entsprechend zu kopieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige