Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
152to156
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
152to156
152to156
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SaveAs löst Combobox_Change aus

SaveAs löst Combobox_Change aus
28.08.2002 15:23:54
Rolf Kersjes
Hallo Forum,

in der folgenden Procedur wird durch SaveAs (aber auch durch manuelles Speichern unter..) das Change-Ereignis ausgelöst und überschreibt vorhandene Eingaben. Und dies trotz EnableEvents = false. Irgend jemand einen Tipp?

Rolf


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: SaveAs löst Combobox_Change aus
28.08.2002 16:24:51
Axel
Hallo,

bist Du sicher, dass die ComboBox6_Change-Ereignisroutine durch dem Code von Speichern_Click() ausgelöst wird?

Durch EnableEvents = False ist eigentlich sichergestellt, das Workbook_BeforeSave() nicht aufgerufen wird. Ggf. dort enthaltener Code, kann also nicht die Ursache sein.

Gibt es vielleicht Code, der unmittelbar nach Betätigen des Speicher-Buttons durchlaufen wird und die Änderung bewirkt?

Laß den Code im Bereich der kritischen Passage doch mal im Einzelschritt-Modus laufen.

Gruß
Axel



Re: SaveAs löst Combobox_Change aus
28.08.2002 16:30:04
Rolf Kersjes
Hallo Axel,

genau das habe ich auch getan, im Einzelschrittmodus durch. Ich traute meinen Augen ja auch nicht, aber wie bereits gesagt, sowohl durch die Procedur als auch durch das manuelle Speichern unter wird die Ereignisprocedur ausgelöst.

Rolf

Anzeige
Re: SaveAs löst Combobox_Change aus
28.08.2002 16:32:43
Axel
Hallo,

direkt nach SaveAs wird das Change-Ereignis für die ComboBox ausgelöst?

Wirklich seltsam.

Wenn Du willst, schick mir die Datei mal zu.

Gruß
Axel
Email: wildspitze@gmx.de

Sieht aus wie ein Bug
28.08.2002 22:00:33
Axel
Hallo Rolf,

schön, dass Du mir die Datei zugeschickt hast.

Das war ja ganz schön tricky - aber ich habe das Problem gefunden.

M.E. kann man das schon als Bug bezeichnen.

Also:
Wenn einem in einer Tabelle eingebettetem Steuerelement über die ListFillRange ein Zellbezug mit expliziter Angabe der
Tabelle zugeordnet wird und es in der Mappe in irgendeiner Tabelle eine Verknüpfung mit einer expliziten Tabellenangabe gibt, dann wird beim Speichern über SaveAs das Change()-Ereignis des Steuerelementes ausgelöst.

Nochmals gaaanz langsam, da hier einige Voraussetzungen gleichzeitig erfüllt sein müssen

1. Die ListFillRange-Eigenschaft des Steuerelementes ist gesetzt, Beispiel ListFillRange = Tabelle1!A1:A3
oder - wie in Deinem Fall - über einen benannten Bereich (der sich aber explizit auf eine Tabelle bezieht, hier PMASCH als
Konstante!G2:G7)

2. Es gibt in irgendeiner Zelle der Mappe mindestens eine Verknüpfung der Form A1=Tabelle1!B1. Davon existieren in Deiner
Mappe wahrlich genug.

3. Die Application.Calculation-Eigenschaft steht entweder auf xlCalculationAutomatic oder auf xlCalculationManual und
gleichzeitig ist (nur in letztem Fall) Application.CalculateBeforeSave auf True gesetzt.
Die Berechnungsmethode kann auch über Extras -> Optionen -> Berechnung eingestellt werden.


Weitere Hinweise:

Es trifft nicht nur das Change-Ereignis ein. Sind andere Ereignisroutinen für das Steuerelement definiert (z.B. Click) dann tritt dieses ebenfalls auf. Die Reihenfolge des Auftretens entspricht dabei dem Standard.

Werden mehrere Steuerelemente in der Mappe verwendet, treten die Ereignisse nur im ersten angelegten Element auf!

Handelt es sich um ein Listenfeld oder eine Combobox und der Inhalt des Steuerelementes wird nicht über ListFillRange
sondern über AddItem zur Laufzeit vorgenommen, tritt das Problem natürlich nicht auf.


Abhilfe:

In Deinem konkreten Fall lässt sich der Aufruf des Change-Ereignisses vermeiden, wenn die Neuberechnung vor dem
Speichern deaktiviert wird. Dazu den folgenden Code

Das Deaktivieren der Workbook_*- und Worksheet_*-Ereignisroutinen über EnableEvents = False ist nicht notwendig.

Gruß
Axel

Anzeige
Danke und Hochachtung....
29.08.2002 09:02:06
Rolf Kersjes
Hallo Axel,

ich kann nur noch sagen, meine Hochachtung vor Deiner Leistung.

Deine Hinweise muß ich mir jetzt noch einmal in aller Ruhe durch gehen, damit ich sie auch verstehe und für die Zukunft evtl. entsprechend umsetzen kann.

Also erst mal vielen Dank für Deine Hilfe.

Rolf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige