Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
464to468
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
464to468
464to468
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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
Anzeige
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
Nachtrag:
Boris
Um auch sicher zu gehen, dass das Calculate-Ereignis angestoßen wird, schreibe in irgendeine Zelle die Funktion =ZUFALLSZAHL()
Grüße Boris
Anzeige
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?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige