Microsoft Excel

Herbers Excel/VBA-Archiv

Daten filtern

Betrifft: Daten filtern von: Andreas
Geschrieben am: 18.05.2008 19:11:56

Hallo Forum,

ich habe folgenden Code im Forum gefunden:


Sub Makro2()
'
' Makro2 Makro
' Makro am 15.10.2005 von Jochen02 aufgezeichnet
'

'
    Application.CutCopyMode = False
    Range("Tabelle2!A1:B11").AdvancedFilter Action:=xlFilterCopy, _
                    CriteriaRange:=Range("Tabelle1!A1:A2"), _
                    CopyToRange:=Range("Tabelle1!A10:B10"), Unique:=False
End Sub



Ich möchte nun aber Daten aus Drei verschiedenen Tabellen fildern (nach dem Kriterium ("Tabelle1!A1:A2")).

Wie muss der Code verändert werden?
Die Werte aus den anderen Tab-Blättern sollen dann in ("Tabelle1!A16:B16") und ("Tabelle1!A30:B30") stehen.

vielen Dank Andreas

  

Betrifft: Spezialfilter aus verschiedenen Blättern von: Beate Schmitz
Geschrieben am: 18.05.2008 19:21:54

Hallo Andreas,

die Blattnamen und Bereiche musst du anpassen:

Sub Makro2()
    Application.ScreenUpdating = False
    Sheets("Tabelle2").Select
    Range("Tabelle2!A1:B11").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Tabelle1!A1:A2"), _
        CopyToRange:=Range("Tabelle1!A10:B10"), Unique:=False
    Sheets("Tabelle3").Select
    Range("Tabelle3!A1:B11").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Tabelle1!A1:A2"), _
        CopyToRange:=Range("Tabelle1!A16:B16"), Unique:=False
    Sheets("Tabelle4").Select
    Range("Tabelle4!A1:B11").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Tabelle1!A1:A2"), _
        CopyToRange:=Range("Tabelle1!A30:B30"), Unique:=False
    Application.ScreenUpdating = True
    Sheets("Tabelle1").Select
End Sub



Da man immer im Blatt mit der zu filternden Liste sein muss, kommt man hier nicht ums selektieren drumrum.

Guckst Du: Spezialfilter (4) - Filterergebnis in ein anderes Tabellenblatt

Gruß,
Beate


  

Betrifft: AW: Spezialfilter aus verschiedenen Blättern von: Andreas
Geschrieben am: 18.05.2008 19:58:39

Hallo Beate,

das klappt soweit ganz gut.
Was noch gut wäre, wenn man die Reihenfolgen der Überschriften selbst bestimmen könnte.
Das klappt nur mit Tabelle 2, bei den anderen wird die Reihenfolge der Org.Tabelle genommen.
Noch eine Frage habe ich. Kann man den Code so beeinflussen das die Werte aus der zweiten und der dritten tabelle gleich in die nächsten freien zeilen geschrieben werden. Also nicht unbedingt in Range("Tabelle1!A16:B16") und Range("Tabelle1!A30:B30").

gruß Andreas


  

Betrifft: AW: Spezialfilter aus verschiedenen Blättern von: Beate Schmitz
Geschrieben am: 18.05.2008 20:07:15

Hallo Andreas,

1.) den Teil deiner Antwort verstehe ich nicht richtig:
"Was noch gut wäre, wenn man die Reihenfolgen der Überschriften selbst bestimmen könnte.
Das klappt nur mit Tabelle 2, bei den anderen wird die Reihenfolge der Org.Tabelle genommen."
Kannst du eine Beispieldatei hochladen?

2.) "Noch eine Frage habe ich. Kann man den Code so beeinflussen das die Werte aus der zweiten und der dritten tabelle gleich in die nächsten freien zeilen geschrieben werden?"

Ja, so:

Sub Makro2()
    Application.ScreenUpdating = False
    Sheets("Tabelle2").Select
    Range("Tabelle2!A1:B11").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Tabelle1!A1:A2"), _
        CopyToRange:=Range("Tabelle1!A10:B10"), Unique:=False
    Sheets("Tabelle3").Select
    Range("Tabelle3!A1:B11").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Tabelle1!A1:A2"), _
        CopyToRange:=Range("Tabelle1!A65536").End(xlUp).Offset(1, 0), Unique:=False
    Sheets("Tabelle4").Select
    Range("Tabelle4!A1:B11").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Tabelle1!A1:A2"), _
        CopyToRange:=Range("Tabelle1!A65536").End(xlUp).Offset(1, 0), Unique:=False
    Application.ScreenUpdating = True
    Sheets("Tabelle1").Select
End Sub



Gruß,
Beate


  

Betrifft: AW: Spezialfilter aus verschiedenen Blättern von: Andreas
Geschrieben am: 18.05.2008 20:34:04

Hallo beate,

zum ersten Teil meiner Frage.
Wenn ich die Reihenfolge der Tabellenüberschrift verändere (in Tab1), klappt das nur im Tab2, die Reihenfolge der Werte aus Tab3 und Tab4 wird wieder in der Reihenfolge dargstellt wie die Org.Tabellen sind.

Der zweite Teil hat funktioniert.

Gruß Andreas


  

Betrifft: AW: Spezialfilter aus verschiedenen Blättern von: Beate Schmitz
Geschrieben am: 18.05.2008 22:17:06

Bitte Beispieldatei posten - ich kann das immer noch nicht nachvollziehen. Bei mir ist die Spaltenreiheifolge immer gemäß der, die in den gefilterten Blättern ist.

Gruß,
Beate


  

Betrifft: AW: Spezialfilter aus verschiedenen Blättern von: Andreas
Geschrieben am: 19.05.2008 11:48:22

Hallo Beate,

wie postet man eine Datei? Das habe ich noch nie gemacht.

Gruß Andreas


  

Betrifft: AW: Spezialfilter aus verschiedenen Blättern von: Andreas
Geschrieben am: 19.05.2008 14:13:33

HAllo Beate,

hier nun die Datei.
https://www.herber.de/bbs/user/52462.xls

Ich habe sie soweit abgespeckt, dass ich sie laden konnte.
Auf der Seite "Kostenanteil soll die Auflistung geschehen( wie die Überschriften es anzeigen)
Es gibt drei seiten die gefiltert werden sollen, Büro1, Büro2 und Prod.. Ich hatte es erst über eine Pivottabelle versucht. Nur da habe ich Probleme mit der Formatierung gehabt. Jetzt habe ich es über VBA versucht(Dank deiner Hilfe).

gruß Andreas


  

Betrifft: AW: Spezialfilter aus verschiedenen Blättern von: Beate Schmitz
Geschrieben am: 19.05.2008 20:27:15

Hallo Andreas,

das Ausmaß deiner Anfrage überschreitet Forenhilfe. Es ist machbar. Aber es würde per Code noch x-Zwischenschritte mit Umsortierungen erfordern.

Strukturiere doch die Spaltenüberschriften in Büro1, Büro2 und Prod. in der Reihenfolge, wie du sie im Auswertungsblatt möchtest. Und die anderen Spalten dahinter in diesen Blättern.

Du musst übrigens Zelle A2 im Blatt Kostenanteil als Text formatieren und dann eingeben =Mieter 1. Also wichtig ist das Gleichheitszeichen vorab. Sonst kriegst du auch z.B. Mieter 11 ausgefiltert. Guckst Du: Spezialfilter (2) - Filtern nach Kriterien (ziemlich unten).

Das Blatt "Kostenanteil" hat übrigens eine Leerstelle am Ende. Die würde ich bevorzugt weglöschen - sonst auch im Code berücksichtigen.



Gruß,
Beate


  

Betrifft: AW: Spezialfilter aus verschiedenen Blättern von: Andreas
Geschrieben am: 19.05.2008 21:01:36


Hallo Beate,

Danke für deine Hinweise.
Ich hatte auch schon denganzenTag mein Glück prbiert, ohne Erfolg.
Ich wollte nun nur die Spalte Mieter (B3) und Raumnummer(A3) Filter.
Aber auch das bekomme ich nicht mehr hin. Diese Spalten habe ich neu geordnet( Mieter in B3; Raumnummer in A3) und auch in Kostenanteile sin die Spalten in A und B.
Leider bekomme ich immer den Laufzeitfehler 1004, mit der Meldung: Die Methode "Range" ist für das Objekt_Global fehlgeschlage.
Hast du eine Idee was ich falsch mache?



Sub Makro2()
    Application.ScreenUpdating = False
    Sheets("Büro1").Select
    Range("Büro1!A3:B26").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Kostenanteil!A1:A2"), _
        CopyToRange:=Range("Kostenanteil!A10:B10"), Unique:=False
    Sheets("Büro2").Select
    Range("Büro2!A3:B26").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Kostenanteil!A1:A2"), _
        CopyToRange:=Range("Kostenanteil!A65536").End(xlUp).Offset(1, 0), Unique:=False
    Sheets("Prod.").Select
    Range("Prod.!A3:B26").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("Kostenanteil!A1:A2"), _
        CopyToRange:=Range("Kostenanteil!A65536").End(xlUp).Offset(1, 0), Unique:=False
    Application.ScreenUpdating = True
    Sheets("Tabelle1").Select
End Sub



gruß Andreas


  

Betrifft: AW: Spezialfilter aus verschiedenen Blättern von: Beate Schmitz
Geschrieben am: 19.05.2008 23:20:03

Hallo Andreas,

guck dir das Registerblatt "Kostenanteil" nochmal an. Da steht ein Leerzeichen am Ende des Blattnamens. Deshalt entspricht der Registerblattname nicht dem Code. Lösche dieses Leerzeichen! Excel kann das mit dem Code sonst nicht finden, weil der Blattname durch das Leerzeichen vom Code abweicht.

Das habe ich dir auch schon geschrieben. S.o.

Gruß,
Beate


 

Beiträge aus den Excel-Beispielen zum Thema "Daten filtern"