Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1432to1436
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Alle Zeilen einer Tabelle kopieren

Alle Zeilen einer Tabelle kopieren
06.07.2015 09:31:42
Ma27
Hallo Forum,
ich habe eine Exceldatei mit 10 Tabellenblättern, die die gleiche Tabelle (gleiche Überschriften) beinhalten. Diese würde ich gerne mit der Überschrift in Zeile 1 in dem Tabellenblatt "Konsolidierung" per Makro zusammenfügen, damit ich bei Aktualisierung der 10 Tabellen auch die neuen Daten in der Tabelle "Konsolidierung" habe.
Ich habe nun ein Makro aufgezeichnet, bei dem ich die Daten in den verschiedenen Tabellen kopiert und in die Tabelle "Konsolidierung" untereinander eingefügt habe.
Da sich meine 10 Tabellen aber anhand einer Webabfrage automatisch beim Öffnen der Datei aktualisieren, kommen auch neue Zeilen in den Tabellen hinzu die auch in die Tabelle "Konsolidierung eingefügt werden sollen.
Könnt ihr mir hierbei bitte weiterhelfen?
Mein Makro sieht wie folgt aus:

Sub Aktualisierung()
' Aktualisierung Makro
' Dieses Makro fügt die aktualisierten Listen in das Tabellenblatt Konsolidierung zusammen
' Nimmt das Tabellenblatt R8LR und kopiert Zeile 2 bis zu meiner Auswahl, übernimmt aber nicht   _
_
neu hinzugekommene Spalen'
Sheets("R8LR").Select
Range("Tabelle__R8LR").Select
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Selection.Copy
Sheets("Konsolidierung").Select
ActiveWindow.SmallScroll Down:=-6
Range("A2").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=9
Sheets("S15i").Select
ActiveWindow.SmallScroll Down:=-21
Range("Tabelle__S15i").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Konsolidierung").Select
Range("A12").Select
ActiveSheet.Paste
Sheets("M98MA").Select
Range("Tabelle_M98MA").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Konsolidierung").Select
ActiveWindow.SmallScroll Down:=165
Range("A177").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=99
Sheets("F16").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("Tabelle_F16_").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Konsolidierung").Select
Range("A275").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=159
Range("A437").Select
Sheets("M98ST").Select
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("Tabelle_M98ST").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Konsolidierung").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=6
Sheets("S15iKS").Select
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("Tabelle__S15iKS").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Konsolidierung").Select
Range("A441").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=6
Sheets("BSLB").Select
ActiveWindow.ScrollColumn = 1
Range("Tabelle_BSLB").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Konsolidierung").Select
Range("A446").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=21
Sheets("ISD").Select
Range("E2:L3").Select
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("Tabelle_ISD").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Konsolidierung").Select
Range("A467").Select
ActiveSheet.Paste
Sheets("M12HS").Select
ActiveWindow.ScrollColumn = 1
Range("A3:N3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Konsolidierung").Select
Range("A468").Select
ActiveSheet.Paste
End Sub

Danke schonmal und viele Grüße

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Zeilen einer Tabelle kopieren
06.07.2015 09:56:22
Daniel
Hi
wenn du hilfe möchtest, solltest du erstmal deinen Code von unnötigem befreien.
mit dem Makro aufgezeichneter Programmcode enthält viele Befehle, die wir als Anwender und Mausschubser zwar ausführen müssen, welche aber für das Makro unnötig sind.
beispielsweise kannst du sämtliche Befehle ActiveWindow.ScrollColumn = 5 oder ActiveWindow.ScrollRow = 4 sofort löschen.
Desweitern ist es in einem Makro nicht erforderlich, eine Zelle zuserst zu selektieren und dann mit dem Selektierten Zellbereich den Befehl auszuführen.
Das ist nur der Tatsache geschuldet, dass der Anwender mit der Maus arbeitet und daher erst ein Element anwählen muss und danach dann den Befehl.
VBA kann aber auch direkt den Befehl auf das Element anwenden.
beispiel:
Sheets("R8LR").Select
Range("Tabelle__R8LR").Select
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Selection.Copy
Sheets("Konsolidierung").Select
ActiveWindow.SmallScroll Down:=-6
Range("A2").Select
ActiveSheet.Paste

wird zu:
Sheets("R8LR").Range("Tabelle__R8LR").Copy Destination:=Sheets("Konsolidierung").Range("A2")

weitere Infos zu dem Thema, wie aufgezeichneter Code zu überarbeiten ist, findest du hier:
http://www.online-excel.de/excel/singsel_vba.php?f=78
überarbeite mal deinen Code entsprechend diesen Hinweisen, dann wird er kürzer und übersichtlicher und dann findet man auch die fehler leichter.
Gruß Daniel

Anzeige
AW: Alle Zeilen einer Tabelle kopieren
06.07.2015 11:00:04
Klexy
Zusatz zum Umgang mit Makros: Du hast überall absolute Befehle:
Range("A12").Select
ActiveSheet.Paste

Du musst relative Befehle nehmen, denn es kommen ja Daten hinzu, wie du schreibst, und dann ist die erste leere Zeile nicht mehr 12 sondern 13 oder 14:
Range("A1").End(xlDown).Offset(1,0).Select
Du schreibst, dass neue Zahlen hinzukommen. Kommen auch alte Zahlen weg?
Du schreibst, dass neue Zeilen in die Konsolidierung eingefügt werden sollen. Wo eingefügt? Ans Ende? Ans Ende des Bereichs aus dem jeweiligen Tabellenblatt?
Oder meinst du gar nicht eingefügt, sondern jedes Mal eine neue komplette Konsolidierungsliste erstellen?
Und dann wäre eine Beispieldatei schon sehr hilfreich, damit man sieht, wie sich die Daten von Mal zu Mal ändern können.
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige