Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1604to1608
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA Autofilter
24.01.2018 16:34:54
Georg
Liebe Excellenzen,
ich habe eine Liste mit Autofilter.
Ich habe eine Prozedur geschrieben wo immer nach dem Begriff gefiltert wird auf den ich gerade Doppelclicke.
Meine Tabelle enthält ganz unterschiedliche Daten. Datumswerte, Texte, und Zahlen.
Das Filtern klappt wunderbar bis auf die Spalten in denen Zahlen stehen. Mir ist bekannt, dass es bei Datumswerten und Zahlen zu Problemen mit dem Filtern via VBA kommt.
Mein Problem ist, dass ich nicht für jede Spalte einen gesonderten Code haben möchte, sondern dass einer reicht.
If Spalte = 2 Then
[a1].AutoFilter Field:=2, Criteria1:=">=" & Month(Datum) & "/" & Day(Datum) & "/" & Year(Datum), Operator:=xlAnd _
, Criteria2:=" Else
With Range("a1")
If Filterkriterium "" Then
.AutoFilter Field:=Spalte, Criteria1:=Filterkriterium
Else
FilterkriteriumZahl = Application.Substitute(FilterkriteriumZahl, ",", ".")
End If
End With
End If
Bei Texten und Datumswerten klappt es immer. Mit Substitue klappt es nur dann, wenn am Ende des Zahlenwertes keine "0" steht. Also nach 5,37 kann ich filtern, nach 5,30 nicht und nach 5,00 auch nicht.
Die Spalten haben das Zahlenformat 0,00 und Filterkriterium UND FilterkriteriumZahl sind als String defniert. Als Double geht es bei der Zahl leider auch nicht.
Wie macht man es richtig?
Liebe Grüße Georg

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Format Standard
24.01.2018 16:52:54
KlausF
Hallo Georg,
probier mal für die Zahlen das Format "Standard".
Damit könnte es funktionieren.
Gruß
Klaus
AW: Format Standard
24.01.2018 18:20:35
Georg
Hallo Klaus,
vielen Dank für Deinen Beitrag.
Ja, das funktioniert - ist aber eigentlich nicht der Sinn der Sache denn ich möchte ja bewusst dieses Zahlenformat haben. Aber es ist auf jeden Fall besser als Nichts!!!
Ich hab es jetzt provisorisch so gelöst dass ich erst den Wert auslese, dann das Zahlenformat auf Standard stezte, dann filtere und dann in der gefilterten Liste wieder das Format setze. Leider werden in der gefilterten Liste nur die sichtbaren Zellen formatiert :-(:

Sub DurchDieBrustInsAuge()
x = ActiveCell.Value
y = ActiveCell.NumberFormat
Columns("N:N").NumberFormat = "General"
[a1].AutoFilter Field:=14, Criteria1:=x
Columns("N:N").NumberFormat = y
End Sub
@ Gemeide
Hat vielleicht noch jemand eine andere Lösung?
Liebe Grüße Georg
Anzeige
Autofilter per Doppelklick in Zelle setzen
25.01.2018 07:31:39
fcs
Hallo Georg,
wenn das Zellformat nicht Standard bzw. General ist, dann kann man die Text-Eigenschaft der Zelle als Filterkriterium verwenden.
Kann als Ereignismakro in einem Tabellenblatt ungefähr wie folgt aussehen.
Gruß
Franz
'Erstellt 2018-01-25 unter WindowsVista/Office Professional 2010
'Makros unter dem Code-Modul des Tbellenblatts mit einem Austofilter
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Filterkriterium, Spalte As Long
'Prüfen, ob Autofilter aktiv
If Me.AutoFilterMode Then
With Target
Spalte = .Column - Me.AutoFilter.Range.Column + 1
If .Text = "" Then
Filterkriterium = ""
ElseIf .NumberFormat = "General" Then
Filterkriterium = .Value
Else
Filterkriterium = .Text
End If
End With
With Me.AutoFilter.Range
'Prüfen,ob Doppelklick auf Spaltentitel des Autofilters
If Target.Row = .Row Then 'Doppelklick auf Spaltentitel
.AutoFilter Field:=Spalte 'Filter in Spalte löschen
Else
.AutoFilter Field:=Spalte, Criteria1:="=" & Filterkriterium
End If
End With
Cancel = True
End If
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'Prüfen, ob Autofilter aktiv
If Me.AutoFilterMode Then
'Prüfen, ob Rechte-Maus-Klick auf Spaltentitel des Autofilters
If Target.Row = Me.AutoFilter.Range.Row Then
Me.ShowAllData
Cancel = True
End If
End If
End Sub

Anzeige
AW: Autofilter per Doppelklick in Zelle setzen
25.01.2018 13:07:40
Georg
Hallo Franz,
sehr schlau! Über die Lösung hinaus hab ich gleich noch ein paar Dinge gelernt die ich noch nie eingesetzt habe.
- variable Angaben des Zellinhaltes (.Text bzw. .value)
- Elseif (keine Ahnung warum ich das noch nie gesehen habe.
Lieben DAnk!
Georg

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige