Clever-Excel-Forum

Normale Version: VBA nur ausführen, wenn eine bestimmte Zelle "aktualisiert" wird
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

(wie) kann ich, ein Makro nur ausführen, wenn eine bestimmte Zelle ( in meinem Fall "AK16" ) aktualisiert wird, das Makro ausgeführt wird.

Danke vorab!
Hi,

versuch mal in dem Worksheet 'Change' folgenden Code
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("AK16")) Is Nothing Then Call 'Hier den Name deines Makro

End Sub

Hm kann ich so leider nicht bestätigen, da sich das gesamte Makro weiterhin bei jeder Änderung aktuallisiert/abläuft
Hallo

und was genau ist dann anders??  Wie und wodurch äußert sich die Änderung??
Ohne möglichst genaue Infos können wir nicht nachvollziehen was da anders ist.
Vielleicht kannst du uns ja dein Makro hochladne, damit wir verstehen was sich ändert..

mfg Gast 123
Hallo a...,

zu
Zitat:Hm kann ich so leider nicht bestätigen, da sich das gesamte Makro weiterhin bei jeder Änderung aktuallisiert/abläuft

Der Vorschlag von JKH ist ein (wahrscheinlich zusätzliches) Ereignismakro, in dem dein Makro nur durchgeführt wird wenn in AK16 eine Änderung gemacht wurde. Du must deinen alten Prozess das Makro anzustossen natürlich entfernen.
Mir wird anhand eines Makros ein QR-Code aus vielen Kriterien erstellt, mich nervt es, dass dies jedesmal neu generiert wird (eigentlich nervt mich immer nur die 2-3 Sekunden Ladezeit) wenn ich nur einen Wert anpasse, mir reicht es, wenn ich einen bestimmten Wert ändere (einer der letzten) und erst dann der QR-Code neu generiert wird.
Hi,

im worksheet_change als erste Anweisung:

Code:
If intersect(target, Range("AK16") is nothing then exit sub
Moin,

ich würde Edgar's Empfehlung etwas abändern und generell von Exit Sub abraten. Besser ist m. E. einfach ein leerer Else-Zweig. Das hilft dabei, den Coder erweiterbar zu gestalten und vermeidet die nervenaufreibende Fehlersuche, die nur an einem übersehen Exit hängt.

Viele Grüße
derHöpp
(13.10.2023, 10:14)BoskoBiati schrieb: [ -> ]Hi,

im worksheet_change als erste Anweisung:

Code:
If intersect(target, Range("AK16") is nothing then exit sub

Dann gilt es aber wiederum für jedes Makro bzw. alles, ich möchte nur ein bestimmtes Makro ausführen, wenn eine bestimmte Zelle aktualisiert wird.


(13.10.2023, 10:23)derHoepp schrieb: [ -> ]Moin,
ich würde Edgar's Empfehlung etwas abändern und generell von Exit Sub abraten. Besser ist m. E. einfach ein leerer Else-Zweig. Das hilft dabei, den Coder erweiterbar zu gestalten und vermeidet die nervenaufreibende Fehlersuche, die nur an einem übersehen Exit hängt.
Viele Grüße
derHöpp

Hm, damit kann ich leider gar nichts anfangen >.<  
Hallo derHoepp,

ich halte es für deutlich sinnvoller, ein Makro sofort zu verlassen, wenn die aktive Zelle nicht im Bereich liegt, als das ganze Makro zu durchlaufen.

@andre,

Zitat:kann ich, ein Makro nur ausführen, wenn eine bestimmte Zelle ( in meinem Fall "AK16" ) aktualisiert wird

das geht eben nur über worksheet_change oder ähnliche Typen.

Mit meiner Zeile wird das Makro nicht weiter ausgeführt.
Seiten: 1 2