Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
436to440
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
436to440
436to440
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Calculate-Ereignis auslösende Zelle ermitteln

Calculate-Ereignis auslösende Zelle ermitteln
08.06.2004 15:02:23
Peter
Hallo Excel-Freunde,
Wie kann ich die R- und C-Werte (Row & Column) einer Zelle, die gerade ein calculate-Ereignis ausgelöst hat, in Variablen schreiben.
Weiß jemand bescheid?
AW: Calculate-Ereignis auslösende Zelle ermitteln
Ulf
Wodurch wird denn das Ereignis ausgelöst? Es muss sich ja irgendwas an der
Mappe oder dem Sheet ändern, damit neu berechnet wird.
Ulf
Hier ein einfaches Beispiel
Peter
In Zelle A1 steht z.B. die Formel "=B1*2" und in Zelle A2 die Formel "=B2*2".
Je nachdem ob ich jetzt entweder in B1 oder in B2 einen neuen Wert eingebe, wird auch der Wert entweder von Zelle A1 oder von Zelle A2 neu berechnet.
In beiden Fällen wird damit ein worksheet_calculate Ereignis erzeugt, welches mir eine Messagebox "Der Wert in Zelle: (Zeile 2, Spalte 1) wurde soeben neu berechnet!" liefern soll wenn in B2 ein neuer Wert eingegeben wurde (entsprechend anders natürlich wenn in B1 ein neuer Wert eingegeben wurde).
Verständlich?
Anzeige
AW: Hier ein einfaches Beispiel
Ulf
Frag im Change- Ereignis die direkte Nachfolgerzelle ab, das muss für dein
Beispiel die sein, die die Berechnung auslöst.
Ulf
AW: Hier ein einfaches Beispiel
Peter
Klingt gut!
Mit welchen Befehlen krieg' ich das hin?
Ein kurzer Script wäre gut!!
AW: Hier ein einfacher Code
Ulf
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim dd As Range, c As Range
If Target.Count > 1 Then Exit Sub
On Error GoTo errH
Set dd = Target.DirectDependents
For Each c In dd.Cells
MsgBox c.Address(0, 0)
Next
Exit Sub
errH:
End Sub

Ulf
AW: Hier ein einfacher Code
Peter
Vielen Dank Ulf !
Das ist ziemlich genau was ich suchte !!!
Ich frage mich jetzt nur noch ob das gleiche mit einer Worksheet_Calculate-Routine erzielt werden kann. Der Unterschied zwischen dem Change- und dem Calculate-Ereignis ist zwar klein ... aber fein!
Anzeige
AW: Calculate-Ereignis auslösende Zelle ermitteln
ChrisL
Hi Peter
Wird eine Zelle geändert (Worksheet_Change resp. Target) dann wir ein Calculate (Neuberechnung) der gesamten Tabelle ausgelöst. Excel berechnet sämtliche Zellen der Tabelle neu. Das Calculate Ereignis kennt somit kein "Target".
Gruss
Chris
AW: Calculate-Ereignis auslösende Zelle ermitteln
Peter
Danke für die Erklärung Chris...klingt einleuchtend!
Ich hatte mir auch schon fast sowas gedacht!!!
Vielleicht fällt jemandem trotzdem eine Lösung bzw. einen workaround für die Aufgabenstellung ein?
Im Prinzip suche ich also die Position (Zeile/Spalte) derjenigen Zelle, die letzten Endes das Worksheet_Calculate-Ereignis tatsächlich ausgelöst hat. Irgendeine Zelle muß doch irgendwie "als Erste" dieses Ereignis erzeugen, oder?
Anzeige
AW: Calculate-Ereignis auslösende Zelle ermitteln
ChrisL
Hi Peter
Wenn du die Frage so formulierst ist es ganz einfach... jede Änderung einer Zelle löst ein Calculate-Ereignis aus, folglich kannst du das Change-Ereignis Abfangen.
Bezogen auf dein Beispiel von vorhin könntest du einschränken auf Spalte A.
If Target.Column = 1 Then MsgBox "Änderung in Zelle A" & Target.Row
Gruss
Chris
AW: Calculate-Ereignis auslösende Zelle ermitteln
09.06.2004 08:45:10
Thomas
Grüezi Chris
Darf ich mich hier kurz einklinken?
Bei der Veränderung einer Zelle durch eine Neueigabe wird mitnichten die ganze Tabelle neu berechnet.
Excel baut eine sogenannte 'Calculate-Chain' auf, welche alle von der Eingabe-Zelle abhängigen Zellen beinhaltet, und läuft diese dann durch.
Zellen mit Formeln die sich *nicht* auf die veränderte Zelle beziehen (sei es direkt oder indirekt über andere Formeln) werden nich neu berechnet - dazu besteht ja auch keine Veranlassung.
Auf diese Weise wird die Berechnungszeit im Minimalbereich gehalten.
Mit freundlichen Grüssen
Thomas Ramel
- MVP für Microsoft-Excel -
[Win XP Pro SP-1 / xl2000 SP-3]
Anzeige
AW: Calculate-Ereignis auslösende Zelle ermitteln
ChrisL
Salut Thomas
Danke für die Erklärung, man lernt nie aus.
Aber bezogen auf die Frage siehst du auch keine Möglichkeit, aufgrund des Calculate Ereignisses die geänderte Zelle zu eruieren oder doch?
Herzliche Grüsse
Chris
"Calculate-Chain"
Peter
Moin zusammen,
Genau!!! "Calculate-Chain" ist das Stichwort!
Mich würde jetzt interessieren ob es möglich ist, sich diese Kette von "betroffenen" Zellen anhand einer Worksheet_Calculate-Routine (in der richtigen Reihenfolge) angeben zu lassen.
In etwa so, wie es mit der Worksheet_Change-Routine von Ulf - etwas weiter oben - mit Target.DirectDependents wunderbar klappt.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige