Excel - VBA: IF zeile eingefügt, THEN

Hallo ihr Lieben,

ich muss schon wieder mit einer Frage nerven… ich stehe gerade voll auf dem Schlauch.

Ich möchte in VBA mit einer IF-Abfrage überprüfen, sobald eine Zelle/Zeile eingefügt wird.

Quasi in folgender Art und Weise… nur dass das natürlich falsch ist:

If Selection.Insert Then
MsgBox „Zeile eingefügt“
End Sub

Über einen Tipp wäre ich sehr dankbar.

Liebe Grüße
Ninchen

Ich möchte in VBA mit einer IF-Abfrage überprüfen, sobald eine
Zelle/Zeile eingefügt wird.

Hallo Ninchen,

das geht nicht.

Außer du manipulierst alle Menüpunkte wo man Zellen/Zeilen einfügen kann und ersetzt sie durch eigenen Code.

Gruß
Reinhard

Hallo Ninchen.

Nur zum besseren Verständnis deiner Frage. Wann soll das Makro laufen?

a) In dem Moment, wo du eine Zeile einfügst oder
b) irgendwann später als Rückblick.

Für a) siehe Reinhard - für b) gäb es sicherlich was (notfalls umständliches).

Oh, auch nur so aus Interesse: Wofür brauchst du das (Makro) eigentlich? Müsstest du als Benutzerin nicht eh sehen, dass eine Zeile eigefügt wurde?

Grüße, Aiko.

Danke für deine Antwort.

Ich wollte eigentlich Version a) nutzen…

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…

Viele Grüße
Ninchen

Danke für deine Antwort.

Ich wollte eigentlich Version a) nutzen…

Hallo Ninchen.

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?

Grüße, Aiko.

Zeilen einfügen verhindern

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

Gruß
Reinhard