Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Monatsfilter ändern
#1
Hallo,

ich habe einen Filter per Makro, für jeden Monat einen Button.

z.B. hier für Januar:
Code:
Option Explicit

Const Jahr = 2022
Public Monat As Integer

Sub FilterMonat()
    ActiveSheet.ListObjects("Gästeliste").Range.AutoFilter Field:=4, Operator:= _
        xlFilterValues, Criteria2:=Array(1, Monat & "/1/" & Jahr)
End Sub

Sub Abreise_Jan()
'
' Abreise_Januar Makro
'
Const Monat = 1
'
   Call FilterMonat
'    ActiveSheet.ListObjects("Gästeliste").Range.AutoFilter Field:=4, Operator:= _
        xlFilterValues, Criteria2:=Array(1, Monat & "/1/" & Jahr)
End Sub

Wie kann ich das machen, damit ich in jedem Makro nur die Sammel-Routine aufrufe, die mir dann das Filtern übernimmt. So wie oben funktioniert es nicht.
Antworten Top
#2
Es gibt im Autofilter doch einen Datumsfilter, ansonsten Beispieldatei


Angehängte Dateien Thumbnail(s)
   
[-] Folgende(r) 1 Nutzer sagt Danke an Warkings für diesen Beitrag:
  • Rabe
Antworten Top
#3
Hi,

bei Datumswerten meine ich, dass du das Kriterium mit "=" definieren musst:

Code:
Criteria2:="=" & Datum ...

Einen anderen Tipp hatte ich irgendwann mal so verwendet:

Code:
Criteria1:=">=" & Datum, Operator:=xlAnd, Criteria2:="<=" & Datum ...

Viel Erfolg.
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
[-] Folgende(r) 1 Nutzer sagt Danke an LuckyJoe für diesen Beitrag:
  • Rabe
Antworten Top
#4
Hallo Ralf,

das liegt an der Deklaration Deiner Variablen.
Mit
Sub ...
Const Monat = 1
End Sub
wird die in diesem Makro verwendete Variable Monat auf Makroebene reduziert und belegt nicht die Public Variable Monat.

Nimm
Sub ...
Monat = 1
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Rabe
Antworten Top
#5
Hallo zusammen,

ich habe es nun so gelöst:

Sub FilterMonat(intMonat As Integer)
   ' 
   ' FilterMonat Makro 
   ' 
   intJahr = Sheets("Verwaltung").Range("J4")
   'Dim intMonat As Integer 
   'intMonat = Sheets("Gäste").Range("S1") 
   ' 
   ActiveSheet.ListObjects("Gästeliste").Range.AutoFilter Field:=4, Operator:= _
       xlFilterValues, Criteria2:=Array(1, intMonat & "/1/" & intJahr)
End Sub

Sub Abreise_Jan()
   ' 
   ' Abreise_Januar Makro 
   ' 
   
   ' 
   Call FilterMonat(1)
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Dann fiel mir ein:
Wenn ich statt der Monatsbuttons ein Listenelement einfüge mit den 12 Monaten, kann ich ja durch Auswahl eines Monats in eine Zelle eine Zahl von 1-12 eintragen. Jetzt kann ich das "FilterMonat" aufrufen, damit es mir dann in der Liste die Monate filtert.
Dieses Makro habe ich dem Listenelement zugewiesen:

Sub FilterMonat()
   ' 
   ' FilterMonat Makro 
   ' 
   intJahr = Sheets("Verwaltung").Range("J4")
   Dim intMonat As Integer
   intMonat = Sheets("Gäste").Range("S1")
   ' 
   ActiveSheet.ListObjects("Gästeliste").Range.AutoFilter Field:=4, Operator:= _
       xlFilterValues, Criteria2:=Array(1, intMonat & "/1/" & intJahr)
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Damit fallen die 12 Monatsbuttons und auch die 12 Monats-Makros weg, und das Arbeitsblatt ist übersichtlicher.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste