Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  UserForm_Initialize

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  UserForm_Initialize (1237 mal gelesen)
Fritz5002
Mitglied
Techniker


Sehen Sie sich das Profil von Fritz5002 an!   Senden Sie eine Private Message an Fritz5002  Schreiben Sie einen Gästebucheintrag für Fritz5002

Beiträge: 29
Registriert: 23.10.2009

Win XP

erstellt am: 26. Apr. 2010 10:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Spezialisten,

kann mir jemand sagen, was ich falsch mache?
Früher habe ich eine eigene Sub für Voreinstellung programmiert.
Ich kam jetzt auf die Idee, UserForm_Initialize für eine Voreinstellung aller Elemente auf dem Form zu starten. Ging bis vor kurzem noch gut. Als ich ein weiteres Element einfügte gab es Fehlermeldungen.
Im Einzelschritt konnte ich dann feststellen, dass Excel die UserForm_Initialize-Sub ständig verläßt und den Programmcode einiger Elemente durchläuft.
Bei der Gelegenheit kommen Variable vor, die erst weiter hinten eine Voreinstellung bekommen. Das hat die Fehlermeldung aufgerufen. Nachdem ich die spätere Variablenzuweisung weiter nach vorne gelegt habe, lief das Programm durch.

Meine Frage:
Ist es normal, dass Excel die Initialize verläßt? Kann ich was einstellen, dass das nicht vorkommt oder muss ich fast alle Einstellungen der Elemente vorgeben, bei denen Excel die Initialize verläßt? Oder ist das ein Hinweis, dass ich an einer anderen Stelle etwas falsch gemacht habe?

Grüße von Fritz

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 26. Apr. 2010 12:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Fritz5002 10 Unities + Antwort hilfreich

Mahlzeit Fritz5002,

wenn Variablen nicht belegt sind, erscheint mir eine Fehlermeldung wenig überraschend (außer bei Vars vom Typ Boolean - die haben einen Wert per Voreinstellung). Generell hängt es vom Variablentyp ab, was der "Default"-Wert ist; häufig sind Variable jedoch leer oder Null oder anderweitig nicht belegt. Hier hilft die Hilfe im Einzelfall.

Hast Du eingangs Option Explicit festgelegt (empfehlenswert)?

Zu Deinen Fragen:

Zitat:
Ist es normal, dass Excel die Initialize verläßt?
Kommt darauf an;) . Da ich den Code nicht kenne (posten?), ist ein "Verlassen" von Initialize durchaus möglich, bzw. lässt sich dies gezielt steuern: Hast Du Unter-Routinen, die angesprochen werden (sollen)? Im Standardfall gehe ich jedoch davon aus, dass die Initialize "durchlaufen" sollte. Debug-Mode (F8)?
Zitat:
Kann ich was einstellen, dass das nicht vorkommt...
Ja - alle Variablen zur Sicherheit vorher - nötigenfalls mit Dummy-Werten - ausdrücklich belegen. Damit hättest Du sicher einen Teil der Gründe fürs Verlassen erschlagen, und gewinnst zusätzlich Übersicht im Code.
Zitat:
Oder ist das ein Hinweis, dass ich an einer anderen Stelle etwas falsch gemacht habe?
Vielleicht, vielleicht auch nicht. Kommt auf den Code an. Posten ?

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Fritz5002
Mitglied
Techniker


Sehen Sie sich das Profil von Fritz5002 an!   Senden Sie eine Private Message an Fritz5002  Schreiben Sie einen Gästebucheintrag für Fritz5002

Beiträge: 29
Registriert: 23.10.2009

Win XP

erstellt am: 26. Apr. 2010 13:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Paulchen,

vielen Dank erst einmal, für die Reaktion.
Ich hatte im Ablauf der Fehlerbearbeitung darauf hingewiesen, dass Excel aus dem Ablauf (für mich zufällig) aussteigt und wieder zurück kommt. Bei derer Excel-Springerei kam Excel an eine Variable, die normalerweise über Initialize zugewiesen werden sollte. Das hatte ich dann für's erste damit in den Griff bekommen, in dem ich die Variablenzuweisung weiter nach vorn verlegt habe.

