Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1516to1520
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ereignisabhängige Prozedur

ereignisabhängige Prozedur
14.10.2016 08:57:11
Klaus
Hallo,
ich habe folgende Frage: Ich habe erste Versuche mit ereignisabhängigen Prozeduren gemacht, und zwar als erstes mit "worksheet_change()". Dabei geht es ja darum, dass eine Prozedur dann automatisch gestartet werden soll, wenn in einem bestimmten Zellbereich eine Veränderung des Inhalts durchgeführt wird. Leider findet sich zu diesem Befehl keinerlei Hilfe in der VBA/Excel-Hilfe.
Als erstes ist mir die Syntax nicht klar, wie der Parameter (nämlich der Zellbereich, auf den sich das Ereignis beziehen soll) übergeben werden soll.
Mein erster Versuch war

Private Sub Worksheet_Change(A1)
End Sub

wobei A1 die Zelle sein sollte, deren Veränderung die Prozedur auslösen sollte.
Daraufhin (d.h., sobald ich in irgendeiner Zelle des Tabellenblatts eine Veränderung vornehme) meldet das Programm: "Fehler beim Kompilieren: Deklaration der Prozedur entspricht nicht der Beschreibung eines Ereignisses oder einer Prozedur mit demselben Namen".
Was mich weiterhin verwirrt: Die Prozedur (bzw. der Versuch der Kompilierung) springt an, egal in welcher Zelle ich eine Veränderung vornehme, der Parameter "A1" hat also keine Auswirkung.
Hat jemand eine Idee, woran das alles liegen könnte?
Wieder mal vielen Dank im voraus für alle sachdienlichen Hinweise,
Klaus

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ereignisabhängige Prozedur
14.10.2016 09:31:37
baschti007
Hey Klaus so müsstest du das dann machen =)
Gruß Basti

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
MsgBox "A1 hat sich geändert"
End If
End Sub

AW: ereignisabhängige Prozedur
14.10.2016 11:03:55
Klaus
Hallo, Basti,
vielen Dank - so klappt's!
Grüße,
Klaus
AW: ereignisabhängige Prozedur
14.10.2016 09:32:39
Nepumuk
Hallo,
wähle in der linken Combobox über dem Codefenster das Objekt Worksheet aus. Dann kannst du in der rechten Combobox das Ereignis Change auswählen. So hast du die korrekte Syntax für das Ereignis. Um auf die Änderung der Zelle A1 zu reagieren gehst du wie folgt vor:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then MsgBox "Hallo"
End Sub

Gruß
Nepumuk
Anzeige
AW: ereignisabhängige Prozedur
14.10.2016 09:37:42
KlausF
Hallo Klaus,
die erste Zeile darfst Du bei den Event-Makros nie verändern.
Du kannst entweder den Bereich explizit angeben
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$1" Then
     'Hier steht das was passieren soll
  End If
End Sub
oder Du lässt das Event-Makro gar nicht erst starten wenn andere
Zellen ausgewählt sind:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address  "$A$1" Then Exit Sub
     'Hier steht das was passieren soll
End Sub
Gruß
auch Klaus
Anzeige
AW: ereignisabhängige Prozedur
14.10.2016 11:08:23
Klaus
Hallo, Klaus und Nepomuk,
auch euch vielen Dank für den prompten Rat, hat mir sehr geholfen. Bin immer wieder begeistert hier ...
Klaus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige