Clever-Excel-Forum

Normale Version: Makro AutoFilter mit copy/paste
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Excel Profis,

Habe ein kleines Problem in einem Makro, aber ev. funktioniert dies ja auch gar nicht.
Möchte in einem Makro den AutoFilter aus einer kopierten Zelle mitgeben. Wenn ich das Makro aufzeichne, wird aber logischerweise der aktuelle Inhalt hinzugefügt.
Wie muss das Critera1 angeben werden, damit ich "paste" von G2 verwenden kann und nicht der aktuelle Wert "PR-123" drin steht?


 Range("G2").Select
    Selection.Copy
    Sheets("Tab1").Select
    ActiveSheet.ListObjects("Projektliste").Range.AutoFilter Field:=1, Criteria1:= _
        "PR-123"

Besten Dank für jeden Hinweis
Grüsse
Pean
Hi Pean,


ActiveSheet.ListObjects("Projektliste").Range.AutoFilter Field:=1, Criteria1:=ActiveSheet.Cells(5, 7)

LG
Alexandra
Hallo Alexandra,

Besten Dank, aber das hat irgendwie nicht funktioniert.
Habe jetzt eine Lösung gefunden, vermutlich nicht sonderlich elegant, aber es funktioniert.

 Range("G2").Select
    Selection.Copy
    Sheets("ORA").Select
    Range("B1").Select
    ActiveSheet.Paste
    ActiveSheet.ListObjects("ORA").Range.AutoFilter Field:=1, Criteria1:=Range("B1")

Wenn du noch eine Idee hast wie ich den Wert direkt übergeben kann, gerne.

Grüsse
Pean
Code:
ActiveSheet.ListObjects("ORA").Range.AutoFilter Field:=1, Criteria1:=Sheets("Projektliste").Range("G2")
Allerdings sagt dein zweiter Code etwas anderes als dein erster. Zuerst heißt das Tabellenblatt "Tab1" und das Listobjekt "Projektliste"
Dann auf einmal Tabellenblatt "ORA" und das Listobjekt heißt auch so. Was stimmt denn nun?
Hallo MistrerBurns,

Beide Angaben stimmen, ich habe nur die Namen geändert.
Ich habe diverse Arbeitsblätter, Tab1, Tab2, Tab3, etc mit einem Button für das Makro und möchte  jewweils den Wert von G2 in den Autofilter von Arbeitsblatt "ORA" kopieren.
Daher muss ich irgendwie mit cppy /paste verwenden können.

Ich kann daher nicht "Tab1" aks Wert mitgeben

ActiveSheet.ListObjects("ORA").Range.AutoFilter Field:=1, Criteria1:=Sheets("Tab1").Range("G2")

Grüsse
Pean
Hallöchen,

warum nicht?

MeinBlatt="Tab1"
ActiveSheet.ListObjects("ORA").Range.AutoFilter Field:=1, Criteria1:=Sheets(MeinBlatt).Range("G2")

Außerdem ist es zuweilen vorteilhaft, den Inhalt eines Range z.B. mit .Value abzufassen

MeinBlatt="Tab1"
ActiveSheet.ListObjects("ORA").Range.AutoFilter Field:=1, Criteria1:=Sheets(MeinBlatt).Range("G2").Value
Hallo schauan,

Danke für deinen Input.

Ich habe aber 100 Arbeitsblätter und möchte mit jedem das gleiche Makro via Button anwählen können.
Wenn ich dich aber richtig verstehe, funktioniert dein Tipp nur mit dem ersten Arbeitsblatt "Tab1". Oder sehe ich das falsch.

Grüsse
Pean
Also ich verstehe nicht ganz was du willst!

Lade doch einfach deine/eine Beispielmappe hoch, damit wir das besser verstehen können!

LG
Alexandra
Hallöchen,

wenn Du auf 100 Blättern 100 Buttons haben willst, die jeweils nur das Blatt beackern, wo der Button drauf ist, dann nimm nicht Sheets(MeinBlatt) sondern ActiveSheet. Smile Ich glaube, eine Datei mit 100 oder auch nur 10 Blättern bringt uns da nicht weiter. Eine bessere Beschreibung wäre nicht verkehrt.
Mit einem Button wählt man übrigens kein Makro sondern startet eins. Wenn Du eine Auswahl haben willst, würde sich z.B. ein Userform anbieten, welches durch den Button gestartet wird und wo Du z.B. eine Listbox oder eine Combobox drauf hast, wo Du was auswählen kannst
Hallo Zusammen,

Kann die Datei leider nicht hochladen. Ist zu gross und hat zu viele kritische Daten drin.

Habe es jetzt so gelöst, nicht besonders elegant, aber besser kriege ich es nicht hin.
Ich speichere den kopierten Wert temporär in B1 auf dem Arbeitsblatt ORA bevor ich ihn im Autofilter der Tabelle ORA benutze.

  Range("G2").Select
  Selection.Copy
  Sheets("ORA").Select
  Range("B1").Select
  ActiveSheet.Paste
  ActiveSheet.ListObjects("ORA").Range.AutoFilter Field:=1, Criteria1:=Range("B1")

Grüsse
Pean