Hallo Milli,
wenn ich das richtig sehe, müsste das so sein:
Private Sub cmdSave_Click() ' Daten übertragen , Datei – Speichern [aktive Arbeitsmappe]
Dim lZeile As Long
Dim rngRow As Range
If lstData.ListIndex = -1 Then Exit Sub
If Trim(CStr(txtPosNr.Text)) = "" Then
MsgBox "Sie müssen mindestens eine Nummer eingeben!", vbCritical + vbOKOnly, "FEHLER!"
Exit Sub
End If
'Zeile suchen und auslesen
If seekArb(txtPosNr, rngRow) Then 'Werte übernehmen
Worksheets("ArbTab").Unprotect
rngRow.Cells(, colAtPosNr).Value = Trim(CStr(txtPosNr.Text))
rngRow.Cells(, colAtNummer).Value = txtnummer.Text
rngRow.Cells(, colAtAnrede).Value = txtAnrede.Text
rngRow.Cells(, colAtNachname).Value = txtNachname.Text
rngRow.Cells(, colAtVorname).Value = txtVorname.Text
rngRow.Cells(, colAtStrasse).Value = txtStrasse.Text
rngRow.Cells(, colAtWohnort).Value = txtWohnort.Text
rngRow.Cells(, colAtTelefon).Value = txtTelefon.Text
If IsDate(txtGeburtstag.Text) Then rngRow.Cells(, colAtGeburtstag).Value = CDate(txtGeburtstag.Text) 'Datumsfeld mit Format
If IsDate(txtEintritt.Text) Then rngRow.Cells(, colAtEintritt).Value = CDate(txtEintritt.Text) 'Datumsfeld mit Format
If IsDate(txtAustritt.Text) Then rngRow.Cells(, colAtAustritt).Value = CDate(txtAustritt.Text) 'Datumsfeld mit Format
If IsDate(txtgenBis.Text) Then rngRow.Cells(, colAtgenBis).Value = CDate(txtgenBis.Text) 'Datumsfeld mit Format
rngRow.Cells(, colAtGruppe).Value = txtgruppe.Text
rngRow.Cells(, colAtKrankenkasse).Value = txtkrankenkasse.Text
rngRow.Cells(, colAtKrKNr).Value = txtKrKNr.Text
rngRow.Cells(, colAtBemerkung).Value = TxTBemerkung.Text
rngRow.Cells(, colAtZahlung).Value = TxTZahlung.Text
Worksheets("ArbTab").Protect
'User Formular neu laden
Call UserForm_Initialize
Else
MsgBox "Nummer " & txtPosNr.Text & " nicht gefunden", vbExclamation + vbOKOnly
End If
Call cmdNew_Click
End Sub
Du hast hier ja viele Tabellen ausgeblendet und ich weiß nicht, ob die User nur mit der Eingabemaske arbeiten sollen, oder auch auf die Tabellen zugreifen können.
Wenn du Tabellen so ausblenden willst, dass man sie nicht mit Rechtsklick auf den Reiter über "Tabellen einblenden" wieder einblenden kann, dann nutze den folgenden Befehl:
Worksheets("Tabelle1").Visible = xlVeryHidden
Ein so ausgeblendetes Arbeitsblatt kann nur per VBA wieder eingeblendet werden:
Worksheets("Tabelle1").Visible = True
Dann kannst du ggf. auf den Blattschutz verzichten.
Gruß
M.O.