ich habe heute eine (wahrscheinlich/hoffentlich) simple Frage, bei welcher ich aber gerade nicht weiterkomme.
Ich nutze aktuell für meinen Code in VBA das "Sub Worksheet_Change(ByVal Target As Range)" Funktioniert auch super, sobald ich in den Zellen entsprechend etwas ändere, geht das im Tabellenblatt hinterlegte Makro los :)
Mein kleines Problem ist jetzt folgendes: Kopiere ich etwas per Makro in das Tabellenblatt, registriert Excel dies wohl nicht als Änderung, und löst das im Tabellenblatt hinterlegte Makro nicht aus. Ich muss dann nachdem der Kopiervorgang per Makro abgeschlossen ist erst in irgendeiner Zelle etwas eingeben und mit Enter bestätigen damit es funktioniert. Das finde ich aber irgendwie doof...
Wie, bzw. was muss ich an meinem Code anpassen, dass er das Makro eben auch auslöst, sobald ich wiederum per Makro etwas in das Tabellenblatt kopiert habe?
(09.09.2020, 23:15)Sebbo schrieb: Wie, bzw. was muss ich an meinem Code anpassen, dass er das Makro eben auch auslöst, sobald ich wiederum per Makro etwas in das Tabellenblatt kopiert habe?
kommentiere Zeile 9 mal aus.
Im Ernst: Das Change-Ereignis springt auch bei Einfügeaktionen per Makro an.
erst mal danke für deine Antwort! Ich bin jetzt leider gerade auf der Arbeit, aber das im Arbeitsblatt hinterlegte Makro löst tatsächlich erst aus, wenn ich in einer Zelle etwas eingebe. Allein vom Kopiervorgang eines anderen Makros tut sich da nix.
Ich kann ja heute abend mal eine Beispieldatei hochladen.
knapp daneben ist halt auch vorbei :D Spaß beiseite. Wenn ich die Zeile Application.EnableEvents = False auskommentiere, muss ich immer noch etwas in eine beliebige Zelle schreiben, dass er mir die Änderung durchführt. Der einzige zusätzliche Effekt ist jetzt, dass mir dann Excel umgehend abstürzt (ich habs jetzt mehrmals ausprobiert).
Leider bin ich zuviel Laie, als dass ich das verstehe. Hast du noch eine Idee?
wenn Du das auskommentierst, springt das Change-Ereignis mit jedem Eintrag in die Tor-Statistik per Code an, weshalb sich Dein Excel dann aufhängt. Ich kann aber auch keine Änderung im Sheet bei manuellem Eintrag feststellen, obwohl das Change-Ereignis auch da anspringt.
ich würde den "Änderungs"-Code beim Change-Ereignis aus auslagern und dann im Change-Ereignis und im Kopieren aufrufen. Im aufgerufenen Code benötigst Du dann das Enablen... usw. nicht.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Zitat:Wenn ich die Zeile Application.EnableEvents = False auskommentiere...
hast du auch das richtige Application.EnableEvents = False auskommentiert, d.h. im richtigen Sub ?
In deinem Sub Kopieren schaltest du am Anfang über Application.EnableEvents = False die Events aus. Und deshalb kann das Worksheet_Change-Ereignis im Tabellenblatt "Tor-Statistik" während des Kopiervorganges natürlich nicht anspringen.
Wenn du im Sub Kopieren das Application.EnableEvents=False auskommentierst bzw, wegläßt, dann reagiert auch das Worksheet_Change-Event. Allerdings bei jedem einzelnen Schleifendurchlauf , so dass das Kopieren-Makro entsprechend langsam läuft und du zugucken kannst wie die Werte eingetragen werden (Aber abstürzen sollte da eigentlich nichts…)
Wenn du das Application.EnableEvents = False im Private Sub Worksheet_Change- entfernst, stürzt der Rechner natürlich ab weil er dann ja in eine Endlosschleife läuft. (Und eigentlich gehört das Worksheet-Change-Ereignis auch etwas eingegrenzt, so dass es nicht auf dem gesamten Tabellenblatt anspringt, sondern nur bei Änderungen (=> Eingaben) in einem bestimmten Bereich)