Worksheet_Change(ByVal Target As Range)

Bild

Betrifft: Worksheet_Change(ByVal Target As Range) von: Rolli
Geschrieben am: 15.03.2005 17:19:29

Hallo Zusammen,

ich möchte ein Makro starten, wann immer eine Zelle geändert wird.
Mit 'Worksheet_Change(ByVal Target As Range)' funktioniert das ja schon ganz gut, solange ich die Zelle direkt neu beschreibe.

Wenn aber in der Zelle ein Verweis Z.B. =A5 steht, dann springt das Worksheet_Change Ereignis nicht an, wie kann ich diese Problem lösen.

Ich hoffe mir kann dabei jemand helfen.
Vorab schonmal herzlichen Dank.


Gruß
Rolli

Bild


Betrifft: AW: Worksheet_Change(ByVal Target As Range) von: Volker
Geschrieben am: 15.03.2005 17:32:03

Hallo Rolli,

wenn sich der Wert des Verweises ändert, muß sich doch auch zwangsläufig dessen
Quelle geändert haben, oder nicht?
Im Zweifelsfall nimmst Du das WS_Calculate Ereignis

Gruß
Volker


Bild


Betrifft: AW: Worksheet_Change(ByVal Target As Range) von: Rolli
Geschrieben am: 15.03.2005 17:38:00

Hallo Volker,

du hast natürlich recht, die Quelle ändert sich, kann aber auf einem anderen Blatt stehen.
Es wäre auch nötig, dass das Makro mehrfach durchlaufen wird, wenn sich mehrere Zellen durch eine Änderung der Quelle verändern.

Gruß
Ralph


Bild


Betrifft: AW: Worksheet_Change(ByVal Target As Range) von: Volker
Geschrieben am: 15.03.2005 17:43:56

Hallo Rolli,

mir ist grad siedend heiß eingefallen, dass im workbook ja auch eine sheetchange-Ereignis gibt:


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
End Sub


Gruß
Volker


Bild


Betrifft: AW: Worksheet_Change(ByVal Target As Range) von: Rolli
Geschrieben am: 15.03.2005 17:52:36

Hallo Volker,

und wie würde es dann weitergehen?.
Also lass mich mal mein Problem etwas näher beschreiben.

Ich habe in mehreren Spalten Zahlen stehen, abhängig von diesen Zahlen werden ab Spalte "G" in jeder Zeile in der Wete eingetragen sind automatisch Balken gezeichnet.

Wenn ich nun z.B. verschiedene Zeilen miteinander verknüpfe (z.B. =A5), und ändere nun "a5", dann sollen auch die Balken der Zeilen aktualisiert werden in der, der Verweis steht.

Das Problem ist nun, dass alle bisherigen Worksheet oder Workbook Ereigniss nur einmal durchlaufen werden oder aber ich habe keine Information über die Adresse der geänderten Zellen.

Ist ganz schön kompliziert - oder? Ich hoff trotzdem dass es verständlich ist.


Gruß
Rolli


Bild


Betrifft: Private Sub Worksheet_Calculate() von: ransi
Geschrieben am: 15.03.2005 18:08:37

hallo rolli

schau mal hier als ansatz:
https://www.herber.de/bbs/user/19708.xls
speichert a1 nach einer berechnung in der variablen "zelle". die kannst du nach der nächsten berechnung mit dem dann aktuellen a1 vergleichen und reagieren.


ransi


Bild


Betrifft: Profis an die Front von: Volker
Geschrieben am: 15.03.2005 18:16:21

Hallo Rolli,

ich glaub, jetzt ist der Groschen gefallen.
Mal so in die Tüte gesprochen: wie wär's, wenn Du die Berechnung auf manuell setzt und innerhalb der WS-Change auslöst.


Private Sub Worksheet_Change(ByVal Target As Range)
..code
Application.Calculate
..code
End Sub



Private Sub Worksheet_Calculate()
..code
End Sub


Leider hat das Calculate keine Parameter, aber immerhin kannst Du eine 2. Aktion auslösen.

Als letzte Alternative könntest Du die Werte der Verknüpfungen irgendwo zwischenspeichern und mit denen nach der Veränderung vergleichen und bei Abweichungen deine Balken neu Berechnen.

Zugegeben, etwas weit hergeholt, aber ich bin ehrlichgesagt mit meinem Latein am Ende.
Vielleicht erbarmt sich unser ja ein Profi ;-)

Gruß
Volker


Bild


Betrifft: AW: Profis an die Front von: Rolli
Geschrieben am: 16.03.2005 07:26:51

Hallo Volker,

das mit dem zwischenspeichern der Wete hab ich mir auch schon überlegt, aber momentan noch verdrängt, da das Ganze dann langsam werden wird.

Ich werd jetzt mal mit Deinem ersten Vorschlag weitermachen und den Target kann ich ja zwischenspeichern.

Herzlichen Dank

Gruß
Rolli


 Bild

Beiträge aus den Excel-Beispielen zum Thema "phonetische suche in spalte"