Hallö,
hoffe auf Eure Hilfe :wacko:
Komme einfach nicht weiter und finde hier und im Netz irgendwie nicht die passende Lösung.
Dazu muss ich sagen, dass ich ein absoluter Anfänger im VBA bin aber nun schon Tage hieran rumtüftel - lese - usw. *heul*
Kann mir jemand helfen Wäre echt toll
Wie baut man im unteren VBA Code es so um, dass
wenn im Combobox Auswahlfeld (Typ) z.B Typ-2 gewählt wurde,
dann im Combobox Auswahlfeld (Variante) nur dies als Auswahlliste zum auswählen erscheint was im Blatt Typ-2 drin ist?
Also, wenn combobox Typ (=Auflistung der Arbeitsblätter) die Auflistung gefiltert wurde
- dann soll in Combobox Variante nur die Daten des gewählten Arbeitsblattes aufgelistet werden?
Falls die Datei benötigt wird stelle ich sie sofort zur Verfügung.
LG
Knibbli
hoffe auf Eure Hilfe :wacko:
Komme einfach nicht weiter und finde hier und im Netz irgendwie nicht die passende Lösung.
Dazu muss ich sagen, dass ich ein absoluter Anfänger im VBA bin aber nun schon Tage hieran rumtüftel - lese - usw. *heul*
Kann mir jemand helfen Wäre echt toll
Wie baut man im unteren VBA Code es so um, dass
wenn im Combobox Auswahlfeld (Typ) z.B Typ-2 gewählt wurde,
dann im Combobox Auswahlfeld (Variante) nur dies als Auswahlliste zum auswählen erscheint was im Blatt Typ-2 drin ist?
Also, wenn combobox Typ (=Auflistung der Arbeitsblätter) die Auflistung gefiltert wurde
- dann soll in Combobox Variante nur die Daten des gewählten Arbeitsblattes aufgelistet werden?
Falls die Datei benötigt wird stelle ich sie sofort zur Verfügung.
LG
Knibbli
Visual Basic-Quellcode
- Private Sub Variante_Change()
- Filtern
- End Sub
- Private Sub Typ_Change()
- Filtern
- End Sub
- Private Sub Worksheet_Activate()
- Variante_befüllen
- Typ_befüllen
- End Sub
- Public Sub Variante_befüllen()
- Dim a As Range
- Dim i As Integer
- Dim WS As Worksheet
- With ThisWorkbook.Sheets("Auswertung").Variante
- .Clear
- For Each WS In ThisWorkbook.Worksheets
- If WS.Name = "Typ-1" Or WS.Name = "Typ-2" Or WS.Name = "Typ-3" Or WS.Name = "Typ-4" Or WS.Name = "Typ-5" Then
- For Each a In WS.Range("A3:A1000")
- If a <> "" Then
- For i = 0 To .ListCount - 1
- If InStr(1, .List(i), a, 1) <> 0 Then GoTo Weiter
- Next i
- .AddItem a
- End If
- Weiter:
- Next a
- End If
- Next WS
- End With
- End Sub
- Public Sub Typ_befüllen()
- Dim i As Integer
- Dim WS As Worksheet
- With ThisWorkbook.Sheets("Auswertung").Typ
- .Clear
- For Each WS In ThisWorkbook.Worksheets
- If WS.Name = "Typ-1" Or WS.Name = "Typ-2" Or WS.Name = "Typ-3" Or WS.Name = "Typ-4" Or WS.Name = "Typ-5" Then
- For i = 0 To .ListCount - 1
- If InStr(1, .List(i), WS.Name, 1) <> 0 Then GoTo Weiter
- Next i
- .AddItem WS.Name
- End If
- Weiter:
- Next WS
- End With
- End Sub
- Public Sub Filtern()
- Dim a As Range
- Dim b As Range
- Dim Typ As String
- Dim zeile As Integer
- Dim WS As Worksheet
- zeile = 2
- With ThisWorkbook.Sheets("Auswertung")
- .Range("A2:I1000").ClearContents
- If .Variante = "" Or .Typ = "" Then Exit Sub
- Typ = .Typ
- Set WS = ThisWorkbook.Sheets(Typ)
- For Each a In WS.Range("A3:A1000")
- If a <> "" And InStr(1, .Variante, a, 1) <> 0 Then
- For Each b In .Range("B2:B1000")
- If b <> "" And InStr(1, b, a.Offset(0, 2), 1) <> 0 Then
- .Cells(zeile - 1, 4) = .Cells(zeile - 1, 4) + a.Offset(0, 4)
- .Cells(zeile - 1, 5) = .Cells(zeile - 1, 5) + a.Offset(0, 5)
- GoTo Weiter
- End If
- Next b
- .Cells(zeile, 1) = a.Offset(0, 27)
- .Cells(zeile, 2) = a
- .Cells(zeile, 3) = a.Offset(0, 1)
- .Cells(zeile, 4) = a.Offset(0, 2)
- .Cells(zeile, 5) = a.Offset(0, 3)
- .Cells(zeile, 6) = a.Offset(0, 4)
- .Cells(zeile, 7) = a.Offset(0, 5)
- .Cells(zeile, 8) = a.Offset(0, 26)
- .Cells(zeile, 9) = a.Offset(0, 6)
- zeile = zeile + 1
- End If
- Weiter:
- Next a
- End With
- End Sub
- Sub Druck_Click()
- Sheets("Auswertung").PrintOut
- End Sub