Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.UsedRange) Is Nothing Then
Application.EnableEvents = False
On Error Resume Next
Target.EntireRow.Delete
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Me.UsedRange) Is Nothing Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Bitte keine Zeilen löschen, nur leeren"
End If
End Sub
Option Explicit
Dim Zellen As Range
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As String
On Error Resume Next
x = Zellen.Address
On Error GoTo 0
If x = Target.Address Then
'--- normale Änderung
ElseIf x = "" Then
'--- Zellen wurden gelöscht
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Bitte keine Zellen löschen, nur leeren"
ElseIf x <> Target.Address Then
'--- Zellen wurden eingefügt
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Bitte keine Zellen einfügen"
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Zellen = Target
End Sub
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"
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
urrc = Me.UsedRange.Rows.Count
End Sub
'================================================================================
' Worksheet_Change: Reagiert auf Änderungen in der Tabelle
'================================================================================
Private Sub Worksheet_Change(ByVal Target As Range)
' Bereich A4:A93 – Buchungsart prüfen
If 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_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
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