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
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Öffne dein Excel-Dokument und stelle sicher, dass der Filter auf die gewünschte Spalte angewendet ist.
Öffne den VBA-Editor mit ALT + F11.
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeinDokument)", gehe zu "Einfügen" und wähle "Modul".
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
Schließe den VBA-Editor und kehre zu Excel zurück.
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.
Fehler: "Laufzeitfehler 1004: Der Bereich ist ungültig."
Fehler: Nichts wird kopiert.
Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die Standardfilter- und Kopiermethoden in Excel verwenden:
STRG + A.STRG + C.STRG + V ein.Diese Methode ist weniger automatisiert, aber für einfache Aufgaben oft ausreichend.
Angenommen, du hast eine Liste von Verkaufszahlen, die nach Produktkategorien gefiltert ist. Um nur die sichtbaren Verkäufe in ein neues Tabellenblatt zu übertragen:
Das spart Zeit und hält deine Daten übersichtlich.
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.
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").