AW: Auswahl Menü
22.01.2024 10:58:59
Beverly
Hi Simone,
im UserForm diese beiden Codes:
Option Explicit
Private Sub CommandButton1_Click()
Dim lngErste As Long
Dim rngZelle As Range
Dim wksTab As Worksheet
Dim lngAnzahl As Long
' wenn nichts augewählt dann verlassen
If Me.ListBox1.ListIndex = -1 Then
MsgBox "Bitte Aufgabe auswählen"
Exit Sub
End If
' Tabellenblatt ab Zeile 6 bis zur letzten belegten Zelle leeren
With Worksheets("Zusammenfassung")
lngErste = .Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
.Range(.Cells(6, 1), .Cells(lngErste, 13)).ClearContents
End With
lngErste = 6
' Schleife über alle Tabellenblätter
For Each wksTab In Worksheets
' nur die aufgeführten berücksichtigen
Select Case wksTab.Name
Case "Linux", "Astra", "Osten", "BSW"
' suche in Spalte A nach der ListBox-Auswahl, komplette Übereinstimmung
Set rngZelle = wksTab.Columns(1).Find(Me.CommandButton1.Tag, lookat:=xlWhole)
' Suchbegriff wurde gefunden
If Not rngZelle Is Nothing Then
' Anzahl des Suchbegriffs ermitteln
lngAnzahl = Application.CountIf(wksTab.Columns(1), rngZelle.Value)
' Bereich mit dem Suchbegriff in Spalte A kopieren in erste freie Zelle
wksTab.Range(wksTab.Cells(rngZelle.Row, 1), wksTab.Cells(rngZelle.Row + lngAnzahl - 1, 13)).Copy Worksheets("Zusammenfassung").Cells(lngErste, 1)
' neue erste freieZeile ermitteln
lngErste = lngErste + lngAnzahl
End If
End Select
Next wksTab
End Sub
Private Sub ListBox1_Click()
' Auswahl der ListBox wird in die Tag-Eigenschaft des commandButton geschrieben
Me.CommandButton1.Tag = Me.ListBox1.List(Me.ListBox1.ListIndex, 0)
End Sub
Vor jedem Kopiervorgang wird Tabelle "Zusammenfassung" geleert.
Bedingung für das richtige Funktionieren des Code ist, dass alle Blätter nach Spalte A sortiert sind. Wenn das nicht der Fall ist, müsste man es über Filterung der Tabellen realisieren und nur die gefilterten Zeilen übertragen, der Rest bleibt gleich.
https://www.herber.de/bbs/user/166243.xlsm
Bis später
Karin
Link zur Homepage: https://excel-inn.de/