Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bei Klick CommandButton filtern nach Liste

Bei Klick CommandButton filtern nach Liste
09.10.2017 11:01:47
Kati
Hallo zusammen,
ich möchte über einen Klick auf den CommandButton immer den nächsten Wert in einer Filterung anzeigen lassen. Ab der Filterung 30 überspringt dieser einige Werte und filtert auf 711. Es gibt auch eine Liste in einem anderen Tabellenblatt um dem Array zu füllen. Könnt ihr mir helfen?

Option Explicit
Sub filtern()
Dim wks As Worksheet
Set wks = ActiveSheet
With wks
If .AutoFilterMode = True Then GoTo weiter:
End With
Dim g As Integer
Dim gewerke()
gewerke = Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "30", "40", "50", "60", "70", "1000", "100", "700", "710", "711", "712", "713", "719", "720", "721", "722", "723", "724", "725", "729", "730", "731", "732", "733", "734", "735", "736", "739", "740", "741", "742", "743", "744", "745", "746", "747", "748", "749", "750", "751", "752", "759", "760", "761", "762", "763", "769", "770", "771", "772", "773", "774", "775", "779", "790", "811", "821", "831", "841", "851", "861", "862", "871")
For g = 0 To UBound(gewerke)
Sheets("Vergabe").Activate
ActiveSheet.Range("A1:a5362").AutoFilter Field:=1, Criteria1:=gewerke(g), Operator:=xlAnd
Next g
weiter: Call nächstefilterung
End Sub
Private Sub nächstefilterung()
Dim Variable As Variant
Dim g As Variant
Dim Ergebnis As Integer
Dim gewerke()
gewerke = Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "  _
_
14", "15", "16", "17", "18", "19", "20", "21", "30", "40", "50", "60", "70", "1000", "100", " _
700", "710", "711", "712", "713", "719", "720", "721", "722", "723", "724", "725", "729", "730", "731", "732", "733", "734", "735", "736", "739", "740", "741", "742", "743", "744", "745", "746", "747", "748", "749", "750", "751", "752", "759", "760", "761", "762", "763", "769", "770", "771", "772", "773", "774", "775", "779", "790", "811", "821", "831", "841", "851", "861", "862", "871")
Dim c1 As String
With Worksheets(1)
If .AutoFilterMode Then
With .AutoFilter.Filters(1)
If .On Then c1 = .Criteria1
End With
End If
End With
Range("E1").Value = "" & c1
g = Range("E1").Value
Sheets("Vergabe").Activate
ActiveSheet.Range("A1:a5362").AutoFilter Field:=1, Criteria1:=gewerke(g), Operator:=xlAnd
'Range("E1").ClearContents
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
eine Bsp-Datei inkl Code per Uload könnte helfen
09.10.2017 17:08:33
Oberschlumpf
AW: Bei Klick CommandButton filtern nach Liste
09.10.2017 20:52:37
onur
Wieso füllst du das array bei jedem Aufruf von "nächstefilterung" neu?
Das array muss nur einmal gefüllt werden und sollte public deklariert sein, damit jeder code darauf zugreifen kann.
Ich verstehe irgendwie auch nicht, was das alles soll:
Du filterst im ersten Teil in einer Schleife hintereinander (ohne Pause) nach allen einzelnen Elementen des arrays und im zweiten Teil ("nächstefilterung") noch mal das gleiche nach dem Wert "871"?
Range("E1").Value = "" & c1
g = Range("E1").Value

Hier setzt du g=.criteria und dann g als index des arrays?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige