Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1324to1328
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
Autofilter auf "letzten" Montag setzen
06.08.2013 09:29:01
Edward
Hallo zusammen,
ich habe folgendes Problem: Ich möchte gerne einen Autofilter auf eine große Datenmenge setzen, bei dem es wichtig ist jede Woche nach dem Montag der Vorwoche zu filtern. Das ganze benötige ich zur Erstellung eines Reports.
Leider stehe ich total auf dem Schlauch und habe keine Idee, wie ich da vorgehen soll.
Wie kann ich Excel beibringen, dass es immer nach dem Montag der Vorwoche filtern soll?
Ich danke euch im Voraus für eure Hilfe.
Liebe Grüße
Edward

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter auf "letzten" Montag setzen
06.08.2013 10:05:52
Rudi
Hallo,
geht nur per VBA
In DieseArbeitsmappe:
Private Sub Workbook_Open()
With Sheets(1)
If Not .AutoFilterMode Then
.Cells(1, 1).AutoFilter
End If
.Cells(1, 1).CurrentRegion.AutoFilter _
Field:=1, Criteria1:=Date - Weekday(Date, 2) - 6
End With
End Sub

Gruß
Rudi

@Rudi, Datum in Filter....
06.08.2013 11:52:25
robert
Hi Rudi,
im Datumsfilter steht bei mir
7/29/2013 ?
daher Filterung falsch.
Woran liegt das ?
Gruß
robert

AW: @robert
06.08.2013 12:21:54
hary
Moin Robert
Das Datumsformat muss, wie ich Ransi (oder war es Luschi) vor laengerer Zeit verstanden habe, angepasst werden.
Hier ist sei Code fuer alle Versionen, da siehst du schon den Unterschied. Ist aber nur Filtern nach Datum aus Textbox.
Dim i As Long
With Worksheets("Zeiterfassung") 'Name anpassen
i = .Cells(.Rows.Count, 4).End(xlUp).Row
Debug.Print "=" & Format(Textbox1.Value, "dd.MM.yyyy") & "*"
Select Case Val(Application.Version)
Case 11, 12     'E2003, E2007
Debug.Print Format(Textbox1.Value, "M\/dd\/yyyy")
.Range("D6:D" & i).AutoFilter Field:=1, Criteria1:=Array(2, Format(Textbox1.Value, _
"M\/dd\/yyyy")), Operator:=xlAnd
Case 14, 15     'E2010, E2013
Debug.Print "=" & Format(Textbox1.Value, "dd.MM.yyyy")
.Range("D6:D" & i).AutoFilter Field:=1, Criteria1:="=" & Format(Textbox1.Value, " _
dd.MM.yyyy"), Operator:=xlAnd
End Select
'.Range("B1:J" & i).PrintOut 'oder .Range("B6:J" & i)
'.Range("D6:D" & i).AutoFilter
End With

vlt. hilft dir das.
gruss hary

Anzeige
AW: @hary-Filter...
06.08.2013 12:43:25
robert
Hallo hary,
danke für deinen Input, habe eine Bitte:
probier diesen Code aus und melde mir bitte das Ergebnis.....
Ich muss erst in den Ben.Def.Datumsfilter gehen, OK drücken,
dann ist die Filterung OK.
Warum passiert die Filterung nicht sofort ?
Sub Filt()
With Sheets(2)
If Not .AutoFilterMode Then
.Cells(1, 1).AutoFilter
End If
.Cells(1, 1).CurrentRegion.AutoFilter _
Field:=1, Criteria1:=">=" & Format(Date - Weekday(Date, 2) - 6, "DD.MM.YYYY"), Operator:= _
xlAnd
End With
End Sub
Gruß
robert

AW: @hary-Filter...
06.08.2013 13:23:10
Edward
Vielen Dank für die schnelle Hilfe, allerdings komme ich immer noch nicht so richtig weiter.
Sub Workbook_Open()
Sheets("wie_auch_immer").Select
ActiveSheet.Range("AS:AS").Select
With ActiveSheet
If Not .AutoFilterMode Then
.Cells(1, 1).AutoFilter
End If
.Cells(1, 1).CurrentRegion.AutoFilter _
Field:=1, Criteria1:=">=" & Format(Date - Weekday(Date, 2) - 7, "DD.MM.YYYY"), Operator: _
= _
xlAnd
End With
End Sub
Was ist an diesem Code falsch? Zudem soll das Makro in der lage sein zu jedem Zeitpunkt den Montag der Vorwoche herauszufinden.
Vielen Dank
Edward

Anzeige
AW: @hary-Filter...
06.08.2013 13:35:15
Edward
Vielen Dank für die schnelle Hilfe, allerdings komme ich immer noch nicht so richtig weiter.
Sub Workbook_Open()
Sheets("wie_auch_immer").Select
ActiveSheet.Range("AS:AS").Select
With ActiveSheet
If Not .AutoFilterMode Then
.Cells(1, 1).AutoFilter
End If
.Cells(1, 1).CurrentRegion.AutoFilter _
Field:=1, Criteria1:=">=" & Format(Date - Weekday(Date, 2) - 7, "DD.MM.YYYY"), Operator: _
= _
xlAnd
End With
End Sub
Was ist an diesem Code falsch? Zudem soll das Makro in der lage sein zu jedem Zeitpunkt den Montag der Vorwoche herauszufinden.
Vielen Dank
Edward

Anzeige
statt -7 gehört -6, lt.Rudis Code...owT
06.08.2013 13:57:58
robert

AW: Filter
06.08.2013 15:54:18
hary
Moin Edward
Dachte robert macht weiter.
Frage:
Was meinst du mit: "Zudem soll das Makro in der lage sein zu jedem Zeitpunkt...."
Bei diesem Code ist der Zeitpunkt immer Heute(Date).
Probier mal so. Code wird ausgefuehrt beim oeffnen der Mappe. Die beiden "A" anpassen wo die Datums drinstehen
Code in den Code der Arbeitsmappe:
Private Sub Workbook_Open()
Dim a As Date
With Worksheets("wie_auch_immer")
If Not .AutoFilterMode Then
.Cells(1, "A").AutoFilter
End If
a = Date - Weekday(Date, 2) - 6
.Cells(1, "A").CurrentRegion.AutoFilter Field:=1, Criteria1:=">=" & Year(a) & "/" & Month( _
a) & "/" & Day(a)
End With
End Sub

gruss hary

Anzeige
OT-hary- musste ins Bad.....;-) owT
06.08.2013 19:38:29
robert

AW: OT-hary- musste ins Bad.....;-) owT
07.08.2013 11:11:27
Edward
Hallo Harry,
danke du hast mir sehr geholfen ;) klappt jetzt wunderbar, werde das ganze mal mit nem neuen Datensatz testen und melde mich dann wieder.
Gruß
Edward

AW: OT-hary- musste ins Bad.....;-) owT
08.08.2013 09:33:13
Edward
Da bin ich wieder ;)
Habe das ganze jetzt mal mit neuen Daten getestet, grundsätzlich funktionoiert es, allerdings _ habe ich jetzt neben dem letzten Montag (29. Juli) auch noch den 5. August, ich nehme an das liegt an

Criteria1:=">="
, wenn ich das > rausnehme findet er gar nichts mehr, kann das am Format vom Datum liegen? In meinem Excel File ist das Datum als 29. Jul 13 angegeben.
Vielleicht hat ja jemand einen Lösungsvorschlag ;)
Hier nochmal der ganze Code
Dim a As Date
With Worksheets("wie_auch_immer")
If Not .AutoFilterMode Then
.Cells(1, "AS:AS").AutoFilter
End If
a = Date - Weekday(Date, 2) - 6
.Cells(1, "AS:AS").CurrentRegion.AutoFilter Field:=45, Criteria1:=">=" & Day(a) & "/" &  _
Month( _
a) & "/" & Year(a)
End With
Vielen Dank und liebe Grüße
Edward

Anzeige
AW: OT-hary- musste ins Bad.....;-) owT
08.08.2013 09:45:03
Edward
Da bin ich wieder ;)
Habe das ganze jetzt mal mit neuen Daten getestet, grundsätzlich funktionoiert es, allerdings _ habe ich jetzt neben dem letzten Montag (29. Juli) auch noch den 5. August, ich nehme an das liegt an

Criteria1:=">="
, wenn ich das > rausnehme findet er gar nichts mehr, kann das am Format vom Datum liegen? In meinem Excel File ist das Datum als 29. Jul 13 angegeben.
Vielleicht hat ja jemand einen Lösungsvorschlag ;)
Hier nochmal der ganze Code
Dim a As Date
With Worksheets("wie_auch_immer")
If Not .AutoFilterMode Then
.Cells(1, "AS:AS").AutoFilter
End If
a = Date - Weekday(Date, 2) - 6
.Cells(1, "AS:AS").CurrentRegion.AutoFilter Field:=45, Criteria1:=">=" & Day(a) & "/" &  _
Month( _
a) & "/" & Year(a)
End With
Vielen Dank und liebe Grüße
Edward

Anzeige
AW: versuch mal
08.08.2013 10:21:13
hary
Moin Edward
Versuch mal so. Spaltenbuchstabe(noch anpassen) nur einmal rein!!
Dim a As Date
With Worksheets("Tabelle1")
If Not .AutoFilterMode Then
.Cells(1, "A").AutoFilter
End If
a = Date - Weekday(Date, 2) + 1 'hier lag der Fehler
.Cells(1, "A").CurrentRegion.AutoFilter Field:=1, Criteria1:=">=" & Year(a) & "/" & Month( _
_
a) & "/" & Day(a)
End With

gruss hary

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige