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

Forumthread: intelligente Tabelle kopieren

intelligente Tabelle kopieren
13.10.2020 10:39:42
Georg
Hallo zusammen,
ich hab mal wieder ein "banales" Thema, an dem ich aber verzweifele und auch irgendwie keine Lösung im Forum finde.
Ich will eine intelligente Tabelle ("TabQuelle") kopieren und eine bestehende intelligente Tabelle ("TabZiel", beginnt in Zelle J1) damit überschreiben. Das ist erstmal einfach: Range("TabQuelle[#All]").Copy Range("J1")
Die QuellTabelle kann aber immer mal Spalten und Zeilen dazubekommen, die dann entsprechend zu übernehmen sind. Auch das geht damit.
Die Zieltabelle hat aber dann einen anderen Namen!! Und daran breche ich mit die Finger. Wie benenne ich Sie um, wenn die Zeilen und Spalten flexibel sein müssen?
Viiiielen Dank für Eure Hilfe!!
Gruß Georg
https://www.herber.de/bbs/user/140850.xlsm
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: intelligente Tabelle kopieren
13.10.2020 10:54:37
ralf_b
ActiveWorkbook.Names("tabx").Name = "huhu"
klappt nicht
13.10.2020 11:01:18
Georg
Hallo Ralf,
danke, aber das klappt leider nicht, da die neue Tabelle (bei Dir: "tabx") immer andere Namen hat und ich mich nicht darauf beziehen kann.
AW: klappt nicht
13.10.2020 11:08:17
ralf_b
naja vielleicht ist dein Vorgehen mit diesem Drüberkopieren auch nicht ganz der richtige Weg.
Aus deinem Post geht hervor das du weist wie die Zieltabelle heisst.
Ich schätze du arbeitest da auf Zelladressbasis und nicht mit dem Listobject. Die intelligente Tabelle ist dieses Listobject. Mit deren Elementen läßt sich auch Einiges anstellen.
Anzeige
?
13.10.2020 11:10:51
Georg
Ich hab die Datei eingehängt. Da siehst Du meine mickrigen Versuche. Wie muss es denn richtig sein?
guckst du
13.10.2020 11:27:44
ralf_b
befehl einzeilig anwenden. Das Forenfenster bricht die Zeile um
ActiveSheet.ListObjects("TabQuelle").DataBodyRange.Copy ActiveSheet.ListObjects("TabZiel").DataBodyRange
fast...
13.10.2020 11:35:48
Georg
Das ist schon sehr nah dran, was ich brauche. Daten werden übertragen und der Tabellenname bleibt. Aber leider nimmt er mir die Überschriften von neuen Spalten nicht mit..
Anzeige
AW: intelligente Tabelle kopieren
13.10.2020 11:05:54
Georg
Die grundlegende Frage ist für mich: wie kopiere ich die Daten von einer int. Tabelle in eine andere int. Tabelle bei flexiblen Zeilen und Spalten, aber gegebenem Namen der Zieltabelle.
Geht doch sicher irgendwie..
AW: intelligente Tabelle kopieren
13.10.2020 11:34:54
Rudi
Hallo,
With Sheets("Tabelle1")
.Range("TabQuelle[#All]").Copy .Range(.ListObjects(2).Name).Cells(1).Offset(-1)
End With

Gruß
Rudi
Anzeige
bingo - aber noch eine Frage
13.10.2020 11:48:35
Georg
Klasse, Rudi, vielen Dank. Das läuft in der Testdatei wie es soll. Ich werde es mal in meine Arbeitsdatei übernehmen und hoffen, dass es auch dort funzt.
Nur verstehe ich es leider nicht wirklich.
Was bedeutet: .Range(.ListObjects(2).Name).Cells(1).Offset(-1) ?
Wieso "Listobjects(2).Name", was macht "Cells" hier und warum am Schluss noch das "Offset"?
Danke für die zusätzliche Erleuchtung!
Gruß Georg
Anzeige
AW: bingo - aber noch eine Frage
13.10.2020 11:58:09
Rudi
Hallo,
deine 'intelligenten' Tabellen sind ListObjects. Listobjects(2).Name gibt eben den Namen der 2. Tabelle (TabZiel) wieder. Der Name bezieht sich aber auf J2:O9.
Range(Listobjects(2).Name)--&gt Range("TabZiel")--&gt Range("J2:O9")
Range("J2:O9").Cells(1)--&gt J2
J2.Offset(-1)--&gt J1
Gruß
Rudi
Anzeige
KLASSE!
13.10.2020 12:02:35
Georg
ok, hab`s begriffen (so mir möglich).
Vielen Dank Rudi!!!!
AW: KLASSE!
13.10.2020 13:09:14
Georg
Hallo Rudi,
jetzt doch noch eine Frage: ich muss die Daten von einer Datei zu einer anderen schaufeln. Zur Vereinfachung hatte ich das in dem o.a. Muster nicht eingebaut und dachte, dass ich das schon hin bekomme. Ich scheitere aber schon daran, die Daten von einem Register zum andern innerhalb einer Datei zu schieben, da Excel einen unzulässigen oder nicht ausreichend definierten Bereich anmeckert und den Code ".ListObjects" markiert.
Ich hab die Zieltabelle in das Register "Tabelle3" geschoben und das Makro ff. geändert:
Sub Makro5()
Sheets("Tabelle3").Columns("N:Q").ClearContents
Sheets("Tabelle3").Range("J5:L16").ClearContents
Sheets("Tabelle1").Range("TabQuelle[#All]").Copy
Sheets("Tabelle3").Range(.ListObjects(2).Name).Cells(1).Offset (-1)
End Sub
:-((
Gruß Georg
https://www.herber.de/bbs/user/140859.xlsm
Anzeige
gefunden
13.10.2020 14:05:55
Georg
Ich hab es jetzt so gelöst:
Sub Copy()
Sheets("Tabelle1").ListObjects("TabQuelle").Range.Copy
Sheets("Tabelle3").ListObjects("TabZiel").Range.PasteSpecial Paste:=xlPasteValues
End Sub

Eigentlich ganz einfach... :-)
;

Forumthreads zu verwandten Themen

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

Intelligente Tabelle in Excel kopieren und duplizieren


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und identifiziere die Quelltabelle, die du kopieren möchtest (z.B. "TabQuelle").

  2. Bestimme die Zieltabelle (z.B. "TabZiel"), in die die Daten kopiert werden sollen. Diese sollte bereits existieren.

  3. Öffne das VBA-Editor (Alt + F11) und füge den folgenden Code ein:

    Sub CopyIntelligentTable()
       Sheets("Tabelle1").ListObjects("TabQuelle").Range.Copy
       Sheets("Tabelle3").ListObjects("TabZiel").Range.PasteSpecial Paste:=xlPasteValues
    End Sub
  4. Führe das Makro aus. Dies wird die Daten von "TabQuelle" in die "TabZiel" Tabelle kopieren.

  5. Überprüfe die Zieltabelle auf die korrekt kopierten Werte. Achte darauf, dass die Überschriften und Daten übernommen wurden.


Häufige Fehler und Lösungen

  • Fehler: "Ungültiger Bereich"

    • Lösung: Stelle sicher, dass die Zieltabelle tatsächlich existiert und korrekt benannt ist. Überprüfe auch, ob die Tabelle in der richtigen Arbeitsmappe ist.
  • Fehler: Daten werden nicht kopiert

    • Lösung: Achte darauf, dass du die richtige Methode verwendest, um nur die Werte zu kopieren. Nutze den PasteSpecial Befehl wie im obigen Code.
  • Fehler: Überschriften werden nicht übernommen

    • Lösung: Stelle sicher, dass du die gesamte Tabelle kopierst, einschließlich der Überschrift. Verwende Range("TabQuelle[#All]"), um sicherzustellen, dass alles kopiert wird.

Alternative Methoden

  • Excel VBA Intelligente Tabelle: Du kannst auch den ListObject direkt ansprechen, um Daten zu kopieren:

    ActiveSheet.ListObjects("TabQuelle").DataBodyRange.Copy _
    ActiveSheet.ListObjects("TabZiel").DataBodyRange
  • Excel Folien duplizieren: Wenn du eine Folie in Excel duplizieren möchtest, kannst du das über die Präsentationsansicht tun. Dies kann hilfreich sein, wenn du eine Tabelle auf mehreren Folien darstellen möchtest.


Praktische Beispiele

  • Beispiel 1: Daten zwischen zwei Tabellen Wenn du Daten von einer intelligenten Tabelle in eine andere innerhalb der gleichen Arbeitsmappe kopieren möchtest:

    Sub CopyData()
      Sheets("Tabelle1").ListObjects("TabQuelle").Range.Copy
      Sheets("Tabelle3").ListObjects("TabZiel").Range.PasteSpecial Paste:=xlPasteValues
    End Sub
  • Beispiel 2: Dynamisches Kopieren Um flexibel mit unterschiedlichen Spalten und Zeilen umzugehen, kannst du Resize verwenden:

    Sub DynamicCopy()
      Dim sourceTable As ListObject
      Set sourceTable = Sheets("Tabelle1").ListObjects("TabQuelle")
      sourceTable.Range.Copy
      Sheets("Tabelle3").ListObjects("TabZiel").Range.Resize(sourceTable.ListRows.Count, sourceTable.ListColumns.Count).PasteSpecial Paste:=xlPasteValues
    End Sub

Tipps für Profis

  • Nutze Strg + Z nach dem Kopieren, um schnell Änderungen rückgängig zu machen, falls etwas schiefgeht.
  • Verwende Namen für Bereiche in deinen Tabellen, um den Code leserlicher zu machen.
  • Experimentiere mit Schleifen in VBA, um mehrere Tabellen gleichzeitig zu kopieren oder zu duplizieren.

FAQ: Häufige Fragen

1. Wie kann ich eine intelligente Tabelle in eine andere Excel-Mappe duplizieren? Du kannst die Daten kopieren und dann in die andere Arbeitsmappe einfügen, indem du den Arbeitsmappe-Referenznamen verwendest.

2. Was ist der Unterschied zwischen einer normalen Tabelle und einer intelligenten Tabelle in Excel? Eine intelligente Tabelle (ListObject) bietet erweiterte Funktionen wie automatisches Filtern, Sortieren und einfacheres Referenzieren in Formeln.

3. Wie kann ich mehrere intelligente Tabellen gleichzeitig kopieren? Du kannst eine Schleife verwenden, um durch alle ListObjects in einem Arbeitsblatt zu iterieren und sie nacheinander zu kopieren.

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