Vorab, Excel spring aus eine With-Anweisung raus, in die Prozedur, die gerade mit den vorgegebenen Werten bestückt wird.

Ich muss jetzt kurz außer haus. Wenn ich zurück bin hänge ich den Code an, mit dem Hinweis wo Excel raus spring.

Gruß Fritz
 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Fritz5002
Mitglied
Techniker


Sehen Sie sich das Profil von Fritz5002 an!   Senden Sie eine Private Message an Fritz5002  Schreiben Sie einen Gästebucheintrag für Fritz5002

Beiträge: 29
Registriert: 23.10.2009

Win XP

erstellt am: 26. Apr. 2010 15:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Teil-Kopie_Aufmass-2010_xls.txt

 
...bin wieder da.
Habe die Datei angehängt; einige .bas, die unmittelbar keinen Einfluß haben entfernt; Programm würde auch mit denen nicht laufen, da noch andere Dateien fehlen.

Die betreffenden Sub's und deren Programmcode wurden markiert.

Bin jetzt schon davon überzeugt, dass die Sprünge nicht normal sind. Habe eher das Gefühl, dass Excel ein eigenes Leben beginnt....
...oder habe ich doch einen Fehler übersehen, den Excel nicht verdaut?

Gruß Fritz

(etwas später immer noch    )
Die Defragmentierung hat auch nicht geholfen.
Kann es sein, dass Excel einige Mindesteingaben erwartet, von denen ich der Meinung bin, dass die vorher bei den Eigenschaften als Standardwerte von Excel bereits eingetragen wurden?
  
Ich wüßte auch nicht wo ich nachschlagen sollte. Bin der Meinung, dass die Excel-Hilfe an dieser Stelle still ist.

Gruß Fritz

[Diese Nachricht wurde von Fritz5002 am 26. Apr. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 26. Apr. 2010 16:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Fritz5002 10 Unities + Antwort hilfreich

Tach, 
Zitat:
Bin jetzt schon davon überzeugt, dass die Sprünge nicht normal sind.
Im Gegenteil - einige sind durchaus normal! Du hast in Deiner UserForm einige Elemente, die auf Veränderung reagieren (OBJEKT_Change). Üblicherweise wird diese Veränderung durch eine Benutzereingabe hervorgerufen.

Im konkreten Fall willst Du per Initialize die UserForm bestücken. Dies ist - streng genommen - eine Änderung eines (mehrerer) sonst leeren Feldes. Also reagiert die UserForm bereits beim Bestücken (Initialisieren) auf die Veränderung _Change. Dieses Verhalten ist korrekt! Vermutlich ist es bisher einfach nicht aufgefallen.

Ist Deine Frage damit beantwortet? Falls nicht - ruhig weiter bohren ;-).

[Edit: Aufmaß enthält ein Sonderzeichen. Ich bemühe mich, Sonderzeichen im Code zu vermeiden - kann zu Fehlern führen. /Edit]

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

[Diese Nachricht wurde von Paulchen am 26. Apr. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Fritz5002
Mitglied
Techniker


Sehen Sie sich das Profil von Fritz5002 an!   Senden Sie eine Private Message an Fritz5002  Schreiben Sie einen Gästebucheintrag für Fritz5002

Beiträge: 29
Registriert: 23.10.2009

Win XP

erstellt am: 26. Apr. 2010 17:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ubs, da war ich noch einmal in meinem alten Text drin, als die Antwort kam.

Die Begründung hört sich verständlich an, coxZusatz und coxVarNaht habe ich bisher im Programm noch nicht abgefragt, darum hier kein Seitensprung.

Vor 12 Jahren hatte ich ein ähnliches Problem bei dem Vorgängerprogramm. Damals hatte ich die Initialisierung vor dem Show-Aufruf getätigt. Das werde ich in Zukunft weiterhin machen, um nirgends anzuecken. 

Vielen Dank für die Hilfe. Jetzt fühle ich mich gleich besser. Das Sonderzeichen werde ich vorsichtshalber auch entsorgen. Man weiss ja nie, ob das einmal ein Hebel wird (und das Programm aushebelt).
Units sind unterwegs. 

Gruß Fritz 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz