HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
xlKing
29.04.2026 23:25:25
AW: Zeilen löschen verhindern ohne Blattschutz
Guten Abend,

ich hatte doch geschrieben, dass du auch die anderen Codeteile aus dem vorherigen Code übernehmen sollst. Ich kann nicht wissen, was du sonst noch an Code in dem Blatt hast. Daher nimm den vorherigen Code, ersetze das Worksheet_Change_Makro durch den neuen Code und ergänze das Ganze mit deinen anderen Codes. Hier nochmal der aktuell bekannte Code in Komplettform. Wichtig dabei ist, dass die Deklaration der Variable urrc ganz oben als erste Zeile im Blatt-Modul steht.
Dim urrc As Long


Private Sub Worksheet_Activate()
urrc = Me.UsedRange.Rows.Count
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Me.UsedRange.Rows.Count < urrc Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Bitte keine Zeilen löschen, nur leeren"

' Bereich A4:A93 – Buchungsart prüfen
ElseIf Not Intersect(Target, Me.Range("A4:A93")) Is Nothing Then
Call Buchungsart_Geändert(Target)

' Bereich B4:B93 – Datum prüfen und konvertieren
ElseIf Not Intersect(Target, Me.Range("B4:B93")) Is Nothing Then
Call DatumKonvertieren(Target)

' Bereich C3:C93 – Formel wiederherstellen falls gelöscht
ElseIf Not Intersect(Target, Me.Range("C3:C93")) Is Nothing Then

' Nur bei Einzelzellen-Auswahl reagieren
If Target.Cells.CountLarge = 1 Then
If Target.Value = "" Then
Application.EnableEvents = False
On Error Resume Next
If Target.Row = 3 Then
Target.Value = 0
Else
Target.Formula = "=J" & Target.Row
End If
On Error GoTo 0
Application.EnableEvents = True
End If
End If
End If

End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
urrc = Me.UsedRange.Rows.Count
End Sub

Gruß Mr. K.
Als Antwort auf diesen Beitrag
Ringberger
29.04.2026 20:46:16
AW: Zeilen löschen verhindern ohne Blattschutz
Hallo,

danke noch einmal für die Mühe. Aber es funktioniert leider nicht. Beim Versuch eine Zeile zu löschen, wird in der zweiten Zeile des Codes "urrc" blau markiert und es erscheint die Meldung: "Fehler beim Kompilieren: Variable nicht definiert". In der vorhergehenden Version war noch als zweite Zeile die Zeile "urrc = Me.UsedRange.Rows.Count" vorhanden. Auch damit erhalte ich die selbe Meldung. In jedem Fall ist die zu schützende Zeile dann doch gelöscht. Der Bezug zu den folgenden Zeilen ist dann auch nicht mehr gegeben.
Vielleicht gibt es ja doch noch eine Lösung.

Danke

Andreas
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.