Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
776to780
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
776to780
776to780
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

makro fuer AUTOFILTER vereinfachen

makro fuer AUTOFILTER vereinfachen
02.07.2006 22:00:21
th.heinrich
bestes Forum,
wie erkennbar soll nach Monaten gefiltert werden, aber auch andere zeitraeume sollen moeglich sein. der code wird ueber eine Listbox aufgerufen.
Option Explicit

Sub liste()
Dim DatumVon As Date
Dim DatumBis As Date
Dim filt As Variant
Worksheets("Werte").Activate
On Error Resume Next
Worksheets("Werte").ShowAllData
filt = Worksheets("Krit").Range("b1").Value
'MsgBox filt
'filt = InputBox("Bitte Monat eingeben")
'If Worksheets("Tabelle1").Range("b1").Value = 1 Then
If filt = 1 Then
DatumVon = "12.03.06"
DatumBis = "31.03.06"
Selection.AutoFilter Field:=1, Criteria1:=">=" & CDbl(DatumVon), _
Operator:=xlAnd, Criteria2:="<=" & CDbl(DatumBis)
End If
If filt = 2 Then
DatumVon = "01.04.06"
DatumBis = "30.04.06"
Selection.AutoFilter Field:=1, Criteria1:=">=" & CDbl(DatumVon), _
Operator:=xlAnd, Criteria2:="<=" & CDbl(DatumBis)
End If
If filt = 3 Then
DatumVon = "01.05.06"
DatumBis = "31.05.06"
Selection.AutoFilter Field:=1, Criteria1:=">=" & CDbl(DatumVon), _
Operator:=xlAnd, Criteria2:="<=" & CDbl(DatumBis)
End If
If filt = 4 Then
DatumVon = "01.06.06"
DatumBis = "30.06.06"
Selection.AutoFilter Field:=1, Criteria1:=">=" & CDbl(DatumVon), _
Operator:=xlAnd, Criteria2:="<=" & CDbl(DatumBis)
End If
End Sub

welche moeglichkeit besteht das ganze zu verkuerzen?
vielen dank
gruss thomas

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: makro fuer AUTOFILTER vereinfachen
03.07.2006 01:22:56
fcs
Hallo Thomas,
das Makro läßt sich etwa wie folgt verkürzen:

Sub liste()
Dim DatumVon As Date
Dim DatumBis As Date
Worksheets("Werte").Activate
On Error Resume Next
Worksheets("Werte").ShowAllData
Select Case Worksheets("Krit").Range("b1").Value 'FilterAuswahl
Case 1
DatumVon = "12.03.06"
DatumBis = "31.03.06"
Case 2
DatumVon = "01.04.06"
DatumBis = "30.04.06"
Case 3
DatumVon = "01.05.06"
DatumBis = "31.05.06"
Case 4
DatumVon = "01.06.06"
DatumBis = "30.06.06"
Case Else
Exit Sub
End Select
Selection.AutoFilter Field:=1, Criteria1:=">=" & CDbl(DatumVon), _
Operator:=xlAnd, Criteria2:="<=" & CDbl(DatumBis)
End Sub

Das Ganze wird aber viel flexibler, wenn du die Datums-Werte der verschiedenen Filter in eine Tabelle schreibst und vom makro auslesen läßt.

Private Sub ComboBox2_Change()
Call liste1
End Sub
Sub liste1()
Dim DatumVon As Date
Dim DatumBis As Date
Dim Filt As Variant, Filterwerte As Range
Worksheets("Werte").Activate
On Error Resume Next
Worksheets("Werte").ShowAllData
Filt = Val(Worksheets("Krit").Range("b1").Value) 'FilterAuswahl
Set Filterwerte = Sheets("Krit").Range("A4:C22")
With Application.WorksheetFunction
DatumVon = .VLookup(Filt, Filterwerte, 2, True)
DatumBis = .VLookup(Filt, Filterwerte, 3, True)
End With
Selection.AutoFilter Field:=1, Criteria1:=">=" & CDbl(DatumVon), _
Operator:=xlAnd, Criteria2:="<=" & CDbl(DatumBis)
End Sub

Beispieltabelle: https://www.herber.de/bbs/user/34809.xls
mfg
Franz
Anzeige
danke Franz , werde testen, melde mich wieder ot.
03.07.2006 11:47:49
th.heinrich
AW: danke Franz ,passt bestens :-) geschlossen ot.
03.07.2006 23:09:18
th.heinrich

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige