Microsoft Excel

Herbers Excel/VBA-Archiv

Filtern per Makro

Betrifft: Filtern per Makro von: Claus
Geschrieben am: 01.07.2008 15:37:53

Hallo, ich habe 2 Tabellenblätter. Ich möchte gerne per Makro das Tabellenblatt 1 mit Daten eines Feldes in Tabellenblatt 2 filtern. Ich habe per Aufzeichnung den Makro erstellt. Im Makro wird aber der Wert des Feldes im Filter eingetragen anstatt den Wert des Feldes (dieser ist nämlich variabel).

Im Besipiel müsste
- anstatt Field 1 der Wert von F21 vom Sheet "Teil 1 bis 5"
- anstatt Field 2 der Wert von F22 vom Sheet "Teil 1 bis 5"

Vielen Dank!

Beispiel:
Range("F21").Select
Selection.Copy
Sheets("Geantwortet").Select
Selection.AutoFilter Field:=4, Criteria1:="=a) Field 1", _
Operator:=xlAnd
Sheets("Teil 1 bis 5").Select
Range("F22").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Geantwortet").Select
Selection.AutoFilter Field:=4, Criteria1:="=a) Field 1", _
Operator:=xlOr, Criteria2:="=b) Field 2"
Sheets("Teil 1 bis 5").Select
Range("A1").Select
Application.CutCopyMode = False
Sheets("Geantwortet").Select
Range("A3:a1500").Select
Selection.Copy
Sheets("Teil 1 bis 5").Select
Range("B39").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Sheets("Geantwortet").Select
Range("b3:b1500").Select
Selection.Copy
Sheets("Teil 1 bis 5").Select
Range("e39").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select

  

Betrifft: AW: Filtern per Makro von: Yusuf
Geschrieben am: 02.07.2008 09:29:57

Hi,

hab deinen Code ein wenig angepasst, zumindest die Stellen, die ich mir erklaeren konnte.

Option Explicit

Sub Filtern()
    
    
    'variablen muessen noch deklariert werden, da ich nicht weiss,
    'was in den Feldern F21 und F22 steht
    
    Sheets("Geantwortet").Select
    inhalt_von_F21 = Sheets("Teil 1 bis 5").Cells(21, 6)
    inhalt_von_F22 = Sheets("Teil 1 bis 5").Cells(22, 6)
    
    'hier wird gefiltert.
    Sheets("Geantwortet").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=4, Criteria1:="=" & a, Operator:=xlAnd, _
        Criteria2:="=" & b
    
    'konnte mir den Code ab hier nicht mehr erklaeren, deshalb nichts veraendert
    Application.CutCopyMode = False
    Sheets("Geantwortet").Select
    Range("A3:a1500").Select
    Selection.Copy
    Sheets("Teil 1 bis 5").Select
    Range("B39").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Sheets("Geantwortet").Select
    Range("b3:b1500").Select
    Selection.Copy
    Sheets("Teil 1 bis 5").Select
    Range("e39").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A1").Select

End Sub




Es wird nun gefiltert nach, wenn F21 UND F22 auftreten.
Da du nacheinander ohne etwas dazwischen zu machen gefiltert hast nach F21 und F22 habe ich dieses mal so interpretiert.

Falls es ein oder sein sollte einfach das Operator:=xlAnd durch Operator:=xlOr ersetzen.

Gruß
Yusuf


 

Beiträge aus den Excel-Beispielen zum Thema "Filtern per Makro"