Hallo zusammen!
Ich bin seit kurzem auf der Arbeit zuständig für die Programmierung einiger Dinge durch VBA. Nun stehe ich erstmals vor einem Problem, das ich seit Stunden nicht gelöst bekomme.
Es werden mittels einer Listbox bestimmte Gesellschaften ausgewählt. Danach soll in einer anderen Tabelle (hat circa 3000 Zeilen und mehrere Spalten) in einer bestimmten Spalte nach den ausgewählten Werten gesucht werden. Falls in dieser Spalte der Wert mit dem ausgewählten Wert übereinstimmt, sollen aus dieser Zeile bestimmte Werte auf ein anderes Tabellenblatt kopiert werden.
In Tabelle1 ist die Spalte zum Durchsuchen und die Daten zum Übernehmen. In Tabelle2 sollen die Daten hineinkopiert werden.
Mein Code scheint nicht ganz zu funktionieren... habt ihr Tipps oder vielleicht ganz andere Ansätze?
Private Sub cmd_OK_Click()
Dim i As Integer
Dim k As Integer
Dim R As Integer
Dim Z As Integer
Dim ZeileMax As Integer
Dim ZeileMaxTab1 As Integer
Application.ScreenUpdating = False
With Tabelle2
'Bereich der ausgewählten Risiken wird zunächst geleert
ZeileMax = .Cells(21, 2).End(xlDown).Row
.Range("B21:E" & ZeileMax).Clear
End With
'Daten der ausgewählten Einzelgesellschaften werden übernommen
k = 21
R = 1
ZeileMaxTab1 = Tabelle1.Cells(2, 3).End(xlDown).Row
For i = 0 To Me.List_EG.ListCount - 1
If Me.List_EG.Selected(i) = True Then
For Z = 2 To ZeileMaxTab1
If Tabelle1.Cells(Z, 3).Value = Me.List_EG.Column(0, i) Then
Tabelle2.Cells(k, 3).Value = Tabelle1.Cells(Z, 4).Value
Tabelle2.Cells(k, 4).Value = Tabelle1.Cells(Z, 5).Value
Tabelle2.Cells(k, 5).Value = Tabelle1.Cells(Z, 3).Value
Tabelle2.Cells(k, 2).Value = R
R = R + 1
k = k + 1
End If
Next Z
End If
Next i
Application.ScreenUpdating = True
'Dialogfeld wird geschlossen
Unload Me
End Sub |