1.7k Aufrufe
in Tabellenkalkulation von Mitglied (439 Punkte)
Hallo zusammen,

das ist wahrscheinlich ganz einfach, aber ich kriege es einfach nicht hin.

Bei einer Änderung in Zelle A1 soll eine Prozedur ausgelöst werden. Also so:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Call Makro1
End If
End Sub


So weit so gut. Anstelle von "A1" möchte aber einen bestimmten Bereich als Adresse haben, damit das Ereignismakro auch dann noch funktioniert, wenn ich z. B. Zeilen über A1 einfüge.

So etwas wie
If Target.Address = Range("mein_Bereich") Then
geht leider nicht.

Könnt ihr mir helfen?

Danke und Gruß, Heiko1985

2 Antworten

0 Punkte
von m-o Profi (22.9k Punkte)
Hallo Heiko,

wenn das Makro nur in einem bestimmten Bereich ausgeführt werden soll, dann musst du INTERSECT benutzen.

Bei dem folgenden Makro kommt die Messagebox nur, wenn in den mit Range bestimmten Bereichen und Zellen eine Zelle geändert wird:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1:A10,B2,C5:D10")) Is Nothing Then

MsgBox "Hello"

End If

End Sub


oder falls du einen Bereich definiert hast so:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("Mein_Bereich")) Is Nothing Then

MsgBox "Hello"

End If

End Sub


Gruß

M.O.
0 Punkte
von Mitglied (439 Punkte)
Hat geklappt. Vielen Dank!

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...