Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Autofilter dynamisieren (so gehts...) | Herbers Excel-Forum


Betrifft: Autofilter dynamisieren (so gehts...) von: Stefan K.
Geschrieben am: 06.01.2012 11:53:10

Hallo zusammen,

nach dem ich hier schon so viel von den Excel-Helfern profitiert habe, möchte ich Euch gern einen kleinen Code-Schnipsel vorstellen (ist für die Profis sicher nichts neues). Ich persönlich find es total genial.

Voraussetzung: ein großer Datenbestand, in dem man per per Autofilter einen oder mehrere Einträge suchen möchte, 1 Textfeld (Textbox1).

Mit dem Code wird der Autofilter ab dem 4. (in dem Textfeld) eingegebenen Buchstaben gesetzt. Mit jedem weiteren eingegebenen Buchstaben wird der Autofilter aktualisiert und das Ergebnis immer weiter eingegrenzt. Man kann also einfach drauf los schreiben, so lange, bis man das gewünschte Ergebnis sieht.

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim Eingabe As String
Eingabe = TextBox1.Text
If Len(TextBox1.Text) > 3 Then
Cancel = True
Selection.Autofilter Field:=27, Criteria1:="*" & Eingabe & "*", Operator:=xlOr, VisibleDropDown:=False
With ActiveWindow
.ScrollRow = 1
.ScrollColumn = 1
End With
TextBox1.Activate
End If
If KeyCode = 13 Then 'Wenn Return gedrückt wird ...
Ab hier wird der Autofilter gesetzt, wenn man die Return-Taste gedrückt hat. Der Code muss natürlich noch nach belieben angepasst werden.

Es ist schon wirklich genial, welche Funktionen Excel zu bieten hat. Leider ist es für den Laien (wie mich) doch recht schwierig.

Also, viel Spaß und vor allem vielen Dank an meine Helfer.
Gruß und ein schönes Wochenende
Stefan

  

Betrifft: Spezialfilter von: Rudi Maintaire
Geschrieben am: 06.01.2012 12:07:55

Hallo,
ich mach das so:
Tabellenaufbau:

 ABC
1Feld01Feld02Feld03
2   
3   
4Feld01Feld02Feld03
5axr
6bxt
7cxs
8dxe
9exr
10ays
11bye
12cyr

ZelleFormel
A1=A4
B1=B4
C1=C4


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error GoTo Err_Exit
  If Target.Row = 2 Then
    Cells(4, 1).CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, _
      CriteriaRange:=Range(Cells(1, 1), Cells(2, Columns.Count).End(xlToLeft)), Unique:=False
  End If
Err_Exit:
  Application.EnableEvents = True
End Sub

Kriterium (mit Jokern *, ?) in Zeile 2 eintragen.

Gruß
Rudi


  

Betrifft: AW: Spezialfilter von: Stefan K.
Geschrieben am: 06.01.2012 12:19:05

Hallo Rudi,

klar, viele Wege führen nach Rom. Aber ich fand das so faszinierend, dass der Autofilter bereits arbeitet, währden man noch am schreiben ist und sich Buchstabe für Buchstabe konkretisiert. Ich habe zusätzlich 6 Spalten in einer separaten Spalte verkettet und kann so quasi in den Inhalten von 6 Spalten suchen.

Gruß
Stefan


Beiträge aus den Excel-Beispielen zum Thema "Autofilter dynamisieren (so gehts...)"