Microsoft Excel

Herbers Excel/VBA-Archiv

Mit VBA Autofilter steuern

Betrifft: Mit VBA Autofilter steuern von: Schmitty
Geschrieben am: 07.08.2014 11:47:05

Hallo zusammen,

habe gerade irgendwie ein Brett vorm Kopf, bzw. ich denke wohl zu kompliziert.

Ich steuere meinen Autofilter mit folgendem Code im VBA:

If Target.Address = "$C$8" Then
Selection.AutoFilter Field:=1, Criteria1:=Range("C8").Value
End If


Das hat den Vorteil, dass ich nur noch in der Zelle "C8" einen Wert eintrage und der Autofilter sofort anfängt zu arbeiten.

Nun zu meinem Problem:

Ich möchte, dass wenn die Zelle "C8" leer ist, der Autofilter ausgeschaltet ist und alle Ergebnisse angezeigt werden.

Normalerweise funktioniert es, wenn ich in der Zelle "C8" ein "*" eingebe. Aber genau das möchte ich nicht. Wenn die Zelle "C8" leer ist soll nichts gefiltert werden und alles angezeigt werden!

Hat jemand eine Idee?

Gruß
Christian

  

Betrifft: AW: Mit VBA Autofilter steuern von: Hajo_Zi
Geschrieben am: 07.08.2014 11:50:11

If Target="" then
If .Parent.AutoFilterMode Then .Parent.ShowAllData
Else
Selection.AutoFilter Field:=1, Criteria1:=Range("C8").Value
End If

GrußformelHomepage


  

Betrifft: AW: Mit VBA Autofilter steuern von: Dieter Klemke
Geschrieben am: 07.08.2014 12:01:58

Hallo Christian,

das müsste folgendermaßen gehen:

  If Target.Address = "$C$8" Then
    If Not IsEmpty(Target) Then
      Selection.AutoFilter Field:=1, Criteria1:=Range("C8").Value
    Else
      Selection.AutoFilter Field:=1
    End If
  End If
Viele Grüße
Dieter


  

Betrifft: AW: Mit VBA Autofilter steuern von: Schmitty
Geschrieben am: 07.08.2014 14:01:31

Hallo Hajo_Zi & Dieter Klemke:

Danke es funktioniert!

Ich habe aber noch eine kleine Frage:

Wenn ich im Feld C8 einen Wert ein trage, möchte ich, dass der Autofilter nach "*[WERT]*" sucht. Also "*" vor und nach dem Suchbegriff.

WIe erledige ich das?

Gruß
Christian


  

Betrifft: AW: Mit VBA Autofilter steuern von: Hajo_Zi
Geschrieben am: 07.08.2014 14:04:17

Hallo Christian,

Criteria1:="*" & Range("C8") & "*"

Gruß Hajo


 

Beiträge aus den Excel-Beispielen zum Thema "Mit VBA Autofilter steuern"