mit folgendem Code schreibe ich Daten aus einer 3-spaltigen Listbox in die Tabellenblätter "Personalien" und "Dummy".
Jetzt bräuchte ich noch eine Prüfung, ob der Familienname, der Vorname und das Geburtsdatum (j, 0 / j, 1 / j, 2 der Listbox) im Tabellenblatt "Personalien" schon vorhanden sind (Familienname in D5:D100, Vorname in E5:E100, Geburtsdatum in F5:F100).
Wenn ja, dann soll nichts in die Tabellenblätter geschrieben werden sondern eine Messagebox auf den Umstand hinweisen und das Makro beendet werden.
Private Sub Anlegen_Click()
Dim j As Integer
Application.ScreenUpdating = False
If Personalien.ListIndex = -1 Then
MsgBox "Bitte in der Liste eine Auswahl treffen.", 48, " Hinweis für " & Application. _
UserName
TextBox1.SetFocus
Exit Sub
End If
If Von = "" Then
MsgBox "Bitte ein gültiges Datum eingeben.", 48, " Hinweis für " & Application.UserName
Von.SetFocus
Exit Sub
End If
With Von
.SelStart = 0
.SelLength = Len(.Text)
End With
Von.SetFocus
Exit Sub
End If
If Bis = "" Then
MsgBox "Bitte ein gültiges Datum eingeben.", 48, " Hinweis für " & Application.UserName
Bis.SetFocus
Exit Sub
End If
With Bis
.SelStart = 0
.SelLength = Len(.Text)
End With
Bis.SetFocus
Exit Sub
End If
Worksheets("Daten").Unprotect Password:="*****"
Worksheets("Dummy").Unprotect Password:="*****"
Worksheets("Personalien").Unprotect Password:="*****"
With Personalien
For j = 0 To .ListCount - 1
If .Selected(j) Then
Sheets("Personalien").Cells(Rows.Count, 4).End(xlUp).Offset(1) = .List(j, 0)
Sheets("Personalien").Cells(Rows.Count, 5).End(xlUp).Offset(1) = .List(j, 1)
Sheets("Personalien").Cells(Rows.Count, 6).End(xlUp).Offset(1) = .List(j, 2)
Sheets("Personalien").Cells(Rows.Count, 4).End(xlUp).Offset(, 3) = "anwesend"
Sheets("Personalien").Cells(Rows.Count, 4).End(xlUp).Offset(, 4) = CDate(Von)
Sheets("Personalien").Cells(Rows.Count, 4).End(xlUp).Offset(, 5) = CDate(Bis)
Sheets("Dummy").Cells(Rows.Count, 4).End(xlUp).Offset(1) = .List(j, 0)
Sheets("Dummy").Cells(Rows.Count, 5).End(xlUp).Offset(1) = .List(j, 1)
Sheets("Dummy").Cells(Rows.Count, 6).End(xlUp).Offset(1) = .List(j, 2)
Sheets("Dummy").Cells(Rows.Count, 4).End(xlUp).Offset(, 4) = CDate(Von)
Sheets("Dummy").Cells(Rows.Count, 4).End(xlUp).Offset(, 5) = CDate(Bis)
Personalien.RemoveItem (j)
End If
Next
End With
Worksheets("Dateneingabe").Activate
Worksheets("Personalien").Protect Password:="*****"
Worksheets("Jahrestabelle").Protect Password:="*****"
Worksheets("Dummy").Protect Password:="*****"
Aufenthaltsverbot.Von = ""
Aufenthaltsverbot.Bis = ""
Unload Me
Application.ScreenUpdating = True
End Sub
Wahrscheinlich nicht sehr schwierig (wenn man weiß wie es geht). Ich kriege es leider nicht hin.Gruß Werner