Grundsätzlich zum Hintergrund:
Ich habe eine Excel-Tabelle in der einige Bereiche (Range A1:A15 und Range A1:F1) nicht bearbeitet werden dürfen. In der Matrix dazwischen dürfen NUR Zahlen eingefügt werden, dh. keine Spalten usw.
Zusätzlich soll unter diesem gesamten Bereich ALLES möglich sein… also auch Formatierungen.
Das geht leider mit der Funktion „Blatt schützen“ nicht. Also hab ich mir überlegt, dass die Funktion „Zellen einfügen“ in der oberen Matrix gesperrt wird. Sobald ein User in diesem Bereich eine Zelle einfügen möchte, kommt z.B. eine MsgBox und somit wird die Handlung unterbrochen.
Ich hoffe ich hab mich annährend verständlich ausgedrückt…
Ich habe - zwar aus anderem Grunde - eben mit dem starten von Makros aus einer Aktion heraus gespielt. Eventuell ist es möglich, ein Makro zu schreiben, welches auf eine Veränderung innerhalb eines Tabellenblattes reagiert. Ich habe da so einen Schnipsel:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = „$A$4“ Then
'Makrocode
End If
End Sub
der bewirken soll, dass wenn in Zelle A4 etwas geändert wird, ein Makro gestartet wird. Das hab ich im Internet gefunden - bei funktioniert es nicht. Das kann allerdings auch an anderen Parametern liegen.
Theoretisch müsstest du das eigentlich benutzen können, oder?
Ich habe eine Excel-Tabelle in der einige Bereiche (Range
A1:A15 und Range A1:F1) nicht bearbeitet werden dürfen. In der
Matrix dazwischen dürfen NUR Zahlen eingefügt werden, dh.
keine Spalten usw.
Zusätzlich soll unter diesem gesamten Bereich ALLES möglich
sein… also auch Formatierungen.
Hallo Ninchen,
sobald im Bereich A1:F15 etwas markiert wird so wird das Blatt geschützt.
Ist im Bereich A1:F15 nichts markiert wird der Blattschutz aufgehoben.
Rechtsklick unten auf den Tabellenreiter, „Code anzeigen“, dort gehört der Code hin.
Im Editor kannst du über Rechstklick auf das Projekt—Eigenschaften–Schutz ein Passwort für den Code vergeben sonst sieht ja jeder Neugierige das Passwort „abc“.
Private Sub Worksheet\_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:F15")) Is Nothing Then
ActiveSheet.Protect password:="abc", DrawingObjects:=True, Contents:=True, Scenarios:=True
Else
ActiveSheet.Unprotect password:="abc"
End If
End Sub