Post by Willy SteffenDie Zeilen bis und mit 5 sind durch den Blattschutz geschützt. In der Zeile
6 sind u.a. in spezifizierten Spalten Formeln in den Zellen. Die Tabelle
endet z. B. mit Zeilennr, 100. Ich habe diesen Zeilenbereich mit dem Namen
"TabEnde" versehen.
Zwischen der Zeile 6 und 100 kann ich nun mit Makros die Tabelle vergrössern
oder verkleinern, etc. Mit dem Makro "Linie einfügen" kopiere ich jeweils die
obere Zeila nach unten, deshalb darf die Zeile Nr. 6 wegen den Formeln nicht
gelöscht werden können.
Ich muss mich mal über die Befehle OnKey und OnAction informieren.
Hallo Willy,
"TabEnde" war zuvor eine *Zeile*, jetzt ist es ein *Bereich*.
Zuvor sollte die Zeile "TabEnde" nicht gelöscht erden können, jetzt willst
Du TabEnde "vergrößern oder *verkleinern* ".
Das ist ein bischen irreführend.
Ich gehe jetzt davon aus, dass *nur_Zeile_6* nicht gelöscht werden darf.
In Zeile 6 setzt Du in eine freie Spalte irgendetwas, z. B. "x" (ohne "").
Ich habe hierfür J6 vorgesehen.
-------------------------
In das Modul "Diese Arbeitsmappe"
Private Sub Workbook_Open()
Marker = Sheets("Tabelle1").Range("J6").Value
End Sub
-----------------------
In ein "normales" Modul:
Public Marker
Sub WertSetzen()
Marker = Sheets("Tabelle1").Range("J6").Value
End Sub
-------------------------------------------
In das Modul des Tabellenblattes (bei mir Tabelle1):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 6 Then
Application.EnableEvents = False
If Range("J6").Value <> Marker Then
Application.Undo
End If
Application.EnableEvents = True
End If
End Sub
Vor dem ersten Versuch musst Du das Sub WertSetzen von Hand starten.
Wenn die Zeile 6 gelöscht wird, der ursprüngliche Wert J6 also nicht mehr
existiert, dann ist das neue J6 <> dem Wert der Public Marker und die
Aktion (Löschen der Zeile) wird rückgängig gemacht.
--
Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de