24.04.2018, 10:07 (Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2018, 10:07 von sharky51.)
Hallo zusammen,
könnt Ihr mir bitte einen Tipp geben wie dieses Makro erweitert werden muss um einen Autofilter auf diese Mehrfachauswahl zu setzen?
Also an Stelle der Messagebox-Anzeige soll der Filter auch gesetzt werden.
Code:
Sub AutofilterTest()
'Funktioniert nur wenn die Zellselektion 2 oder mehr Zellen beinhaltet.
Dim FilterArray As Variant, rngCell As Range, intI As Integer
Set rngCell = Selection
If rngCell.Rows.Count = 1 Then
'Selektion in einer Zeile
FilterArray = Application.Transpose(rngCell)
Else
'Selektion in Spalte(n)
FilterArray = rngCell
End If
'Testanzeige
For intI = LBound(FilterArray) To UBound(FilterArray)
MsgBox FilterArray(intI, 1)
Next
End Sub
Vielen Dank!
Mit freundlichen Grüßen / Best regards
//
----------o00o---°(_)°---o00o----------------------
Ich suche aber eine Möglichkeit, dass in einer Spalte die markierten Zellen als Filterkriterium herangezogen werden und auf diese Werte dann gefiltert wird.
Hast Du dazu noch eine mögliche Lösung?
Mit freundlichen Grüßen / Best regards
//
----------o00o---°(_)°---o00o----------------------
vielen Dank für das Beispiel. Hab das mal ausprobiert - ist aber nicht das was ich eigentlich suche und benötige.
Im diesem Beispiel muss man im Autofilter-Dialog die Filterkriterien wie üblich explizit ankreuzen und den Filter dann über den Filter-Button setzen.
Ich suche aber die Möglichkeit in einer Spalte (oder mehreren Spalten) per Auswahl mit der Maus nur auf diese ausgewählten (markierten) Werte zu filtern und zwar ohne extra auf den Filter-Button in der Spalte zu klicken.
Vielleicht hast Du dazu noch ein praktikables Beispiel.
Vielen Dank und noch ein schönes WE!
Mit freundlichen Grüßen / Best regards
//
----------o00o---°(_)°---o00o----------------------
Sub AutofilterMitSelektiertenZellen()
Dim rngArea As Range, rngCell As Range, lngZ As Long, strAF() As String
ReDim strAF(0 To Selection.Count - 1)
For Each rngArea In Selection.Areas
For Each rngCell In rngArea.Cells
strAF(lngZ) = rngCell.Value
lngZ = lngZ + 1
Next rngCell
Next rngArea
ActiveSheet.Range("$A$1:$B$20").AutoFilter Field:=2, Criteria1:=strAF, Operator:=xlFilterValues
End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28 • sharky51
29.04.2018, 15:58 (Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2018, 15:58 von schauan.)
Hallo Erich,
in dem Beispiel wird mit dem einen Button der zuvor eingestellte Autofilter auf einem Blatt gesichert. Dieses Makro brauchst Du nicht. Im zweiten Makro werden dann die Zellinhalte genommen und der Filter neu gesetzt. Setzte den Filter zuvor zurück, dass nix mehr angehakelt ist, und Du wirst sehen, es passt erst mal Das man das dann auf die selektierten Zellen umprogrammieren müsste, hatte ich geschrieben. Aber vielleicht reicht Dir Uwe's Code
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • sharky51