Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1364to1368
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

Filterauswahl per Makro

Filterauswahl per Makro
20.06.2014 09:50:27
Kurt
Guten Morgen allerseits,
ich habe folgendes Makro aufgezeichnet:
Public Sub Filter_wählen()
ActiveSheet.Range("$B$9:$V$398").AutoFilter Field:=1, Criteria1:="111"
End Sub
gibts es eine Möglichkeit, das beim ausführen des Makros erst die Auswahl der
Filtermöglichkeiten möglich ist.
Grund:
In der Filterauswahl stehen sehr viele Zahlen, z.B. 112 113 usw.,
gruß Kurt

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filterauswahl per Makro
20.06.2014 10:13:20
EtoPHG
Hallo Kurt,
Ich verstehe deine Frage nicht.
Wenn du das über ein Makro anstossen willst und dann trotzdem dem Benutzer die Auswahl der Filter-Kriterien erlauben willst, was unterscheidet dann dieses Vorgehen von der standardmässigen Auswahl der Kriterien über den Filterdropdown?
Gruess Hansueli

AW: Filterauswahl per Makro
20.06.2014 10:22:41
Kurt
Guten Morgen Hansueli,
wenn ich das Filterdreieck anklicke, werden ja die Zahlen alle gelistet und man
kann auswählen.
Diese Auswahl soll mein Makro auslösen. Später möchte ich das Makro erweitern
und die gefilterte Daten kopieren.
gruß kurt k

Anzeige
Ich versteh es immer noch nicht...
20.06.2014 10:34:48
EtoPHG
Kurt,
Warum versuchen VBA-Anfänger immer wieder einfache Standardfunktionalitäten von XL (die der Mehrzahl von XL-Anwendern bekannt sind) durch Eigengestriktes zu ersetzen? Das verwirrt doch einen Anwender mehr, als dass es ihm hilft! Auch das Kopieren von gefilterten Daten ist mit Ctrl-C / Ctrl-V Standard. Hier wäre ggf. eine Schaltfläche angebracht und das Kopieren könnte an eine per VBA errechnete Zielposition erleichtert werden.
Also nochmal: WAS unterscheidet den Klick auf eine deiner Schaltflächen um dein Makro auszulösen, von einem Klick auf den Filter-Dropdown-Pfeil?
Gruess Hansueli

Anzeige
Hallo Hansueli, DU hast ja RECHT aber...
20.06.2014 12:51:37
Kurt
Hallo Hansueli,
im Prinzip hast Du RECHT aber ich muß später bis zu 15.000 Zeilen
Filtern.
Wenn ich dies mit einem Makro direkt machen könnte, würde dies eine
enormen Zeitersparnis bringen.
Und es sind 25 Tabellen !
gruß kurt k

AW: Filterauswahl per Makro
20.06.2014 11:38:13
Beverly
Hi Kurt,
versuche es mal nach diesem Prinzip:
Sub Mehrfach_Kriterien()
Dim lngLetzte As Long
Dim varAbfrage As Variant
Dim arrDaten
varAbfrage = Application.InputBox("Daten getrennt durch Komma angeben", "Filterkriterien")
If varAbfrage  "" Then
lngLetzte = ActiveSheet.Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:= _
xlPrevious).Row
If InStr(varAbfrage, ",") > 1 Then
arrDaten = Split(varAbfrage, ",")
ActiveSheet.Range("A1:A" & lngLetzte).AutoFilter Field:=1, _
Criteria1:=arrDaten, _
Operator:=xlFilterValues
ElseIf InStr(varAbfrage, ",") = 1 Then
arrDaten = Split(varAbfrage, ",")
ActiveSheet.Range("A1:A" & lngLetzte).AutoFilter Field:=1, _
Criteria1:=arrDaten(0), _
Operator:=xlOr, Criteria2:=arrDaten(1)
Else
ActiveSheet.Range("A1:A" & lngLetzte).AutoFilter Field:=1, _
Criteria1:=varAbfrage
End If
End If
End Sub



Anzeige
Ja aber...
20.06.2014 12:48:30
Kurt
Hallo Karin,
das ist ein SUPER Makro,
DANKE.
Das einzige Problem, ich weiß nicht alle Nummern auswendig !
Kann irgendwie eine Auswahlbox einbinden und darin sind alle Nummern aufgelistet ?
gruß kurt K

Das stand so aber nicht...
20.06.2014 13:15:53
Beverly
Hi Werner,
...in deinem Eröffnungsbeitrag und man kann eine Frage nur so genau beantworten wie sie gestellt wurde.
Benutze eine ListBox aus den ActiveX-Steuerelementen und stelle die Eigenschaft MultiSelect auf fmMultiSelectMulti. Hier dann der entsprechende Code für die in der ListBox ausgewählten Einträge:
Sub Mehrfach_Kriterien()
Dim lngLetzte As Long
Dim arrDaten
Dim lngDaten As Long
ReDim arrDaten(0)
With ActiveSheet.ListBox1
For lngLetzte = 0 To .ListCount - 1
If .Selected(lngLetzte) Then
ReDim Preserve arrDaten(0 To lngDaten)
arrDaten(lngDaten) = .List(lngLetzte)
lngDaten = lngDaten + 1
End If
Next lngLetzte
End With
If arrDaten(0)  "" Then
lngLetzte = ActiveSheet.Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:= _
xlPrevious).Row
If UBound(arrDaten) > 1 Then
ActiveSheet.Range("A1:A" & lngLetzte).AutoFilter Field:=1, _
Criteria1:=arrDaten, _
Operator:=xlFilterValues
ElseIf UBound(arrDaten) = 1 Then
ActiveSheet.Range("A1:A" & lngLetzte).AutoFilter Field:=1, _
Criteria1:=arrDaten(0), _
Operator:=xlOr, Criteria2:=arrDaten(1)
Else
ActiveSheet.Range("A1:A" & lngLetzte).AutoFilter Field:=1, _
Criteria1:=arrDaten(0)
End If
End If
End Sub
Wie du die ListBox füllt musst du selbst entscheiden, da ich deine Mappe nicht kenne.


Anzeige
Bitte entschuldige meine...
20.06.2014 13:31:34
Kurt
Hallo Karfin,
bitte entschuldige meine blöde Ausführung.
Ich versuch es jetzt mit einer Listbox, sollte
es nicht klappen , melde ich mich,
wenn ich noch darf !
gruß
kurt k

Bitte entschuldige meine...
20.06.2014 13:36:36
Kurt
Hallo Karfin,
bitte entschuldige meine blöde Ausführung.
Ich versuch es jetzt mit einer Listbox, sollte
es nicht klappen , melde ich mich,
wenn ich noch darf !
gruß
kurt k

Sicher darfst du...
20.06.2014 13:47:44
Beverly
Hi Kurt,
...auch weiterhin Fragen stellen - dazu ist das Forum schließlich da ;-)). Aber vielleicht kannst du ja in Zukunft meinen Hinwes bezüglich der Formulierung bei der Fragestellung berücksichtigen, denn du musst immer bedenken, dass man als Außenstehender weder die genauen Bedinungungen noch die genauen Ziele des Fragestellers kennen kann.
PS: sorry, dass ich dich in meinem vorhergehenden Beitrag mit "Werner" angesprochen habe, aber ich hatte gerade zuvor einem Werner geantwortet...


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige