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

Worksheet_Change-Ereignis vorübergehend abschalten

Worksheet_Change-Ereignis vorübergehend abschalten
14.07.2004 08:56:25
Franz
Guten Morgen Fachleute,
ich habe ein Makro mit dem Namen " auflisten_und_aktualisieren ", das momentan (noch nicht sehr viele Daten) 1 Sekunde dauert (oder kürzer).
Dazu gibt es ein Worksheet_Change-Makro, das genau obiges Makro aufruft:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then Call auflisten_und_aktualisieren
End Sub

In dem Makro " auflisten_und_aktualisieren " werden u.a. die Spalten "A-E" sortiert, was wohl jedes Mal das Worksheet_Change-Makro auslöst. Und das scheint das Problem zu sein. Das Makro " auflisten_und_aktualisieren ", das vorher 1 Sekunde dauert hört gar nicht mehr auf (ich war auf jeden Fall noch nicht geduldig genug, es abzuwarten...)
Wie kann man so was lösen? Ist es möglich in Makro " auflisten_und_aktualisieren " das Worksheet_Change-Makro vorübergehend abzuschalten oder irgendwie zu übergehen?
Für eure Hilfe schon mal danke im Voraus.
Grüße
Franz

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change-Ereignis vorübergehend abschalten
Nike
Hi,

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 3 Then Call auflisten_und_aktualisieren
Application.EnableEvents = True
End Sub

Bye
Nike
Funktioniert!!
14.07.2004 09:07:41
Franz
Hi Nike,
vielen Dank, das klappt! Kenn zwar die Anweisung, wäre aber hier nicht auf die Idee gekommen, sie einzusetzen. Weil ich sie (noch) nicht verstehe: Welches Event wird hier den disabled? Setzt sich hier das Change-Makro nach dem ersten Aufruf selbst außer Kraft?
Grüße
Franz
AW: genau ;-)
Nike
Hi,
&gtSetzt sich hier das Change-Makro nach dem ersten Aufruf selbst außer Kraft?
Du hast es erfasst!
Zwar nicht sich selbst, aber es werden halt keine weiteren "Ereignisse"
erkannt bzw. entsprechende Prozeduren dadurch ausgeloest...
Bye
Nike
Anzeige
Super! Vielen Dank!! m.t.
14.07.2004 09:15:44
Franz
Hi Nike,
hätte jetzt noch eine Zusatzfrage: gibt es auch noch eine MÖglichkeit, das Change-Makro bei einer Mehrfachmarkierung auszulösen (interessiert mich schon länger, hier kommt's wieder): wenn ich eine Zeile lösche indem ich sie von Spalte A-E markiere und lösche, löst sich nix aus, hab ich grad gemerkt. Kann man das auch noch benennen?
Grüße
Franz
AW: Worksheet_Change...
Nike
Hi,
also das
Private Sub Worksheet_Change(ByVal Target As Range)
loest bei mir aus, wenn ich die Zeilen markiere und loesche...
Bye
Nike
Komisch, bei mir nicht!!
14.07.2004 09:34:59
Franz
Hi Nike,

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 3 Then MsgBox "Juhii"
Application.EnableEvents = True
End Sub

wird nur ausgelöst, wenn ich eine Zelle in der Spalte "C" alleine lösche, nicht aber wenn ich z.B. "A20:E20" markiere und "Entf" drücke!?! Aber danke dir für's Testen...
Grüße
Franz
Anzeige
Die Target.Column bei A20:E20 ist auch 1 ....
Boris
Hi Franz,
...und nicht 3 - daher wird auch nix ausgelöst.;-)
Grüße Boris
AW: Die Target.Column bei A20:E20 ist auch 1 ....
14.07.2004 09:42:20
Franz
Hi Boris,
danke, da hab ich auch schon drangedacht. Aber auch A20:E20 markiert und dann C20.Activate (also nach der Markierung mit der Tab-Taste bis C20 gesprungen) löst nix aus. Oder meinst du, es KANN gar nicht gehen? Aber warum geht es dann bei Nike?
Verwirrte Grüße
Franz
AW: Die Target.Column bei A20:E20 ist auch 1 ....
Boris
Hi Franz,
das Aktivieren bringt dir gar nix - denn der Bereich 'Target' ändert sich dadurch ja nicht.
Du brauchst die Intersect-Methode:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Columns(3), Target) Is Nothing Then
MsgBox "Yippie!"
End If
End Sub

Grüße Boris
Anzeige
Das isses!!
14.07.2004 09:51:56
Franz
Hi Boris,
super, genau, das ist die richtige Idee!!!
Ganz vielen Dank und Grüße
Franz
btw.: wäre auch gerne zum Forumstreffen gekommen, bin da aber leider auf "Studienfahrt" (naja im Freundeskreis halt ;-))) in Dresden, das steht schon seit Anfang des Jahres... vielleicht nächstes Mal ... euch auf jeden Fall viel Spaß dabei!!
AW: Worksheet_Change-Ereignis vorübergehend abschalten
ExceL
hi
lege das makro doch einfach auf eine schaltfläche
und sicherheitshalber
noch in deine Arbeitsmappe before close
dann wird sichergestellt das das Makro auch ausgeführt worden ist!
Gruß
Christian
AW: Worksheet_Change-Ereignis vorübergehend abschalten
14.07.2004 09:09:54
Franz
Hi Christian,
danke, das hab ich auch bereits. Hätte halt mehr Charme, wenn es von selbst abliefe. Außerdem hab ich noch ein paar Sachen im Sinn, die ebenfalls das Change-Ereignis benötigen. Teste Tipp von Nike.
Vielen Dank und Grüße
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige