PDA

Vollständige Version anzeigen : Filtern von Herstellern


D3us
21.08.2017, 13:01
Hallo und ich muss mich erstmal outen.
Ich bin ein Noob in VBA möchte mich aber verbessern.
Mein Problem ist ich möchte ein Vergleich aufbauen. Von verschieden Herstellern. und möchte durch eine check box nach Herstellern filtern:

z.b

Hersteller
A =checkbox 25
B=checkbox 27
C=checkbox 28
D
E
F
----------------------------------------------------------------------------------
'Prüfung 1 = A
If CheckBox25.Value = True Then
For iCounter = 5 To 75
If Cells(200, iCounter).Value = 0 Then
Columns(iCounter).EntireColumn.Hidden = True
Else
End If
Next iCounter
Else
End If

'Prüfung 2 = B

If CheckBox27.Value = True Then
For iCounter = 5 To 75
If Cells(213, iCounter).Value = 0 Then
Columns(iCounter).EntireColumn.Hidden = True
Else
End If
Next iCounter
Else
End If

'Prüfung 3 = C

If CheckBox28.Value = True Then
For iCounter = 5 To 75
If Cells(214, iCounter).Value = 0 Then
Columns(iCounter).EntireColumn.Hidden = True
Else
End If
Next iCounter
Else
End If

----------------------------------------------------------------------------------

Wenn ich also "A" anklicke wird mir "A" angezeigt wenn ich aber mehrer anklicken möchte negieren sich diese gegenseitig und mir mir garkeiner angezeigt.

Könnte mir jemand helfen oder ein Denkanstoss geben

Schön Gruß und dank
D3us

R J
21.08.2017, 15:27
Hi D3,

wenn Du schon mit Checkboxen arbeitest, dann solltest Du eine Checkboxklasse verwenden. Schließe ich aber bei Deinem aktuellen Kenntnisstand mal aus. Alternative wäre eine Listbox.
Warum?
Weil Du damit flexibler bist, wenn Hersteller wegfallen oder hinzukommen.
In der Listbox kannst Du die Eigenschaft Multiselect auf True setzen (wenn Du mehrere gleichzeitig martkieren willst). Im Prüfmodus wird dann die Eigenschaft Selected ausgewertet. Bsp.:

Private Sub ListBox1_Change()
Dim i%, s$
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then s = s & vbCrLf & ListBox1.List(i)
Next i
Debug.Print s
End Sub