Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro aktivieren aufgrund von Referenzänderung

Forumthread: Makro aktivieren aufgrund von Referenzänderung

Makro aktivieren aufgrund von Referenzänderung
09.08.2004 11:04:26
Referenzänderung
Hi!
Ich habe ein Makro geschrieben welches aktiviert werden soll, wenn sich der Inhalt einer Zelle (aufgrund der Referenz) ändert - nicht durch direkte Eingabe, deswegen funktioniert "Private Sub Worksheet_Change" nicht.
Hat jemand eine Idee wie das funktionieren kann?
Für Ideen/Lösungen/Input wäre ich sehr dankbar.
MfG Thomas
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro aktivieren aufgrund von Referenzänderung
Referenzänderung
Verwende das Calculate- Ereignis
Ulf
AW: Makro aktivieren aufgrund von Referenzänderung
Referenzänderung
Hi Thomas,
dafür gibt es das Calculate-Ereignis.
Speicher den fraglichen Zellinhalt in einer Public-Variablen und gleiche ihn dann innerhalb des Calculate-Ereignisses entsprechend ab.
Bei Ungleichheit: Dein Makro ausführen und neuen Wert an Public-Variable übergeben.
Grüße Boris
Anzeige
AW: Makro aktivieren aufgrund von Referenzänderung
Referenzänderung
Danke für den Tipp! Leider bin ich kompletter Anfänger bezüglich VBA. Kann mir jemand ein ganz kurzes Codebsp. posten wo ich sehe wie man eine VBA Variable public definiert/deklariert und dieser einen Zellenwert zuweist?
Danke im Voraus
Thomas
AW: Makro aktivieren aufgrund von Referenzänderung
Referenzänderung
Hi Thomas,
in einem allgemeinen Modul deklarierst du die Public-Variable und hinterlegst den entsprechenden Code für den Fall, wenn sich der Wert ändert:
Public oldValue As Variant
Sub Dein_Makro()
MsgBox "Huhu!"
End Sub
Dann im Klassenmodul der entsprechenden Tabelle folgender Code (überprüft wird der Wert aus A1):

Private Sub Worksheet_Calculate()
If oldValue = "" Then oldValue = [a1]
If oldValue <> [a1] Then
Call Dein_Makro
oldValue = [a1]
End If
End Sub

Grüße Boris
Anzeige
Nachtrag:
Boris
Um auch sicher zu gehen, dass das Calculate-Ereignis angestoßen wird, schreibe in irgendeine Zelle die Funktion =ZUFALLSZAHL()
Grüße Boris
AW: Nachtrag:
Thomas
Danke für die detaillierte erklärung! Es funktioniert jetzt so wie es soll, leider habe ich noch ein Problem: seid ich das Makro nun angepasst habe, bekomme ich jedesmal einen Fehler bei Range("...").Select oder Row("...").Select Befehlen.
Muss ich erst das Sheet Active setzen oder andere Befehle verwenden?
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige