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

Forumthread: Autofilter mit Platzhaltern im Kriterium möglich?

Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 09:39:06
Hilde
Schönen guten Morgen allerseits.
Hier eine Frage, die ich nicht mit dem Makrorecorder lösen kann!!
ich habe eine Spalte mit Artikelnummern, die aus einer Buchstaben- und Zahlenkombination bestehen; also z.B L12234 oder L26378 oder K29423 oder etc.; nun möchte ich gerne den Autofilter nur auf den ersten Buchstaben setzen und den Rest durch einen Platzhalter wie z.B. * oder ? ersetzen (siehe Criteria1); also z.B.
With WS.Range("A7")
.AutoFilter field:=7, _
Criteria1:="L*"
End With
Zweite Frage:
Kann ich innerhalb dieser With-Anweisung einen zusätzlichen Filter auf eine andere Spalte setzen? Also, z.B. Erster Filetr auf Kundenname, 2. Filter auf Artikelnummer.
LG und Salut - Hilde
Anzeige
AW: Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 09:45:25
Harald
Moin Hilde,
Autofilter, benutzerdefiniert und "Beginnt mit" auswählen.
Der Rekorder zeichnet das auch auf
Gruß
Harald
AW: Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 09:48:48
Hilde
na gut, ich geb mich geschlagen! ihr seit eine dickköpfige meute, aber ich mag euch!
danke auch dir
ciao
AW: Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 10:04:18
Harald
Na Hilde ;-)))
so war's ja auch nicht gemeint.
dein Ansatz mit "L*" ist auch das, was der Rekorder auswirft
Lediglich deine With-Anweisung auf A7 kannst Du nicht auf andere Zellen aufweiten.
Das muss separat geschehen.
Besser so ? ;-)))
Gruss Harald
Anzeige
AW: Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 10:58:20
Hilde
Hallo Harald,
danke, dass du dir die Zeit nimmst. Und danke für die netten Zeilen.
Also, besser ist´s so auf jeden Fall; dennoch verstehe ich nicht, warum ich die With-Anweisung nicht auf meine Spalte "A7" ausweiten kann. Willst Du damit sagen, dass ich die With-Anweisung 2 Mal schreiben muss? Einmal mit dem Autofilter auf Kundennamen und einmal mit Autofilter auf Artikelnr?
ich bin inzwischen so ratlos, dass ich mir überlege, die betreffende Datei abgespeckt hochzuladen.....
LG
Hilde
Anzeige
AW: Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 11:26:27
Harald
Hi,
das ist ein Hierarchie-Problem.
Wenn Du was mit Range("A7") machen willst, dann heißt es auch With Range("A7").
Das bezieht sich dann aber nur auf diese eine Zelle.
Für mehrere Zellen sieht das so aus, wie in diesem Beispiel aus einer meiner Mappen. Du mußt eine Ebene nach oben und über dem Range, steht das Tabellenblatt.

Sub Makro1()
Dim wks As Worksheet
Set wks = Sheets("Erfassung")
With wks
.Range("h2").AutoFilter Field:=8, Criteria1:="=K*"
.Range("f2").AutoFilter Field:=6, Criteria1:="70"
End With
End Sub

Hoffe das hilft.
Gruss Harald
Anzeige
AW: Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 11:34:00
Hilde
Hallo Harald,
danke erst einmal. Eigentlich dachte ich, ich hätte auch dies schon ausprobiert, aber ständig nur Fehlermeldungen bekommen. Wahrscheinlich habe ich irgendwelche Syntaxfehler gemacht.... Da ich jedoch jetzt an den Herd muss und dann noch einige familiäre Verpflichtungen habe, muss ich das Ausprobieren auf später oder sogar morgen verschieben.
Kann ich Dich bei Problemen nochmals kontaktieren? z.B. per Email? Würde dann per Email anfragen, ob Du gerade Zeit hast, ins forum zu gehen und dann meine Fragen dort stellen.
Salut - Hilde
Anzeige
AW: Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 11:54:30
Harald
Wieso Küche ? Bei dem Wetter sollte Mann/Freund/wer auch immer gefälligst den Grill anwerfen ;-)))
Zum Problemchen.
Nunja....
da hab ich gleich mehrere Einwände
- meine Firmen-Mailadresse geb ich ungern raus.
- meine private Adresse nutzt auch nicht viel. Familie, Haus und Garten nehmen mich derart in die Pflicht, dass ich kaum an den PC komme
- ich bin das verlängerte Wochenende auf dem Exceltreffen und somit eh "offline"
- mein Excel-Wissen rangiert im Forumsvergleich etwa im unteren Drittel, Du findest hier eigentlich jederzeit kompetenten Rat...auch von anderer Stelle
Abgesehen davon denke ich, dass Du mit der bisherigen Hilfestellung das Problem eigentlich erschlagen kannst.
Um 14.45 hab ich Wochenende, bis dahin hab ich das Forum im Auge.
Auf alle Fälle...schönes Wochenende ;-))
Gruss Harald
Anzeige
AW: Autofilter mit Platzhaltern im Kriterium möglich?
Hilde
OK,
jetzt habe ich mir noch 5 Minuten zwischen "Mama, Mama" und sonstigem frei gemacht. doch ich habe noch immer ein problem:
nachdem ich gefiltert habe, möchte ich die gefilterten Datensätze in eine andere Datei kopieren. Als ich nur 1 Autofilter hatte und die Syntax wie vordem (With WS.Range....) konnte ich innerhalb der With-Anweisung schreiben:
.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Destination:=WZtemp.Range("A3")
Wenn ich meine With Anweisung nur auf das Worksheet beziehe, geht diese Methode nicht mehr. Wie kann ich es also anstellen, dass er mir aus den gefilterten Datensätzen nur diejenigen herauskopiert, nach dessen Kundennamen ich gesucht habe.
salut und auch Dir ein wunderschönes Wochenende frei von Excel- und sonstigen Kopfbeschäftigungen
Hilde
Anzeige
AW: Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 13:23:23
Harald
Schreibs hinter die With Anweisung(en)
Range("a7").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Destination:=WZtemp.Range("A3")
Gruss Harald
AW: Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 13:44:34
Hilde
Hallo Harald,
funktioniert leider nicht!
In diesem Fall kopiert er gar keine Datensätze mehr.
Warum hast du Range("A7") ausgewählt?
Hilde
Anzeige
AW: Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 13:51:50
Harald
Du musst natürlich den Range an deine Gegebenheiten anpassen.
Steht die Spaltenüberschirft in a1, gehört a 1 dahin, steht sie in a7, gehört a7 dahin,
steht die erste Überschirft in B80 gehört B80 dahin ....alles klar ?
schwitz... ;-)))
AW: Autofilter mit Platzhaltern im Kriterium möglich?
28.10.2005 14:14:31
Hilde
funkioniert dennoch nicht. meine Spaltenüberschrift steht in A4! habe ich auch jetzt so reingeschrieben, aber: Fehlanzeige! nicht ein einziger datensatz wird kopiert!
bin mit meinem wenigen latein komplett am ende!
lass es jetzt aber bleiben, da du eh bald weg musst und ich im moment nicht den peil habe, alles nochmals irgendjemand anderem zu erklären.
vielleicht bastel ich mir doch noch meine übungsdatei zusammen und stell sie mit der gesamten problemstellung ins forum
salut und gute erholung
hilde
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Autofilter mit Platzhaltern in Excel verwenden


Schritt-für-Schritt-Anleitung

  1. Arbeite mit dem Excel VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Rechtsklicke im Projektfenster auf "VBAProject (deine Datei)" und wähle "Einfügen" > "Modul".
  3. Schreibe den Autofilter-Code:

    • Nutze folgenden Beispiel-Code, um den Autofilter mit Platzhaltern anzuwenden:
    Sub FilterMitPlatzhaltern()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Sheets("DeinTabellenblatt")
    
       With ws
           .Range("A4").AutoFilter Field:=1, Criteria1:="L*"
           .Range("A4").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Destination:=ThisWorkbook.Sheets("Zielblatt").Range("A1")
       End With
    End Sub
  4. Führe das Makro aus:

    • Gehe zu Run > Run Sub/UserForm oder drücke F5, um das Makro auszuführen.
  5. Prüfe die Ergebnisse:

    • Überprüfe, ob die gefilterten Daten korrekt kopiert wurden.

Häufige Fehler und Lösungen

  • Fehler: „Kein sichtbares Ergebnis“:

    • Stelle sicher, dass die Filterkriterien korrekt gesetzt sind. Überprüfe auch, ob die richtige Spalte gefiltert wird.
  • Fehler: „Syntaxfehler“:

    • Achte darauf, dass alle Anführungszeichen und Klammern korrekt gesetzt sind. Ein häufiger Fehler ist das Fehlen einer Klammer.
  • Fehler: „Range nicht definiert“:

    • Stelle sicher, dass der Range korrekt auf die Daten verweist. Beispielsweise sollte die Überschrift in A4 sein, wenn du von A4 aus filterst.

Alternative Methoden

  • Autofilter über das Menü:

    • Markiere deine Datentabelle, gehe zu Daten > Filter > Autofilter. Du kannst dann manuell Filter mit Platzhaltern setzen.
  • Excel Filter Funktion mit Platzhalter:

    • Du kannst auch die FILTER Funktion in neueren Excel-Versionen verwenden, um Daten zu filtern, wobei Platzhalter genutzt werden können.

Praktische Beispiele

  • Beispiel 1: Artikelnummern filtern:

    • Angenommen, du hast in Spalte A Artikelnummern wie „L12234“, „K29423“. Du möchtest nur die Artikelnummern, die mit „L“ beginnen. Setze den Autofilter so:
    .Range("A4").AutoFilter Field:=1, Criteria1:="L*"
  • Beispiel 2: Kopieren von gefilterten Daten:

    • Um die gefilterten Daten in ein anderes Blatt zu kopieren, kannst du folgenden Code verwenden:
    .Range("A4").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy Destination:=ThisWorkbook.Sheets("Zielblatt").Range("A1")

Tipps für Profis

  • Kombination von Filtern:

    • Du kannst mehrere Filter in einer With-Anweisung setzen, indem du die AutoFilter Methode mehrmals anwendest.
  • Verwendung von Variablen:

    • Nutze Variablen, um die Flexibilität deiner Filter zu erhöhen. So kannst du die Kriterien dynamisch erstellen.
  • Dokumentation:

    • Halte deinen Code gut dokumentiert, um bei späteren Anpassungen schneller die Übersicht zu behalten.

FAQ: Häufige Fragen

1. Frage
Kann ich den Autofilter auch auf mehrere Spalten gleichzeitig anwenden?
Antwort
Ja, du kannst mehrere AutoFilter-Anweisungen in einer With-Anweisung verwenden. Beispiel:

With ws
    .Range("A4").AutoFilter Field:=1, Criteria1:="L*"
    .Range("B4").AutoFilter Field:=2, Criteria1:="Kundenname"
End With

2. Frage
Wie kann ich Platzhalter wie * oder ? in meinen Filtern nutzen?
Antwort
Setze die Platzhalter in den Criteria1 Werten. Zum Beispiel Criteria1:="L*" filtert alle Werte, die mit „L“ beginnen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige