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

Forumthread: VBA Filterergebnis kopieren einfügen

VBA Filterergebnis kopieren einfügen
09.12.2014 17:22:29
Theo
Hallo Excel-Spezialisten,
bräuchte Eure Hilfe beim Erstellen eines VBA-Codes.
Bedingungen: Eine gefilterte Spalte kopieren (ohne Kopfzeile) und in einem anderen Tabellenblatt nur die Werte einfügen (ohne die Formatierung mitzunehmen).
MFG Theo

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Filterergebnis kopieren einfügen
09.12.2014 18:07:24
Daniel
Hi
With ActiveSheet.AutoFilter.Range
.Resize(.Rows.Count - 1).Offset(1, 0).Columns(1).Copy
End With
Sheets("Anderes Tabellenblatt").Cells(1, 1).PasteSpecial xlPasteValues
kopiert wird hier die erste Spalte des gefilterten Bereichs, ohne die Überschriftenzeile
Excel kopiert automatisch nur die sichtbaren Zeilen.
Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Filterergebnis kopieren und einfügen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und stelle sicher, dass der Filter auf die gewünschte Spalte angewendet ist.

  2. Öffne den VBA-Editor mit ALT + F11.

  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeinDokument)", gehe zu "Einfügen" und wähle "Modul".

  4. Kopiere den folgenden Code in das Modul:

    Sub FilterErgebnisKopieren()
        With ActiveSheet.AutoFilter.Range
            .Resize(.Rows.Count - 1).Offset(1, 0).Columns(1).Copy
        End With
        Sheets("Anderes Tabellenblatt").Cells(1, 1).PasteSpecial xlPasteValues
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus: Gehe zu "Entwicklertools" > "Makros", wähle FilterErgebnisKopieren und klicke auf "Ausführen".

Damit hast du erfolgreich die gefilterten Werte aus deiner Tabelle kopiert und in ein anderes Tabellenblatt eingefügt, ohne die Formatierung mitzunehmen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Der Bereich ist ungültig."

    • Lösung: Stelle sicher, dass du den Filter wirklich angewendet hast und dass das Tabellenblatt "Anderes Tabellenblatt" existiert.
  • Fehler: Nichts wird kopiert.

    • Lösung: Überprüfe, ob die Spalte, die du kopieren möchtest, tatsächlich gefilterte Werte hat. Der Code kopiert nur die sichtbaren Zeilen.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die Standardfilter- und Kopiermethoden in Excel verwenden:

  1. Filter anwenden auf die gewünschte Spalte.
  2. Markiere die sichtbaren Zellen durch Drücken von STRG + A.
  3. Kopiere die Daten mit STRG + C.
  4. Wechsel zum Zieltabellenblatt und füge die Daten mit STRG + V ein.

Diese Methode ist weniger automatisiert, aber für einfache Aufgaben oft ausreichend.


Praktische Beispiele

Angenommen, du hast eine Liste von Verkaufszahlen, die nach Produktkategorien gefiltert ist. Um nur die sichtbaren Verkäufe in ein neues Tabellenblatt zu übertragen:

  1. Filtere die Kategorie, z.B. "Elektronik".
  2. Führe das VBA-Skript aus, um nur die gefilterten Verkaufszahlen in das neue Tabellenblatt zu kopieren.

Das spart Zeit und hält deine Daten übersichtlich.


Tipps für Profis

  • Nutze Variablen, um den Zielbereich dynamisch zu machen. So kannst du das Zielblatt und die Zielzelle flexibel anpassen.

    Dim ZielBlatt As Worksheet
    Set ZielBlatt = ThisWorkbook.Sheets("Anderes Tabellenblatt")
    ZielBlatt.Cells(1, 1).PasteSpecial xlPasteValues
  • Verwende das Application.CutCopyMode um den Kopiermodus zu beenden:

    Application.CutCopyMode = False

Das sorgt dafür, dass die "marquierten" Zellen nach dem Einfügen wieder normal angezeigt werden.


FAQ: Häufige Fragen

1. Wie kann ich den Filterbereich festlegen?
Um den Filterbereich festzulegen, wähle die Zellen aus, die du filtern möchtest, bevor du den Filter anwendest. Du kannst auch den VBA-Befehl AutoFilter verwenden, um den Filterbereich programmgesteuert festzulegen.

2. Kann ich mehrere Spalten gleichzeitig kopieren?
Ja, du kannst den Code anpassen, um mehrere Spalten zu kopieren, indem du die entsprechenden Spalten im Columns-Parameter angibst, z.B. .Columns("A:C").

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige