bräuchte Hilfe, da ich mit meinem Problem nicht weiter komme.
Ich habe ein Workbook mit den Tabellenblättern "Dateneingabe", "Verbot" und "Zustellung".
Bei Klick auf die Schaltfläche "Zustellen/Löschen" öffnet sich die Userform "Postbote" mit _
einer mehrspaltigen Listbox. Die Listbox wird mit folgendem Code gefüllt:
Private Sub UserForm_Activate()
Dim X As Long
Dim i As Integer
Dim sText As String
Application.ScreenUpdating = False
Worksheets("Zustellung").Activate
TextBox1.SetFocus
Me.Namen.Clear
Postbote.Anlegen.ForeColor = RGB(0, 100, 0)
Postbote.Löschen.ForeColor = RGB(255, 0, 0)
X = Range("D" & Rows.Count).End(xlUp).Row
For i = 5 To X
With Worksheets("Zustellung")
sText = .Cells(i, 4).Value & .Cells(i, 5).Value & .Cells(i, 6).Value & .Cells(i, 7).Value
End With
Me.Namen.AddItem
Namen.List(Namen.ListCount - 1, 0) = Cells(i, 4)
Namen.List(Namen.ListCount - 1, 1) = Cells(i, 5)
Namen.List(Namen.ListCount - 1, 2) = Cells(i, 6)
Namen.List(Namen.ListCount - 1, 3) = Cells(i, 7)
Namen.List(Namen.ListCount - 1, 4) = i
Next i
Worksheets("Dateneingabe").Select
Application.ScreenUpdating = True
End Sub
Bei Klick auf die Schaltfläche "Schriftstück zustellen" frage ich die Auswahl der Listbox mit _
folgendem Code ab:
Private Sub Anlegen_Click()
Dim j As Integer
Dim lngZaehler As Long
Dim lngLetzte As Long
Dim lngZeile As Long
Dim ZielZeile As Variant
Dim blnVorhanden As Boolean
If Namen.ListIndex = -1 Then
MsgBox "Bitte in der Liste eine Auswahl treffen.", 48, " Hinweis für " & Application. _
UserName
TextBox1.SetFocus
Exit Sub
End If
With Worksheets("Zustellung")
lngLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 4)), _
.Cells(.Rows.Count, 4).End(xlUp).Row, .Rows.Count)
End With
With Namen
For j = 0 To .ListCount - 1
If .Selected(j) Then
For lngZeile = 1 To lngLetzte
If Sheets("Zustellung").Cells(lngZeile, 4) = .List(j, 0) And _
Sheets("Zustellung").Cells(lngZeile, 5) = .List(j, 1) _
And Sheets("Zustellung").Cells(lngZeile, 6) = .List(j, 2) Then
blnVorhanden = False
Exit For
End If
Next lngZeile
If blnVorhanden = False Then
Papier_zustellen.Show
Exit Sub
End If
blnVorhanden = True
End If
Next
End With
End Sub
Hierbei wird die Userform "Papier_zustellen" geöffnet und die Daten aus der Listbox werden eingelesen. Das klappt auch so.
Was ich jetzt noch möchte ist, dass geprüft wird, ob die in der Listbox ausgewählte Person im Tabellenblatt "Verbot" schon angelegt ist (gleicher Familienname, gleicher Vorname, gleiches Geburtsdatum).
Trifft dies zu und beim Schriftstück das in der Listbox gewählt wurde handelt es sich um "Verbot" oder "Verlängerung Verbot" dann soll nicht die Userform "Papier_zustellen" geöffnet werden sondern die Userform "Verlängerung".
Kriege es einfach nicht hin.
Eine Musterdatei habe ich hochgeladen.
https://www.herber.de/bbs/user/88705.xlsm
Danke für die Hilfe
Werner