hi,
nun habe ich die Lösung:
in dem Löschen-Makro muß nochmal direkt der Blattschutz ausgeschaltet werden.
Dann hat es mit diesem Code funktioniert:
Code:
Sub Loeschen() 'Datensatz löschen
Sheets("Stammdaten").Unprotect
If MsgBox("FGGK: " & frm_UserForm1.Controls("TextBox" & 1).Value & " wirklich löschen?", vbYesNo) = vbYes Then
'MsgBox suchErgebnis.Row
Sheets("Stammdaten").ListObjects("Tabelle3").ListRows(suchErgebnis.Row - 6).Delete
End If
Sheets("Stammdaten").Protect AllowDeletingRows:=True
Call Controls_Urzustand1
End Sub
-6, weil da die Zeilen-Nummer der intelligenten Tabelle genommen wird und nicht die Blattzeile.
Die anderen vorgeschlagenen Code-Zeilen habe ich jetzt nicht mehr getestet.
Bei diesem Code
Code:
Sheets("Stammdaten").Unprotect
frm_UserForm1.Show
Sheets("Stammdaten").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowDeletingRows:=True
wird also nicht der Blattschutz aufgehoben, bis die Userform geschlossen wird, sondern nur so lange, bis das Userform-CodeModul verlassen wird. Wenn die Löschen-Sub also in einem allgemeinen Modul steht, dann ist der Blattschutz schon wieder aktiv.
PS: da das Tool für einen VBA-Anfänger entwickelt wurde, wird überall "Call" und ".Value" verwendet.