Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
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
Inhaltsverzeichnis

Autofilter über Makro steuern

Autofilter über Makro steuern
22.09.2015 13:52:09
Marco
Hallo,
ich habe mal ein Makro erstellt wo sich eine Userform öffnet,
dort sind 2 Kalender enthalten wo man einen Datum Zeitraum von bis eingeben kann.
Dieser Zeitraum wurde in einer Tabelle im Filter eingegeben und der betroffene Bereich gedruckt.
Nun wollte ich das Makro in einer neuen Arbeitsmappe anwenden. Habe dort auch meines erachtens alle Bezüge angepasst. Nur leider wird der Datum Zeitraum von der Userform anscheinend nicht an den Filter weiter gegeben.
Kann mir jemand sagen wo der Fehler liegt?
Sub Datum_Filter_von_bis()
' Datum_Filter_von_bis Makro
Dim varDatumVon As Variant
Dim varDatumBis As Variant
'On Error Resume Next
Sheets("CPM Archiv").Select
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
UserForm2.Hide
Rows("8:8").Select
Selection.AutoFilter
varDatumVon = CLng(CDate(Von))
varDatumBis = CLng(CDate(Bis))
With ActiveSheet.AutoFilter.Range
.AutoFilter Field:=5, Criteria1:=">=" & varDatumVon, Operator:=xlAnd, _
Criteria2:="
Wenn ich das Datum manuell in den Filter gebe klappt es so wie ich möchte.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter über Makro steuern
22.09.2015 14:00:42
Daniel
Hi
Datum + Autofilter = Schwierig.
weils kompliziert ist, was man jetzt genau angeben muss (Datum im Englischen Format usw).
da du das Filterkriterium als Ganzahl angibst varDatumVon = CLng(CDate(Von))
, musst du auch die Kriteriumsspalte in der Tabelle (E) mit dem Zahlenformat "Standard" formatieren.
wenn die Kriteriumsspalte als Datum formatiert ist, musst du als Filterkriterium einen Text angeben, den VBA als Datum erkennen kann, dh im englischen Datumsformat:
Criteria1:=">=09/22/2015"
Gruß Daniel

Anzeige
AW: Autofilter über Makro steuern
22.09.2015 14:22:00
Marco
Hallo Daniel,
in der alten Tabelle sind die Zellen als Benutzerdefiniert formatiert. Dort funktioniert es ja auch.
Habe es in der neuen Tabelle mal auf Standard gesetzt, klappt leider nicht.
Habe es dann nochmal auf Benutzerdefiniert getestet, klappt leider auch nicht.
Wie kann ich es denn sonst eventuell umsetzen das ich über ein Makro einen bestimmten Datumabschnitt aus dem Archiv drucken kann.

AW: Autofilter über Makro steuern
22.09.2015 14:10:40
matthias
Hallo Marco,
da die Variablen "Von" und "Bis" in einem anderen Makro/Userform mit Werten versehen werden, sind die Variablen hoffentlich als öffentlich deklariert? Dein Makro funktioniert nämlich ansonsten bis hin zum Drucken einwandfrei.
lg Matthias

Anzeige
AW: Autofilter über Makro steuern
22.09.2015 14:39:32
Marco
Hallo Matthias,
wie mache ich die Variblen denn öffentlich?
In der alten Tabelle steht alles auf private sub.
Und die zu filternden Zellen sind als Benutzerdefiniert formatiert.
Sorry wenn die Frage eventuell etwas doof ist, aber ich habe gerade irgendwie Denkblockade.

AW: Autofilter über Makro steuern
22.09.2015 15:57:59
matthias
"Private Sub" gibt die Verfügbarkeit des Makros an, hat jedoch mit der Variablen nichts zu tun. Damit können andere Dokumente/Module nicht auf dieses Makro zugreifen.
Zur Verfügbarkeit von Variablen gibt es generell 3 Stufen:
1.innerhalb eines Makros
2.modulweit (makroübergreifend)
3.modulübergreifend
Zu 1.:
Sub Test()
Dim lZeile As Long 'Variable innerhalb des Makros deklariert
lZeile = 5
Call Test2
End Sub
Sub Test2()
MsgBox lZeile
End Sub
Dies wird dir Null zurückgeben, weil lZeile nur innerhalb des Makros gültig ist.
Zu 2.:
Dim lZeile As Long 'Variable außerhalb des Makros deklariert
Sub Test()
lZeile = 5
Call Test2
End Sub
Sub Test2()
MsgBox lZeile
End Sub
Hier wird der Wert übergeben, solange beide Makros im selben Modul liegen.
Zu 3.:
Public lZeile As Long 'Variable außerhalb des Makros und mit Public deklariert
Sub Test()
lZeile = 5
Call Test2
End Sub
Sub Test2()
MsgBox lZeile
End Sub
Hier wird der Wert übergeben, auch wenn die Makros in verschiedenen Modulen liegen.
Genau so wie ich das hier gemacht habe, kannst du einfach am Anfang deines Codes eine MsgBox einfügen und dir "Von" und "Bis" anzeigen lassen, ob diese korrekt übergeben wurden. Fall sie leer sind, weist du nun was du ändern musst.
lg Matthias

Anzeige
AW: Autofilter über Makro steuern
23.09.2015 07:28:44
Marco
Hallo Matthias,
ich habe es gestern noch hin bekommmen.
Ich habe folgenden Code über das Makro gesetzt, war bei der alten Version auch so, hatte ich übersehen.
Public Von As Variant
Public Bis As Variant
Die Zellen sind auf Benutzerdefiniert gestellt, dann klappt es.
Allerdings muss ich das Datum in alle 3 zu druckende Zeilen schreiben, da sonst nicht der komplette Datensatz gedruckt wird.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige