Anzeige
Archiv - Navigation
1956to1960
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

VBA: Nur gefilterte Datensätze in anderes Blatt kopieren

VBA: Nur gefilterte Datensätze in anderes Blatt kopieren
19.12.2023 18:00:45
Fritz_W
Hallo Forumsbesucher,

nachdem mir vor einigen Tagen hier in diesem Forum wieder einmal durch so prima Vorschläge geholfen wurde, bitte ich erneut um eure Unterstützung.
Ich möchte aus einer gefilterten (intelligenten) Tabelle (Tabellenname "Liste2") einzelne Spalten kopieren und nur die gefilterten (eingeblendeten) Zeilen (unformatiert) in das Tabellenblatt "Sicherung" ab Zelle B2 einfügen. Kopiert werden sollen Spalte A (Spaltenbezeichnung "Nr."), Spalte B ("Name"), Spalte D ("Disziplin") und Spalte F ("Ergebnis").

Für eure Hilfen im Voraus besten Dank.

mfg
Fritz

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Nur gefilterte Datensätze in anderes Blatt kopieren
19.12.2023 22:32:36
Piet
Hallo

versuch es bitte mal so, ungetestet, weil ich deine Datei nicht vorliegen habe.
Bei "xxx" und "neue Tabelle" bitte deine Tabellen Namen angeben!

Sub Kopieren()
Sheets("xxxx").ListObjects("Liste2").Range("A2:B" & lz1).Copy
Sheets("neue Tabelle").Range("A2").PasteSpecial xlPasteValues
'usw.
End Sub

mfg Piet
AW: Gerne! Freut mich das wir dir helfen konnten oWt
21.12.2023 20:46:03
Piet
...
AW: VBA: Nur gefilterte Datensätze in anderes Blatt kopieren
20.12.2023 09:00:47
Fritz_W
Hallo Piet,
das funktioniert - auch angepasst - so leider nicht.
Fehlermeldung: Laufzeitfehler 9: Index außerhalb des gültigen Bereichs.
Aber vielen Dank für Deine Unterstützung.

mfg
Fritz
AW: VBA: Nur gefilterte Datensätze in anderes Blatt kopieren
20.12.2023 10:53:41
Oberschlumpf
Fritz,

der Fehler "sagt" dir, dass es eins von dir verwendeten Objekte in deiner Datei - nicht - gibt.
Überprüf, ob bei dem verwendeten Code...
...ein Tabellenblatt mit Namen "xxxx" vorhanden ist
...genau im Blatt "xxxx" eine intell. Tabelle mit dem Namen "Liste2" vorhanden ist
...und auch ein weiteres Tabellenblatt mit dem Namen "neue Tabelle" MUSS in deiner Datei vorhanden sein

Wenn du feststellst, "ups...das oder das is nich da" und du es korrigiert hast, dann sollte der Code funktionieren.
Du könntest natürlich auch, um die Raterei zu beenden, uns per Upload eine Bsp-Datei mit genügend Bsp-Daten zeigen, so dass wir dann testen können und nich mehr raten müssen.

Ciao
Thorsten
Anzeige
AW: VBA: Nur gefilterte Datensätze in anderes Blatt kopieren
20.12.2023 12:18:54
Fritz_W
Hallo Thorsten,

vielen Dank, mir ist tatsächlich beim Anpassen des Codes ein Tippfehler unterlaufen.
Aber auch nach der Korrektur kommt eine Fehlermeldung:
Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument

Um eine Beispieldatei hochzuladen, müsste ich erst die Datei anonymisieren bzw. eine neue Datei mit anderen Eingaben erstellen. Dazu komme ich aber frühestens morgen.
Nochmals Dank an euch alle.

mfg
Fritz
AW: VBA: Nur gefilterte Datensätze in anderes Blatt kopieren
20.12.2023 15:27:30
Oberschlumpf
Tja Fritz,

dann bis morgen mit deiner Bsp-Datei.
Der neue Fehler scheint für mich wieder irgdnwo n Tippfehler zu sein....da du aber nich verrätst, welche Codezeile genau den Fehler verursacht, müsste ich schon wieder....raten :-/
Ich wart bis morgen, aber vllt is ja wer anders schneller/besser mit antworten als ich...

Ciao
Thorsten
Anzeige
AW: VBA: Nur gefilterte Datensätze in anderes Blatt kopieren
20.12.2023 18:09:31
Fritz_W
Hallo Thorsten
nachstehend der Code, den ich in der Mappe verwende. Das Tabellenblatt mit der (intelligenten) Tabelle ist das Tabellenblatt "Ergebnisliste", die Tabelle heißt "Liste2".
Die kopierten Spalten dieser Tabelle sollen in das Tabellenblatt "Sicherung".
Aufgrund der vorher beschriebenen Fehlermeldung "Laufzeitfehler 5 ...") wird im Code die erste Zeile der Anweisung (gelb) markiert.
Selbstverständlich möchte ich den Helfern die Arbeit nicht unnötig erschweren. Andererseits möchte ich aus Gründen des Datenschutzes die Originaldatei nicht hochladen und glaubte, dass meine Beschreibung ausreichend ist. Aber wenn das nicht so ist, werde ich eine geänderte Datei erstellen und dann morgen oder übermorgen hochladen.
Aber vielleicht reichen meine Erklärungen jetzt auch aus.
Vielen Dank für das Hilfsangebot und euer aller Verständnis.

mfg
Fritz

Sub Kopieren()
Sheets("Ergebnisliste").ListObjects("Liste2").Range("A2:B" & lz1).Copy
Sheets("Sicherung").Range("A2").PasteSpecial xlPasteValues
End Sub
Anzeige
AW: VBA: Nur gefilterte Datensätze in anderes Blatt kopieren
20.12.2023 21:57:47
Oberschlumpf
Hi Fritz,

im von dir gezeigten Code (4 Zeilen) handelt es sich bei lz1 um eine Variable, die aber keinen Wert erhalten hat...
...somit ist lz1 = 0...
...daraus ergibt der Codeteil "A2:B" & lz1 = "A2:B0" = es gibt aber keine Zeile 0!

Andere Fehler seh ich in den 4 Codezeilen nicht ohne Bsp-Datei.

Ciao
Thorsten
AW: VBA: Nur gefilterte Datensätze in anderes Blatt kopieren
20.12.2023 22:06:13
Piet
Hallo

dann schau bitte mal was passiert wenn du es so programmierst: - sollte es damit klappen freu dich einfach, nicht fragen warum.
Ah, noch eine Frage, wurde lz1 vorher gesetzt, hat lz1 auch einen Wert > 0. Bitt mal mitz MsgBox prüfen.
Sheets("Ergebnisliste").Range("A2:B" & lz1).Copy

mfg Piet

Anzeige
@Piet und Thorsten
21.12.2023 11:07:18
Fritz_W
Hallo
es tut mir leid, aber selbst eure gut gemeinten Hinweise überfordern meine VBA-Kenntnisse.
Um euch nicht weiter mit meinem Unwissen zu behelligen, habe ich versucht, mir mit dem nachfolgend aufgezeichneten Code zu behelfen, der für mich wohl in der Tat zumindest eine Alternative darstellt. Aus meiner Sicht muss ich damit - zumindest hinsichtlich des angestrebten Ziels - zwei Abstriche machen.
1. Es werden alle Spalten der Tabelle gesichert
2. Das Makro muss aus dem Tabellenblatt "Ergebnisliste" aufgerufen werden.

Bezüglich Nr. 1 kann ich mir - bezogen auf die Tabelle "Sicherung" z.B. mit dem Befehl "Columns("C:C").delete" behelfen.

Falls ihr Vorschläge zur Behebung mit meiner Vorgehensweise verbundener "Mängel" habt, würde ich mich freuen.
Auf jeden Fall vielen Dank für eure Mühen und (fast noch mehr) für euer Verständnis und eure Geduld.

mfg Fritz

hier noch der aufgezeichnete Code:

Sub Makro1()
'
Range("Liste2").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Sicherung").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Anzeige
AW: @Piet und Thorsten
21.12.2023 15:02:24
Piet
Hallo

wenn du damit klarkommst warum nicht. Kopieren wir alles und löschen Spalte C. Wennn es klappt, No Problem!
So kannst du denCode unabhängig vom Sheet starten. Würde mich freuen wenn es damit jetzt klappt.

mfg Piet

Sub Makro()

Sheets("Ergebnisliste").Range("Liste2").SpecialCells(xlCellTypeVisible).Copy
Sheets("Sicherung").Range("B2").PasteSpecial Paste:=xlPasteValues
Sheets("Sicherung").Columns("C").Delete shift:=xlToRight
End Sub
AW: @Piet und Thorsten
21.12.2023 16:33:28
Fritz_W
Hallo Piet,

das funktioniert so und bringt mich schon mal richtig weiter.
Eine einzige Frage hätte ich noch:
Wenn ich zwei - nicht unmittelbar aufeinander folgende Spalten - entfernen möchte, wie muss ich den Code dann ändern?
Aus Datenschutzgründen hätte ich eben zumindest 2 Spalten aus der Liste entfernt, da die Sicherung anderweitig verwendet werden soll.
Notfalls kann ich das wohl über 2 aufeinanderfolgende Befehle wohl auch erreichen, da müsste ich aber wohl einkalkulieren, dass die eine Spalte schon gelöscht ist, wenn die zweite gelöscht werden soll.

Nochmals vielen Dank.

mfg
Fritz
Anzeige
Nachtrag
21.12.2023 18:05:54
Fritz_W
Hallo Piet und Thorsten,

ich habe eine für mich zufriedenstellende Lösung gefunden:
Ich blende im Tabellenblatt "Ergebnisliste" vor dem Kopiervorgang die nicht zu kopierenden Spalten per Makro aus.
Danach der Code von Piet.
Anschließend die jeweiligen Spalten wieder einblenden.
So hab ich ein für mich passendes Ergebnis.

Euch beiden nochmals vielen Dank für eure Unterstützung.
Ich wäre froh und dankbar, bei Notwendigkeit ggf. wieder auf euer Fachwissen zurückgreifen zu dürfen.

mfg
Fritz
AW: @Piet und Thorsten
21.12.2023 20:41:16
Piet
Hallo

freut mich das es soweit klappt, ich denke damit kannst du leben, oder?
Löschen ist auch kein Problem, aber beachte bitte die Feinheiten im Detail!

Egal ob du Spalten oder Zeilen löschen willst, das muss IMMER Rückwärts erfolgen. Auch bei Zeilen!
Sonst bringst du ja die Spalten (Zeilen) in der Reihenfolge durcheinander, wenn du vorne anfängst.
Also letzte Spalte immer zuerst löschen! Und dann schrittweise weiter bis zur 1. Spalte.

mfg Piet
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige