Hallo Bernd und Community
Mit Kommentare hast du den Überblick der Programmierung verloren!
Besser so!
VBA in Excel Namenskonventionen!
https://de.wikibooks.org/wiki/VBA_in_Excel/_Namenskonventionen
Weitere definierte Variablen eindeutig benennen!
Varianten des Worksheet_Change Ereignisses!
Ohne Ereiggnissausschaltung da kein Cellinhalt verändert wird!
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
MsgBox Target.Text
End If
End Sub
Mit Ereiggnissausschaltung da das aufrufende Makro Cellinhalte verändert
anderenfalls entsteht ein Circlebezug der das Ereigniss erneut aufruft!
Dem aufrufenden Makro wird die Addresse der veränderten Zelle übergeben
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("A1")) Is Nothing Then
Call DeinMakroName(Target.Address)
End If
Application.EnableEvents = True
End Sub
Sub DeinMakroName(AddTarget As String)
Range(AddTarget) = "Hallo Welt"
End Sub
Bereich Abfrage!
Mit Ereiggnissausschaltung da Cellzugriffe erfolgen
wahlweise auch Makro oder Functionsaufruf
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("A1:A3")) Is Nothing Then
Select Case Target.Address
Case "$A$1"
Cells(1, 1) = "1"
Case "$A$2"
Cells(2, 1) = "2"
Case "$A$3"
Cells(3, 1) = "3"
End Select
End If
Application.EnableEvents = True
End Sub
Das sollte zum Anfang erstmal reichen!
Deine Anforderungen im Worksheet_Chang Ereigniss kannst du nun vielleicht besser umsetzen!
Dann das Makro in Angriff nehmen!
Gruß Michael
|