Registriert seit: 19.04.2022
Version(en): 2016
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!
Registriert seit: 16.04.2019
Version(en): 2016-365
12.10.2023, 22:36
(Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2023, 22:41 von J.K.H..)
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
Grüße
J.K.H.
Registriert seit: 19.04.2022
Version(en): 2016
Hm kann ich so leider nicht bestätigen, da sich das gesamte Makro weiterhin bei jeder Änderung aktuallisiert/abläuft
Registriert seit: 12.03.2016
Version(en): Excel 2003
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
Registriert seit: 21.06.2016
Version(en): 2021
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.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Registriert seit: 19.04.2022
Version(en): 2016
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.
Registriert seit: 13.04.2014
Version(en): 365
Hi,
im worksheet_change als erste Anweisung:
Code:
If intersect(target, Range("AK16") is nothing then exit sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 26.09.2022
Version(en): 2019
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
Registriert seit: 19.04.2022
Version(en): 2016
(13.10.2023, 11: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, 11: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 >.<
Registriert seit: 13.04.2014
Version(en): 365
13.10.2023, 14:04
(Dieser Beitrag wurde zuletzt bearbeitet: 13.10.2023, 14:09 von BoskoBiati.)
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.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.