Anzeige
Archiv - Navigation
1644to1648
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
Inhaltsverzeichnis

userform autostart

userform autostart
26.09.2018 11:16:09
Christian
Guten Tag,
ich möchte eine Userform (bezeichnet als "Eingabemaske") beim Starten eine Exceldatei öffnen. Gleichzeitig soll die Exceltabelle aber minimiert werden.
Sub Auto_Open()
Application.WindowState = xlMinimized
Eingabemaske.Show vbfocus
End Sub
In der Regel funktioniert der Code so wie er soll.
Wird die Datei aber wiederholt in schneller Abfolge neu geöffnet bzw. mehrere Excelformulare sind parallel geöffnet kann es zu folgender Fehlermeldung kommen:
"Laufzeitfehler '429':
Objekterstellung durch ActiveX-Komponente nicht möglich"
Beim Debuggen wird die Zeile
Eingabemaske.Show vbfocus

hervorgehoben.
Die angezeigten Fehler sind hier:
Eingabemaske = 'Objektvariable oder With- Blockvariable nicht festgelegt'
vbfocus = Leer

Wie kann ich diesen Fehler vermeiden?
Existiert eventuell eine elegantere Methode um die Tabelle minimiert, mit Userform im Vordergrund zu starten?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
vbfocus ist keine Standard Enumeration!
26.09.2018 11:23:35
EtoPHG
Hallo Christian,
Was soll vbfocus? Wann, wo, wie wird diese Variable initialisiert.
Benutze Option Explicit als erste Codezeile in jeder Codeklasse!
Gruess Hansueli
AW: vbfocus ist keine Standard Enumeration!
26.09.2018 12:56:29
Christian
Hallo,
den vbfocus Befehle habe ich sonst bei z.B.
Shell "[...]", vbNormalFocus

verwendet.
Anscheinend bewirkt das undefinierte vbfocus (interpretiert als "0") dass die Userform "Modeless" gestartet wird, was
Eingabemaske.Show(0)

entspricht.
Wenn ich diese Zeile verwende statt dem vbfocus, kann ich den vorher genannten Fehler replizieren.
Gibt es eine andere Möglichkeit nur die Userform dargestellt zu bekommen, oder muss ich bei einer nicht modalen Userform noch weitere Dinge beachten die einen solche Fehler hervorrufen können?
Anzeige
AW: vbfocus ist keine Standard Enumeration!
26.09.2018 15:14:20
EtoPHG
Hallo Christian,
vbXXXX Terme sind sogenannte Enumerationen (vordefinierte Datentypen und Werte für den Compiler). Das sind keine Befehle, wie du es ausdrückst. So hat etwa vbNormalFocus den Datentyp Long und den Wert 1
Dein Satz...Anscheinend bewirkt... ist falsch und gefährlich.
vbfocus ist durch das weglassen der Option Explicit Statements eine undefinierte Variable, die erst mal den Datentyp Variant hat und LEER (empty) ist. Darum nochmals die dringende Empfehlung, dieses Statement immer als 1 Zeile in Codeklassen zu verwenden!
Dieser Datentyp kann dann im Codeverlauf praktisch jeden anderen Datentype annehmen (String, Long, Integer, Object etc.etc.) ...darum auch dein erratisches Fehlerverhalten!
Wenn du dein Userform "Modeless" starten willst schreibe:
Eingabemaske.Show vbModeless
Im Übrigen bin ich der Meinung, dass das 'Versteckspiel' mit der XL-Applikation in fast allen Fällen überflüssig, kontraproduktiv und, wie du nun selbst erfahren hast, fehleranfällig ist. Bei deinem VBA Level würde ich mich auf die Funktionalität konzentrieren, statt solche Spielereien durchzustieren.
Gruess Hansueli
Anzeige
vbfocus ist keine Standard Enumeration!
26.09.2018 11:23:36
EtoPHG
Hallo Christian,
Was soll vbfocus? Wann, wo, wie wird diese Variable initialisiert.
Benutze Option Explicit als erste Codezeile in jeder Codeklasse!
Gruess Hansueli

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige