05.12.2020, 11:42
Werte Excel-Freunde
Ich habe nachfolgendes Makro (zu Teilen mit Hilfe des Forums) erstellt, welches z.B. eine Aktion beim Einfügen einer Zeile ausführt.
Wie geschrieben wird es ausgeführt nach "If Target.Row > 54 Then…"
In den Zeilen 1 – 54 stehen aber wichtige Formeln, sodass beim Einfügen einer Zeile dort die ganze Berechnung zerstört würde.
Deshalb benötige ich vor „If Target.Row > 54 Then“ im Makro einen Zusatz, der das Einfügen einer Zeile von Zeile 1-54 unterbindet, vielleicht sogar mit einer MSG Box „Zeilen einfügen bis Zeile 55nicht möglich“. Das ist sehr wichtig, weil selbst das Löschen einer versehentlich bis Zeile 54 eingefügten Zeile die Berechnung zerstören würde.
Nachfolgend das schon vorgandene Makro.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngRange As Range
Dim lngTMP As Long
If Not Intersect(Target, Range("AD44")) Is Nothing Then Filtern_in_Zonen
If Not Intersect(Target, Range("AB40")) Is Nothing Then TabName
If Target.Row > 54 Then
If Target.Cells.Count = Me.Columns.Count Then
If Target.Rows.Count = 1 Then
On Error GoTo Fin
Set rngRange = Target.Offset(1, 0)
lngTMP = rngRange.Row
With Application
.EnableEvents = False
.ScreenUpdating = False
.Undo
If rngRange.Row < lngTMP Then lngTMP = 1 Else lngTMP = 0
.Repeat
End With
If lngTMP = 1 Then
Cells(3, 27).Value = rngRange.Row - 1
Zeile_in_Zone_einfuegen
End If
End If
End If
End If
Fin:
Set rngRange = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
If Err.Number <> 0 Then MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub
Für eventuelle Hilfestellungen bedanke ich mich schon im Voraus.
LG Guntram
Ich habe nachfolgendes Makro (zu Teilen mit Hilfe des Forums) erstellt, welches z.B. eine Aktion beim Einfügen einer Zeile ausführt.
Wie geschrieben wird es ausgeführt nach "If Target.Row > 54 Then…"
In den Zeilen 1 – 54 stehen aber wichtige Formeln, sodass beim Einfügen einer Zeile dort die ganze Berechnung zerstört würde.
Deshalb benötige ich vor „If Target.Row > 54 Then“ im Makro einen Zusatz, der das Einfügen einer Zeile von Zeile 1-54 unterbindet, vielleicht sogar mit einer MSG Box „Zeilen einfügen bis Zeile 55nicht möglich“. Das ist sehr wichtig, weil selbst das Löschen einer versehentlich bis Zeile 54 eingefügten Zeile die Berechnung zerstören würde.
Nachfolgend das schon vorgandene Makro.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngRange As Range
Dim lngTMP As Long
If Not Intersect(Target, Range("AD44")) Is Nothing Then Filtern_in_Zonen
If Not Intersect(Target, Range("AB40")) Is Nothing Then TabName
If Target.Row > 54 Then
If Target.Cells.Count = Me.Columns.Count Then
If Target.Rows.Count = 1 Then
On Error GoTo Fin
Set rngRange = Target.Offset(1, 0)
lngTMP = rngRange.Row
With Application
.EnableEvents = False
.ScreenUpdating = False
.Undo
If rngRange.Row < lngTMP Then lngTMP = 1 Else lngTMP = 0
.Repeat
End With
If lngTMP = 1 Then
Cells(3, 27).Value = rngRange.Row - 1
Zeile_in_Zone_einfuegen
End If
End If
End If
End If
Fin:
Set rngRange = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
If Err.Number <> 0 Then MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub
Für eventuelle Hilfestellungen bedanke ich mich schon im Voraus.
LG Guntram