Excel VBA Worksheet Change

suboptimal

Ensign
Registriert
Feb. 2007
Beiträge
208
Hi,

bin in Excel VBA nicht wirklich bewandert, würde aber gerne ein Skript aufrufen, wenn sich in bestimmten Zellen eines Sheets etwas ändert.

Das Problem ist, wenn ich das Ganze testweise versuche zu implementieren, geht gar nichts.

So gehe ich vor:

- Ich lege ein Mako mit dem Namen "Worksheet_Change an und formuliere das so aus:

Private Sub Worksheet_Change(ByVal Target as Range)
MsgBox("xyz")
end Sub

Ich habe auch schon verschiedene Ranges angegeben, aber nichts funktionierte. :(

Woran liegts?
 
Hallo!

Du darfst das nicht als normale Makro anlegen. Öffne mal eine Makro zum Edititieren. Links oben steht "VBA Projekt (Name deiner Datei)" und darunter die Tabellenblätter. Nun klicke mal das Tabellenblatt, das überwacht werden soll doppelt an und füge hier deine Makro ein.

Private Sub Worksheet_Change(ByVal Target as Range)
MsgBox("xyz")
end Sub

Dadurch wird der Befehl aber bei jeder Änderung durchgeführt. Auf einzelne Zellen muss Du das "zu Fuß" begrenzen.

Gruß

eddi
 
Funktioniert. Vielen Dank!

Ja, in Range kann ich ja nur Bereiche, bzw. eine einzelne Zelle angeben. D.h. ich müsste für einzelne Zellen mehrere solcher Methoden anlegen?
 
Wenn du immer das gleiche ausführen möchtest, kannst du das auch über eine Select Case Abfrage machen:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Select Case Target.Address(False, False, xlA1)
    Case "A1", "B5"
        MsgBox "hallo"
    Case Else
    End Select
End Sub
 
Kannst du so lösen:
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  If Not Intersect(Target, Range("B5,D4")) Is Nothing Then MsgBox ("blubb")
 End Sub
 
Danke Euch Beiden!
 
Zurück
Oben