Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1072to1076
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

Fehler im Code Userform - Automatisierungsfehler

Fehler im Code Userform - Automatisierungsfehler
02.05.2009 13:29:38
a_ke
Hallo,
ich erhalte beim Aufruf einer Userform immer die Fehlermeldung " Excel hat einen schwerwiegenden Fehler
entdeckt und muss beendet werden". Laut dem dann erscheinenden Hinweis handelt es sich um
einen Automatisierungsfehler.
Komisch dabei ist, dass der Aufruf der Userform nach dem ersten Öffnen der Arbeitsmappe funktioniert.
Wird die Mappe dann gespeichert und neu aufgerufen, tritt der Fehler auf.
Wenn ich die folgenden zwei Ereignisse aus dem Code entferne, lässt sich die Userform normal ohne
Fehler aufrufen.
Erkennt von den VBA-Profis darin eventuell auf Anhieb jemand die Fehler ?
Ich habe bestimmt mit meinen bescheidenen VBA-Kenntnissen hier falsche Zeilen drin.
Die zu öffnende Userform ist mit "usrHoGa" bezeichnet. Die jeweils ersten drei Zeilen sind nur hier in die
nächste Zeile umgebrochen. Im Code stehen diese in einer Zeile.

Private Sub UserForm_Activate()
With usrHoGa
F6028_1.Value = Worksheets("Daten").Range("F6033").Value & " " & Worksheets("Daten").Range " _
F6028").Value
G6028_1.Value = Worksheets("Daten").Range("G6033").Value & " " & Worksheets("Daten").Range(" _
G6028").Value
H6028_1.Value = Worksheets("Daten").Range("H6033").Value & " " & Worksheets("Daten").Range(" _
H6028").Value
F6023.Value = Worksheets("Daten").Range("F6023").Value
F6034.Value = Worksheets("Daten").Range("F6034").Value
G6034.Value = Worksheets("Daten").Range("G6034").Value
H6034.Value = Worksheets("Daten").Range("H6034").Value
F6091.Value = Worksheets("Daten").Range("F6091").Value
F6133.Value = Worksheets("Daten").Range("f6133").Value
G6480.Value = Worksheets("Daten").Range("G6480").Value
G6480.Value = Format(G6480.Value, "#,##0.00") & " €"
G6482.Value = Worksheets("Daten").Range("G6482").Value
G6482.Value = Format(G6482.Value, "#,##0.00") & " €"
G6484.Value = Worksheets("Daten").Range("G6484").Value
G6484.Value = Format(G6484.Value, "#,##0.00") & " €"
G6486.Value = Worksheets("Daten").Range("G6486").Value
G6486.Value = Format(G6486.Value, "#,##0.00") & " €"
G6488.Value = Worksheets("Daten").Range("G6488").Value
G6488.Value = Format(G6488.Value, "#,##0.00") & " €"
G6490.Value = Worksheets("Daten").Range("G6490").Value
G6490.Value = Format(G6490.Value, "#,##0.00") & " €"
G6492.Value = Worksheets("Daten").Range("G6492").Value
G6492.Value = Format(G6492.Value, "#,##0.00") & " €"
G6494.Value = Worksheets("Daten").Range("G6494").Value
G6494.Value = Format(G6494.Value, "#,##0.00") & " €"
G6498.Value = Worksheets("Daten").Range("G6498").Value
G6498.Value = Format(G6498.Value, "#,##0.00") & " €"
G6502.Value = Worksheets("Daten").Range("G6502").Value
G6502.Value = Format(G6502.Value, "#,##0.00") & " €"
H6158.Value = Worksheets("Daten").Range("H6158").Value
H6164.Value = Worksheets("Daten").Range("H6164").Value
KBU_MBU.Caption = Worksheets("Daten").Range("F6485").Value
HPV.Caption = Sheets("HoGa_Übersicht").[G9]
HPV = Format(HPV, " #,##0.00 €")
GGV.Caption = Sheets("HoGa_Übersicht").[G11]
GGV = Format(GGV, " #,##0.00 €")
BU.Caption = Sheets("HoGa_Übersicht").[G13]
BU = Format(BU, " #,##0.00 €")
GLS.Caption = Sheets("HoGa_Übersicht").[G15]
GLS = Format(GLS, " #,##0.00 €")
BS.Caption = Sheets("HoGa_Übersicht").[G17]
BS = Format(BS, " #,##0.00 €")
EDV.Caption = Sheets("HoGa_Übersicht").[G19]
EDV = Format(EDV, " #,##0.00 €")
KG.Caption = Sheets("HoGa_Übersicht").[G21]
KG = Format(KG, " #,##0.00 €")
WV.Caption = Sheets("HoGa_Übersicht").[G23]
WV = Format(WV, " #,##0.00 €")
RSV.Caption = Sheets("HoGa_Übersicht").[G25]
RSV = Format(RSV, " #,##0.00 €")
GEB.Caption = Sheets("HoGa_Übersicht").[G27]
GEB = Format(GEB, " #,##0.00 €")
GES.Caption = Sheets("HoGa_Übersicht").[G34]
GES = Format(GES, " #,##0.00 €")
GES1.Caption = Sheets("HoGa_Übersicht").[P34]
GES1 = Format(GES1, " #,##0.00 €")
End With
End Sub



Private Sub MultiPage2_Change()
With usrHoGa
KBU_MBU.Caption = Worksheets("Daten").Range("F6485").Value
HPV.Caption = Sheets("HoGa_Übersicht").[G9]
HPV = Format(HPV, " #,##0.00 €")
GGV.Caption = Sheets("HoGa_Übersicht").[G11]
GGV = Format(GGV, " #,##0.00 €")
BU.Caption = Sheets("HoGa_Übersicht").[G13]
BU = Format(BU, " #,##0.00 €")
GLS.Caption = Sheets("HoGa_Übersicht").[G15]
GLS = Format(GLS, " #,##0.00 €")
BS.Caption = Sheets("HoGa_Übersicht").[G17]
BS = Format(BS, " #,##0.00 €")
EDV.Caption = Sheets("HoGa_Übersicht").[G19]
EDV = Format(EDV, " #,##0.00 €")
KG.Caption = Sheets("HoGa_Übersicht").[G21]
KG = Format(KG, " #,##0.00 €")
WV.Caption = Sheets("HoGa_Übersicht").[G23]
WV = Format(WV, " #,##0.00 €")
RSV.Caption = Sheets("HoGa_Übersicht").[G25]
RSV = Format(RSV, " #,##0.00 €")
GEB.Caption = Sheets("HoGa_Übersicht").[G27]
GEB = Format(GEB, " #,##0.00 €")
GES.Caption = Sheets("HoGa_Übersicht").[G34]
GES = Format(GES, " #,##0.00 €")
GES1.Caption = Sheets("HoGa_Übersicht").[P34]
GES1 = Format(GES1, " #,##0.00 €")
Anfrage_Haft.Visible = Worksheets("Daten").Range("H6480").Value
End With
End Sub


Ich hoffe, dass es zu lösen ist. Die gesamte Datei hier rein zu stellen ist schlecht zu händeln,
da insgesamt ca 6 MB groß. (maximal gezippt per Mail möglich)
Andre

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler im Code Userform - Automatisierungsfehler
02.05.2009 14:38:26
Gerd
Hallo Andre,
hmmmmm. Eine sch... Arbeit hast da vor dir.
Stelle mal im VBA-Editor unter Extras -- Optionen -- Allgemein bei "Unterbrechen bei Fehlern" auf
"In_Klassenmodul", damit evtl. Codefehler im Modul der Userform an Ort u. Stelle angezeigt werden.
Teste deinen Code aus dem Editor im Einzel-Schritt-Modus mit der F8-Taste.
Auf Anhieb auffällig ist, dass im Code keine Prüfungen erfolgen, ob die Werte in den Tabellenblättern
numerisch sind, wenn mit "Format(...) in die Steuerelemente eingetragen wird sowie dass
die Verbindung zwischen der Userform u. den Steuerlementen im Code über den Punkt fehlt.
With Userform
.Steuerelement1
.Steuerelement2
------------------------
End With
Das muss aber nicht unbedingt bedeuten, dass gerade dadurch der Automatisierungsfehler ausgelöst wird.
Gruß Gerd
Anzeige
AW: Fehler im Code Userform - Automatisierungsfeh
08.05.2009 00:00:29
Monika
Hallo Andre,
ich gehe davon aus, dass Du in UserForm_Activate() UserForm-Felder initialisierst.
Nun mit dem Verwendungsmöglichkeiten von Ereignissen bin ich auch noch nicht so erfahren, aber
eigentlich dient das UserForm_Initialize-Ereignis zur Initialisierung von Feldwerten. Durch die Show-Anweisung wird dann das UserForm angezeigt (nachdem Initalize abgearbeitet ist.
Probier doch einmal aus diese Anweisungen in das Initialize-Ereignis zu verschieben.
Außder empfehle ich Dir um den Fehler weiter einzugrenzen, in den Code - ich mache das immer am Anfang eines Ereignisses(empfehle ich Dir für die beiden verdächtigen Ereignisse) die Anweisung "Stop" einzufügen. Dadurch stoppt das Programm und der Debugger (ein Programm zur Fehlersuche wird aktiviert).
Hier kannst Du die Anweisungen z.B. mit im "Einzelschrittmodus" ausführen. Wenn Du immer einen Blick oben im Editor auf die Zeilennummer wirftst, bevor Du die nächste Anweisung ausführst, hast Du bei einem Absturz die Info, welche Zeile zuletzt noch ausgeführt wurde.
Vielleicht kannst Du so schon etwas eingrenzen, in welcher Zeile gesucht werden soll.
Wenn Du dann eine bestimmte Zeile in verdacht hast, kannst Du einzelne Zeilen im Code auskommentieren (indem du ein Hochkomma vor die Anweisung setzt, dann wird die Anweisung zum Kommentar - also nicht ausgeführt. Damit kannst Du dann die restlichen Anweisungen, sofern sie nicht von der auskommentierten Anweisung abhängig sind, auch noch testen. (Programm neu starten)
Ich schau nicht so oft ins Internet - versuche aber morgen noch ein paar Mal zu schauen wie es Dir geht
mit Deinem Problem.
Vielleicht hilft Dir ja auch jemand in der Zwischenzeit weiter.
Gruß
Monika
PS: Wie weit kennst Du Dich mit dem Debugger aus, damit ich hier nicht zuviel erzähle, was für Dich kein Gewinn ist.
Es lohnt sich mit dem Debugger zu testen Du kann z.B. mit dem Cursor auf eine Variable oder einen Ausdruck zeigen und deren aktueller Wert wird angezeigt. Dadurch findest Du Fehler, die dadurch entstehen, dass Dein Programm vielleicht vorher einen Wert in unerwarteter Weise verändert hat, dann in einer Variablen ein Wert steht, der bei der weiteren Verarbeitung zu einem Fehler führt. Es gibt auch Fenster, in denen Du während der schrittweisen Ausführung die Werte von mehren Variablen laufend sehen kannst. Falls Du dann eine Variable mit falschem Wert lokalisiert hast, kannst Du während des Testens mehr als eine Anweisung ausführen lassen, indem Du eine Überwachung dieser einzelnen Variablen hinzufügst. - Genaueres erkläre ich Dir falls nötig gerne Schritt für Schritt - schau erst einmal in welcher Zeile Dein Programm abstürzt.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige