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

Forumthread: Spezialfilter kopie auf Tabelle 2 ...

Spezialfilter kopie auf Tabelle 2 ...
berny
Hallo Excelfreunde,
ich möchte via Spezialfilter die Filterdaten auf eine separate Tabelle / separate Mappe kopieren.
Auf das selbe Tabellenblatt auf dem auch die Ursprungsdaten stehen bekomme ich das hin, aber sowie ich als Ziel eine andere Tabelle innerhalb der Mappe oder auch eine weitere Mappe anwähle bekomme ich eine Fehlermeldung. »Nur gefilterte Daten können in das aktive Blatt kopiert werden«.
Soll das wirklich bedeuten das mein vorhaben nicht geht?
Ich habe eine Ursprungstabelle von über 100 Spalten und mehrere Tausend Zeilen. Da macht es keinen Sinn die Filterdaten auf das gleiche Tabellenblatt zu kopieren.
Hat jemand eine Lösung (ggf. Bsp.) für mich?
Wenn es nicht anders geht nehme ich auch eine VBA - Lösung.
M.f.G.
Berny
Anzeige
AW: Spezialfilter kopie auf Tabelle 2 ...
17.10.2011 10:33:23
Bertram
Hallo Berny,
das geht tatsächlich nicht. Filtere doch in das gleiche Tabellenblatt und kopiere das Filtrat anschließen in die neue Tabelle / Mappe.
Das kannst du auch mit dem Makrorekorder aufzeichnen.
Gruß
Bertram
AW: Spezialfilter kopie auf Tabelle 2 ...
17.10.2011 10:45:17
Reinhard
Hallo Berny,
andere Mappe mußt du ausprobieren.
Anderes Blatt der Mappe geht einfach. Du mußt den Spezialfilter im anderen Blatt aufrufen.
Warum das nicht in F1 steht ist mir schleierhaft
Gruß
Reinhard
Anzeige
AW: Spezialfilter kopie auf Tabelle 2 ...
17.10.2011 10:52:10
Bertram
Hallo Reinhard,
wie funzt das denn? Vom anderen Blatt aufrufen hab ich noch nie gehört oder hingekriegt.
Gruß
Bertram
Spezialfilter auf anderes Talabellenblatt
17.10.2011 10:57:10
Reinhard
Hallo Bertram,
Blatt1!A1:D40 willst nach Blatt2 filtern mit Spezialfilter.
Dann gehst du auf Blatt2, rufst Daten---Spezialfilter auf.
Dann gehst du in dem Fenster auf die TextBox für Listenbeereich, schreibst da manuell rein
Tabelle1!A1:D50 oder aber bequemer gesht aub Blatt1 und wählst mit der Maus o.ä.
Nach Enter biste wieder in Blatt2.
Den Kritierienbereich kannste anlegen wo du willst, also Blatt1 oder Blatt2, k.A. vielleicht geht auch Blatt3 :-)
Bei "Kopiern nach" wählste halt eine Zelle in Blatt2
Gruß
Reinhard
Anzeige
AW: Spezialfilter auf anderes Talabellenblatt
17.10.2011 11:01:31
berny
Hallo Reinhard
vielen Dank!!!!!!!!!
Das funktioniert wirklich!
(Die Kriterien dürfen auch auf Blatt 3 sein.)
Mein Dank geht natürlich auch an Bertram
M.f.G.
Berny
AW: Spezialfilter auf anderes Talabellenblatt
17.10.2011 11:05:58
Bertram
Hallo Reinhard,
ok, jetzt funzt. Wußte nicht dass das so rum auch geht. Hab's aber vorher genau so probiert und dann kam immer was wie "Bereich nicht gültig". Komisch, hab mich wohl immer vertippt oder so. Aber ich werd's mir gleich mal merken, dass das doch geht mit dem anderen Tabellenblatt.
Danke und Gruß
Bertram
Anzeige
Nicht auf OK, einfach andre TextBox wählen o.w.T.
17.10.2011 11:11:59
Reinhard


Schon klar:-) Meinte nicht den OK-Button...
17.10.2011 11:19:15
Bertram
....sondern, dass es jetzt ok ist und funktioniert:-)
Gruß
Bertram
Korrektur war nur für das Archiv :-)) o.w.T.
17.10.2011 11:28:29
Reinhard


Anzeige
mit VBA und Spezialfilter
17.10.2011 11:07:45
Tino
Hallo,
mit VBA kannst Du es so machen.
In der ersten Zelle neben den Datenbereich gibst Du eine Formel ein für den Filter,
diese muss Wahr oder Falsch ergeben.
Hier ein Beispiel
 ABCD
1Überschrift 1Überschrift 2Überschrift 3 
2348755 
3803834 
4144778 
5183280 
6914131 
731913 
8798286 
9895681 
10197014 

In die gelbe Zelle kommt die Formel, die muss wie geschrieben WAHR oder Falsch ergeben,
die Zeile mit Wahr wird im Ziel ausgeben.
Der VBA Code sieht jetzt so aus, hier werden alle Zeilen gefiltert die eine 1 enthalten.

Sub Spezial_Filter()
Dim FilterBereich As Range
Dim Kriterienbereich As Range
Dim Ziel As Range

Set FilterBereich = Sheets("Tabelle1").Columns("A:C") 'Filterbereich 
Set Kriterienbereich = Sheets("Tabelle1").Range("D2") 'Kriterienbereich 
Set Ziel = Sheets("Tabelle2").Range("A1") 'erste Zelle im Ziel 

Kriterienbereich(1, 1).FormulaLocal = "=ISTZAHL(FINDEN(""1"";A2&B2&C2))"

FilterBereich.AdvancedFilter xlFilterCopy, Kriterienbereich, Ziel

Kriterienbereich.Clear 'Hilfzelle löschen 
End Sub
Hier noch die Beispielmappe
https://www.herber.de/bbs/user/77045.xls
Gruß Tino
Anzeige
Korrektur
17.10.2011 11:46:00
Tino
Hallo,
muss noch was Korrigieren, Kriterienbereich muss aus zwei Zellen bestehen.
Überschriftzeile und die erste Zeile im Datenbereich.
https://www.herber.de/bbs/user/77046.xls

Sub Spezial_Filter()
Dim FilterBereich As Range
Dim Kriterienbereich As Range
Dim Ziel As Range

Set FilterBereich = Sheets("Tabelle1").Columns("A:C") 'Filterbereich 
Set Kriterienbereich = Sheets("Tabelle1").Range("D1:D2") 'Kriterienbereich 
Set Ziel = Sheets("Tabelle2").Range("A1") 'erste Zelle im Ziel 

Kriterienbereich(2, 1).FormulaLocal = "=ISTZAHL(FINDEN(""1"";A2&B2&C2))"

FilterBereich.AdvancedFilter xlFilterCopy, Kriterienbereich, Ziel

Kriterienbereich.Clear 'Hilfzelle löschen 
Application.Goto Ziel
End Sub
Gruß Tino
Anzeige
AW: Korrektur
17.10.2011 16:39:39
berny
Hallo Tino,
danke für deine VBA- Lösung!
die kann ich bestimmt (auch noch) gebrauchen.
Mit der Zeile » Kriterienbereich(1, 2).FormulaLocal = "=ISTZAHL(FINDEN(""1"";A2&B2&C2))" «
hast du mich allerdings ganz schön verwirrt. Wenn ich im Kriterienbereich ("D1:D2") mein Suchkriterium eingebe, dann kann ich diese Zeile weglassen.
M.f.G.
Berny
Anzeige
AW: Korrektur
17.10.2011 17:23:00
Tino
Hallo,
wenn Du nur einen Wert eingibst,
weiß der Filter aber nicht auf welche Spalte dieser sich bezieht,
es sei denn Du schreibst die Überschrift der entsprechenden Spalte dazu.
 ABCD
1Überschrift 1Überschrift 2Überschrift 3 
2Hallo2Hallo4Hallo6 
3Hallo3Hallo6Hallo9 
4Hallo4Hallo8Hallo12 
5Hallo5Hallo10Hallo15 
6Hallo6Hallo12Hallo18 
7Hallo7Hallo14Hallo21 
8Hallo8Hallo16Hallo24 
9Hallo9Hallo18Hallo27 
10Hallo10Hallo20Hallo30 
11Hallo11Hallo22Hallo33 
12Hallo12Hallo24Hallo36 
13Hallo13Hallo26Hallo39 
14Hallo14Hallo28Hallo42 
15Hallo15Hallo30Hallo45 


Sub Spezial_Filter()
Dim FilterBereich As Range
Dim Kriterienbereich As Range
Dim Ziel As Range

Set FilterBereich = Sheets("Tabelle1").Columns("A:C") 'Filterbereich 
Set Kriterienbereich = Sheets("Tabelle1").Range("D1:D2") 'Kriterienbereich 
Set Ziel = Sheets("Tabelle2").Range("A1").Resize(, FilterBereich.Columns.Count) 'Ziel Überschrift 

Kriterienbereich(1, 1) = FilterBereich.Cells(1, 2).Value 'nach Spalte 2 Filtern 
Kriterienbereich(2, 1) = "'=Hallo2*"

FilterBereich.AdvancedFilter xlFilterCopy, Kriterienbereich, Ziel

Kriterienbereich.Clear 'Hilfzelle löschen 
Application.Goto Ziel
End Sub
Gruß Tino
Anzeige
AW: Korrektur
17.10.2011 17:36:59
berny
Hallo,
ja das ist schon klar.
Das gibst du doch schon mit der Zeile » Set Kriterienbereich = Sheets("Tabelle1").Range("D1:D2") « an.
D1 muss gleich der Spaltenüberschrift sein in der du filtern willst.
D2 , D3 ... ist (sind) deine Filterkriterien.
AW: Korrektur
17.10.2011 17:50:00
Tino
Hallo,
oder wie im ersten Beispiel mit einer Formel die Wahr oder Falsch ausgibt.
Dann ist die Überschrift egal und Du kannst mit einer Formel über beliebig viele Spalten gehen
und auch die Bedingung UND/ODER leicht einbauen.
Gruß Tino
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Spezialfilter in Excel: Daten auf ein anderes Tabellenblatt kopieren


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass Deine Ausgangstabelle die Daten enthält, die Du filtern möchtest. Dein Datenbereich sollte eine klare Überschrift in der ersten Zeile haben.

  2. Zielblatt auswählen: Gehe zu dem Tabellenblatt, auf das Du die gefilterten Daten kopieren möchtest.

  3. Spezialfilter aktivieren: Wähle im Menü "Daten" die Option "Spezialfilter".

  4. Listenbereich angeben: Im Dialogfeld "Spezialfilter" gibst Du den Listenbereich an. Dies kann z.B. Tabelle1!A1:D50 sein, wenn Deine Daten in Tabelle1 stehen.

  5. Kriterienbereich festlegen: Du kannst den Kriterienbereich in derselben Tabelle oder einer anderen Tabelle angeben. Er sollte die Überschrift und die Bedingung beinhalten.

  6. Kopieren nach festlegen: Wähle eine Zelle im Zielblatt, wo die gefilterten Daten eingefügt werden sollen.

  7. Filter durchführen: Klicke auf "OK", um die gefilterten Daten in das Zielblatt zu kopieren.

Wichtig!

Wenn Du versuchst, die gefilterten Daten in eine andere Mappe zu kopieren, wirst Du die Fehlermeldung "Nur gefilterte Daten können in das aktive Blatt kopiert werden" erhalten. Stelle sicher, dass Du die Filterung in dem Blatt durchführst, in dem die Daten gespeichert sind.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Bereich nicht gültig": Überprüfe, ob Du den richtigen Bereich für den Listenbereich angegeben hast. Achte darauf, dass die Überschrift korrekt geschrieben ist.

  • Daten werden nicht gefiltert: Stelle sicher, dass die Kriterien im Kriterienbereich korrekt festgelegt sind. Überprüfe auch, ob die Überschrift im Kriterienbereich mit der des Listenbereichs übereinstimmt.

  • Kopieren funktioniert nicht: Wenn Du versuchst, die gefilterten Daten auf eine andere Mappe zu übertragen, kann dies nicht direkt erfolgen. Du musst zuerst die Daten in das aktive Blatt kopieren und dann manuell in die andere Mappe übertragen.


Alternative Methoden

Eine VBA-Lösung kann eine effektive Alternative sein, um gefilterte Daten auf ein anderes Tabellenblatt zu kopieren. Hier ist ein einfaches Beispiel:

Sub Spezial_Filter()
    Dim FilterBereich As Range
    Dim Kriterienbereich As Range
    Dim Ziel As Range

    Set FilterBereich = Sheets("Tabelle1").Columns("A:C") ' Filterbereich
    Set Kriterienbereich = Sheets("Tabelle1").Range("D1:D2") ' Kriterienbereich
    Set Ziel = Sheets("Tabelle2").Range("A1") ' Erste Zelle im Ziel

    FilterBereich.AdvancedFilter xlFilterCopy, Kriterienbereich, Ziel
End Sub

Mit dieser Methode kannst Du auch komplexere Filterkriterien anwenden und die gefilterten Daten an einem beliebigen Ort speichern.


Praktische Beispiele

Beispiel 1: Daten filtern nach einer Bedingung Wenn Du nur die Zeilen kopieren möchtest, in denen der Wert in Spalte B größer als 50 ist, gehe wie folgt vor:

  1. Setze im Kriterienbereich die Überschrift von Spalte B und darunter die Bedingung >50.
  2. Führe den Spezialfilter aus.

Beispiel 2: Mehrere Kriterien Du kannst auch mehrere Kriterien in verschiedenen Zellen im Kriterienbereich angeben. Wenn Du z.B. nur die Zeilen kopieren möchtest, wo Spalte A "Ja" und Spalte B größer als 50 ist, gibst Du diese Bedingungen in die entsprechenden Zellen ein.


Tipps für Profis

  • Filterbereich erweitern: Wenn Du den Filterbereich erweitern möchtest, um mehr Daten einzuschließen, achte darauf, dass alle Daten die gleiche Struktur haben. Das erleichtert die Filterung.

  • VBA für erweiterte Filter: Nutze VBA, um wiederkehrende Filterprozesse zu automatisieren. Mit einer einfachen Schleife kannst Du alle möglichen Filterkriterien testen und die Ergebnisse automatisch speichern.

  • Kriterien flexibel anpassen: Du kannst die Kriterien in verschiedenen Tabellenblättern anlegen und diese dann im Spezialfilter verwenden, um die Flexibilität zu erhöhen.


FAQ: Häufige Fragen

1. Kann ich gefilterte Daten in eine andere Arbeitsmappe kopieren? Nein, Du kannst die gefilterten Daten nur in das aktive Blatt kopieren. Übertrage sie manuell in die andere Arbeitsmappe.

2. Was bedeutet "nur gefilterte Daten können in das aktive Blatt kopiert werden"? Diese Fehlermeldung tritt auf, wenn Du versuchst, gefilterte Daten in eine andere Tabelle oder Mappe zu kopieren. Filtere die Daten zuerst in dem Blatt, in dem die Originaldaten sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige