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

Kopieren von Daten einer formatierten Tabelle (ListObject)

Forumthread: Kopieren von Daten einer formatierten Tabelle (ListObject)

Kopieren von Daten einer formatierten Tabelle (ListObject)
01.11.2019 13:17:55
Daten
Hallo liebe Community,
ich bin leider ein blutiger VBA-Anfänger und möchte Daten aus einer formatierten Excel-Tabelle in eine andere formatierte Tabelle einfügen und dann die Zeilen mit den Daten aus der anderen Ursprungstabelle löschen, jedoch nicht die gesamte Tabelle entfernen! Wichtig zu sagen ist hierbei, dass die zu kopierenden Daten nicht zusammenhängend eingefügt werden sollen.
Unter folgenden Link habe ich meine Arbeitsmappe hochgeladen, wo alles näher beschrieben und dargestellt ist, wie die Daten vor dem Ausführen des Makros aussehen und wie die beiden Tabellen danach aussehen sollen.
https://www.herber.de/bbs/user/132899.xlsm
An dem Makrorekorder bin ich bereits auch schon verzweifelt. Ich hoffe Ihr könnt mir weiterhelfen, vielen Dank im Voraus.
- Svfnr
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren von Daten einer formatierten Tabelle (ListObject)
01.11.2019 14:39:33
Daten
Hallo
du hast zwar eine Beispieldatei hochgeladen, ich sehe aber kein Lösungsbeispiel für die Tabelle2!
Nur eine leere Tabelle1. Mich verwirrt dieser Satz: Die Werte sollen nicht zusammenhängend eingefügt werden (s. "Tabelle2Ende").
Ich begreife nicht was du damit meinst? Man kann sie doch nicht "zerstückelt" in Tabelle2 kopieren! Wohin sollen sie denn kopiert werden? Immer unten angehangen? Oder nur die geaenderten Werte ausgetauscht werden? Das ist mir so noch nicht klar was du da genau meinst.
mffg Piet
Anzeige
AW: Kopieren von Daten einer formatierten Tabelle (ListObject)
01.11.2019 14:54:02
Daten
Ich möchte, dass VBA erkennt wie viele Zeilen in Tabelle1 gefüllt sind und dann die Tabelle 2 entsprechend um diese Anzahl an Zeilen erweitern und gleichzeitig dabei die neu hinzugefügten Zeilen in Tabelle2 mit den Daten aus Tabelle eins füllen. Dabei sollen die Werte aus der Spalte Kategorie in Tabelle1 in die Spalte Kategorie in Tabelle2, die Werte aus der Spalte Bemerkung in Tabelle1 in die Spalte Bemerkung in Tabelle2. Nur die Werte aus der Spalte Betrag aus Tabelle1 sollen in die Spalte Ausgabe2 in Tabelle2 übertragen werden. anschließend sollen nur die Zeilen aus der Tabelle1 entfernt werden, die Tabelle an sich soll aber bestehen bleiben.
Anzeige
AW: Kopieren von Daten einer formatierten Tabelle (ListObject)
02.11.2019 11:58:25
Daten
Hallo Piet,
ich habe es inzwischen mit viel Mühe selbst hinbekommen. Die beiden Tabellen sind ja formatierte Tabellen und haben einen festen Namen im Namens-Manager. Außerdem werden sie später in der Länge variieren.
Hier ist meine Lösung: https://www.herber.de/bbs/user/132905.xlsm
Hab trotzdem vielen Dank für deine Mühe und entschuldige meine Unverständlichkeit.
VG Svfnr
Anzeige
AW: Kopieren von Daten einer formatierten Tabelle (ListObject)
02.11.2019 00:59:56
Daten
Hallo
mit diesem Code sollte es klappen. Wird mich freuen wenn er korrekt funktioniert.
mfg Piet
Sub Schaltfläche1_Klicken()
Dim Tb2 As Worksheet
Dim lz1 As Long, lz2 As Long
Set Tb2 = Worksheets("Tabelle2")
With Worksheets("Tabelle1")
lz1 = .Range("A2").End(xlDown).Row
lz2 = Tb2.Range("A2").End(xlDown).Row
Application.ScreenUpdating = False
'in Tabelle2 neue Zeilen einfügen
For i = 1 To lz1 - 1
Tb2.Range("A2:F2").Copy
Tb2.Range("A2:F2").Offset(lz2 - 1, 0).Insert shift:=xlDown
Next i
'Tabelle2 neue Zeilen Werte löschen
Tb2.Cells(lz2 + 1, 1).Resize(lz2, 1) = Empty
'Spalte A+B Kategorie und Bemerkung kopieren
.Range("A2:B" & lz1).Copy
Tb2.Cells(lz2 + 1, 1).PasteSpecial xlPasteValues
'Spalte C Betrag nach Spalte F kopieren
.Range("C2:C" & lz1).Copy
Tb2.Cells(lz2 + 1, 6).PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Tabelle1 alle Inhalte löschen
.Range("A2:C" & lz1) = Empty
End With
End Sub

Anzeige
;
Anzeige

Infobox / Tutorial

Daten aus formatierten Excel-Tabellen (ListObject) kopieren


Schritt-für-Schritt-Anleitung

Um Daten aus einer formatierten Tabelle (ListObject) in eine andere zu kopieren und anschließend die ursprünglichen Zeilen zu löschen, kannst du den folgenden VBA-Code verwenden. Dieser Code funktioniert in den aktuellen Excel-Versionen und berücksichtigt, dass die Daten nicht zusammenhängend eingefügt werden sollen.

  1. Öffne Excel und lade die Arbeitsmappe, in der du die Daten kopieren möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > Einfügen > Modul.
  4. Kopiere den folgenden Code in das Modul:
Sub Schaltfläche1_Klicken()
    Dim Tb2 As Worksheet
    Dim lz1 As Long, lz2 As Long
    Set Tb2 = Worksheets("Tabelle2")
    With Worksheets("Tabelle1")
        lz1 = .Range("A2").End(xlDown).Row
        lz2 = Tb2.Range("A2").End(xlDown).Row
        Application.ScreenUpdating = False
        ' In Tabelle2 neue Zeilen einfügen
        For i = 1 To lz1 - 1
            Tb2.Range("A2:F2").Copy
            Tb2.Range("A2:F2").Offset(lz2 - 1, 0).Insert shift:=xlDown
        Next i
        ' Tabelle2 neue Zeilen Werte löschen
        Tb2.Cells(lz2 + 1, 1).Resize(lz2, 1) = Empty
        ' Spalte A+B Kategorie und Bemerkung kopieren
        .Range("A2:B" & lz1).Copy
        Tb2.Cells(lz2 + 1, 1).PasteSpecial xlPasteValues
        ' Spalte C Betrag nach Spalte F kopieren
        .Range("C2:C" & lz1).Copy
        Tb2.Cells(lz2 + 1, 6).PasteSpecial xlPasteValues
        Application.CutCopyMode = False
        ' Tabelle1 alle Inhalte löschen
        .Range("A2:C" & lz1) = Empty
    End With
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Füge einen Button hinzu und weise das Makro Schaltfläche1_Klicken diesem Button zu.
  3. Klicke auf den Button, um das Makro auszuführen.

Häufige Fehler und Lösungen

  • Fehler: „Laufzeitfehler 9: Index außerhalb des gültigen Bereichs“

    • Überprüfe, ob die Tabellennamen "Tabelle1" und "Tabelle2" korrekt sind und tatsächlich existieren.
  • Fehler: „Die Methode 'End' für das Objekt 'Range' ist fehlgeschlagen“

    • Stelle sicher, dass in der ersten Zeile unterhalb der Überschrift der Tabelle keine leeren Zellen vorhanden sind.
  • Die Daten werden nicht korrekt kopiert.

    • Überprüfe den Quellbereich. Stelle sicher, dass die gewünschten Daten im angegebenen Bereich liegen.

Alternative Methoden

Falls du mit VBA nicht vertraut bist, kannst du auch die Excel-Funktionalitäten nutzen:

  1. Kopieren und Einfügen: Markiere die gewünschten Zellen in Tabelle1 und füge sie in Tabelle2 manuell ein. Achte darauf, die „Werte einfügen“ Option zu wählen, um Formatierungen zu vermeiden.

  2. Power Query: Nutze Power Query, um Daten aus verschiedenen Tabellen zusammenzuführen. Dies bietet mehr Flexibilität und einfache Handhabung.


Praktische Beispiele

Angenommen, Tabelle1 enthält folgende Daten:

Kategorie Bemerkung Betrag
Essen Mittagessen 10
Transport Busfahrt 2

Nach Ausführung des Makros werden die Daten in Tabelle2 wie folgt aussehen:

Kategorie Bemerkung Ausgabe2
Essen Mittagessen 10
Transport Busfahrt 2

Die Zeilen in Tabelle1 werden nach der Ausführung des Makros gelöscht, nicht jedoch die Tabelle an sich.


Tipps für Profis

  • Verwende Namensbereiche: Definiere Namensbereiche für deine Tabellen, um die Lesbarkeit und Wartbarkeit des VBA-Codes zu verbessern.
  • Fehlerbehandlung: Füge Error-Handling in deinen Code ein, um unerwartete Fehler besser zu verwalten.
  • Dokumentation: Kommentiere deinen Code gut, damit du oder andere Benutzer später leichter verstehen, was der Code tut.

FAQ: Häufige Fragen

1. Kann ich das Makro auch auf mehrere Tabellen anwenden? Ja, du kannst das Makro anpassen, um Daten aus mehreren Tabellen zu kopieren, indem du die entsprechenden Tabellennamen im Code änderst.

2. Funktioniert dieser Code in Excel für Mac? Ja, der VBA-Code ist plattformübergreifend und sollte sowohl in Windows als auch in Mac Excel-Versionen funktionieren, vorausgesetzt, die Namen der Tabellen sind korrekt.

3. Was mache ich, wenn ich keine VBA-Kenntnisse habe? Du kannst entweder die manuelle Kopiermethode verwenden oder dich in VBA einarbeiten. Es gibt viele Tutorials und Ressourcen online, die dir helfen können.

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