Microsoft Excel

Herbers Excel/VBA-Archiv

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

Excel VBA aktuelle Woche filtern und ausgeben


Betrifft: Excel VBA aktuelle Woche filtern und ausgeben von: Pascal
Geschrieben am: 25.01.2018 08:21:24

Hallo Leute,

ich möchte mir über ein Makro eine Spalte nach der aktuellen Woche filtern lassen
(Montag-Freitag) wollte folgenden Code dafür benutzen

Private Sub CommandButton2_Click()

Dim varDate As Date

    varDate = Date

Sheets("ToDo&PrioListe").Range("K5").AutoFilter Field:=11, Criteria1:="<=" & CLng(varDate) + 6 - _
 Weekday(Date), Operator:=xlAnd, Criteria2:=">=" & CDbl(varDate) + 2 - Weekday(Date)

End Sub
Die Spalte wird gefiltert doch heute fehlt z.B. der Montag ich schätze ich hatte nur einen "Glücksgriff" da es gestern und vorgestern noch geklappt hat.

Könnte man das besser und sicherer programmieren?

Schön wäre es auch wenn das Makro mir dann die entsprechende Woche auch noch in eine Zelle X schreibt.

Liebe Grüße
Pascal

  

Betrifft: AW: 4 xlFilterThisWeek von: Fennek
Geschrieben am: 25.01.2018 08:39:03

Hallo,

wenn nach den Werten der ersten Spalte gefiltert wird:

with cells(1).currentregion
   .autofilter 1, 4, 11
end with
mfg


  

Betrifft: AW: Excel VBA aktuelle Woche filtern und ausgeben von: Sepp
Geschrieben am: 25.01.2018 08:50:07

Hallo Pascal,

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub CommandButton2_Click()
Dim lngStart As Long, lngEnd As Long

lngStart = Date - Weekday(Date, vbMonday) + 1
lngEnd = lngStart + 4

Range("K5").AutoFilter Field:=11, Criteria1:=">=" & lngStart, _
  Operator:=xlAnd, Criteria2:="<=" & lngEnd

Range("M1") = DINKwoche(lngStart)
End Sub

Private Function DINKwoche(ByVal Datum As Date) As Long
Dim tmp As Date
tmp = DateSerial(Year(Datum + (8 - Weekday(Datum)) Mod 7 - 3), 1, 1)
DINKwoche = (Fix(Datum - tmp - 3 + (Weekday(tmp) + 1) Mod 7) \ 7) + 1
End Function


Da der Code enes Commandbutton ja im Modul der Tabelle steht, brauchst du diese nicht extra angeben!

Gruß Sepp



  

Betrifft: AW: Excel VBA aktuelle Woche filtern und ausgeben von: Pascal
Geschrieben am: 25.01.2018 09:42:20

Hat geklappt, super!

Danke

LG
Pascal


Beiträge aus dem Excel-Forum zum Thema "Excel VBA aktuelle Woche filtern und ausgeben"