VBA – die besten Beiträge

Excel VBA - AutoFilter richtig einstellen?

Hallo!

ich versuche derzeit folgendes, ohne mich wirklich mit VBA auszukennen :D

Ich habe zwei Tabellen, Tabelle1 und Tabelle2. Auf Tabelle 1 habe ich mehrere Kategorie-Namen (im Beispiel die Zahlen) und möchte diese quasi "Selektieren", um damit einen Filter für meine Daten in Tabelle2 zu setzen, um dort nur die Daten zur jeweiligen gefilterten Kategorie anzuzeigen.

Zur Zeit sieht es wie folgt aus (vereinfachte Darstellung mit Zahlen als Kategorie):

Tabelle 1:

Tabelle 2 (Zahlen = Kategorie, Buchstaben = Daten):

Und mein Code

Sub Filtern()

Dim Kriterium As String Dim Counter Counter = 0

For i = 1 To 5     If Cells(i, 1) = "X" Then Kriterium = Kriterium + """" + CStr(Cells(i, 2)) + """" + ","     Counter = Counter + 1      Next i

Dim Liste As Range Set Liste = Worksheets("Tabelle2").Range("A2:B10") Liste.AutoFilter Liste.AutoFilter Field:=1, Criteria1:=(Kriterium)

End Sub

Zur Erklärung was ich mir dabei gedacht habe:

In der For-Schleife gehe ich erstmal die Tabelle 1 durch und schaue, wo ein X ist und füge dann entsprechenden Kategorie-Namen aus der Zelle daneben meinem String hinzu.

Dies scheint auch zu klappen, eine Test-Ausgabe via MsgBox hat mir das Ganze so ausgegeben wie ich wollte (so: "3","5",)

Im nächsten Schritt sage ich, wo die Daten sind die zu filtern sind und wende dann "AutoFilter" an, um den Filter zu setzen. Dabei sage ich dann, dass er in Feld 1 die Kriterien suchen soll. Als Kriterium gebe ich ihm meinen vorher erstellen String, welches er als ein Array verarbeiten soll, um alle Kriterien zu berücksichtigen.

Das Ergebnis sieht allerdings nur so aus:

Ich kenne mich wie gesagt eigentlich überhaupt nicht mit VBA aus, daher wäre gut möglich, dass mein Code ein zusammengeschuhsterer Haufen Müll ist, aber naja... :D

Sieht da jemand zufällig den Fehler?

Bild zum Beitrag
Computer, Microsoft Excel, VBA

Wie kann man in Excel per VBA abhängig von einem Wert Spalten aus-/einblenden?

Hey. Ich weiß zu diesem Thema gibt es schon ein paar Einträge im Netz. jedoch habe ich es nie für mich umformuliert bekommen. Vielleicht kann mir hier jemand helfen?

In Zelle G6 steht ein Wert von 1-6. Abhängig davon sollen dann immer andere Spalten ausgeblendet werden. Mein Code zur Zeit:

Sub Ausblenden()
'
' Ausblenden Makro
'
' Tastenkombination: Strg+a
'
    If "G6" = "1" Then
                Columns("v:bn").EntireColumn.Hidden = False
                Columns("v:bn").EntireColumn.Hidden = True
            Else
                If "G6" = "2" Then
                    Columns("v:bn").EntireColumn.Hidden = False
                    Columns("ae:bn").EntireColumn.Hidden = True
                Else
                    If "G6" = "3" Then
                        Columns("v:bn").EntireColumn.Hidden = False
                        Columns("an:bn").EntireColumn.Hidden = True
                    Else
                        If "G6" = "4" Then
                            Columns("v:bn").EntireColumn.Hidden = False
                            Columns("aw:bn").EntireColumn.Hidden = True
                        Else
                            If "G6" = "5" Then
                                Columns("v:bn").EntireColumn.Hidden = False
                                Columns("bf:bn").EntireColumn.Hidden = True
                            Else
                                If "G6" = "6" Then
                                    Columns("v:bn").EntireColumn.Hidden = False
                                End If
                            End If
                        End If
                    End If
                End If
    End If
End Sub

Ich bin ein VBA anfänger, also bitte seit nachsichtig x). Danke schon einmal im voraus!

Computer, Office, Microsoft Excel, programmieren, VBA

Meistgelesene Beiträge zum Thema VBA