Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
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 macht Absturz

UserForm macht Absturz
06.01.2013 13:29:55
liliho
Liebe Excel-VBA-Gurus,
graue Haare sind mir gewachsen bei der Suche nach einer Lösung für ein Problem, das ich soeben endlich auch hier im Forum gefunden habe. Denn wenn man die Lösung kennt, kann man auch besser danach suchen ;-)
Meine Userform und das ganze VBA-Projekt arbeitet eigentlich korrekt, aber das Schliessen der Datei verursachte einen völligen Absturz von Excel.
Aus div. VBA-Fachartikeln entnahm ich die Regel zum "Schliessen der Userform" mit Unload MeineUserForm bzw. Unload Me.
Ich war der Meinung, das sei korrekt. Daher suchte ich den Fehler nicht hier, sondern in vielen anderen Details...
Schlussendlich stellte ich dem Unload Me noch ein Me.Hide voran und seither scheint es - oh Wunder! - zu klappen.
Kann das wirklich die Lösung sein?
Was passiert denn eigentlich, wenn ich nur Unload mache ohne Hide? Ich wurde nirgends darauf aufmerksam gemacht.
Danke für eine Antwort bzw. Bestätigung.
Einen frohen Sonntag gönne ich mir nun :-) und Euch ebenfalls.
Liliane

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm macht Absturz
06.01.2013 14:29:55
Peter
Hallo Liliane,
ich arbeite sehr viel mit UserForms und verwende so gut wie nie UserForm.Hide - immer nur Unload UserForm und hatte noch nie Probleme damit.
Gruß Peter

AW: UserForm macht Absturz
06.01.2013 14:42:14
liliho
Hallo Peter,
vielen Dank für deine rasche Nachricht.
In einem Beitrag http://www.online-excel.de/excel/singsel_vba.php?f=74
steht noch was Interessantes betr. Unload, das ich zwar nicht ganz nachvollziehen kann.
Bei meiner spez. UserForm verknüpfe ich viele Felder via ControlSource mit den Zellen einer Tabelle. Zudem gibt es im Projekt auch noch eine Menge PivotTabellen (dazu gibt es in einem Forum auch einen Bericht über Excel-Probleme).
Wie dem auch sei, ich hoffe, dass meine Datei nun brauchbar funktionert. Andernfalls müsste ich hier nochmals nachfragen und einen Experten suchen, der meine Datei testet.
Gruss, Liliane

Anzeige
kann zu?
08.01.2013 08:31:22
Klaus
Andernfalls müsste ich hier nochmals nachfragen
Hi Liliane,
dann kann der Thread zu oder?
Grüße,
Klaus M.vdT.

AW: kann zu?
08.01.2013 13:32:47
Liliane
Leider nein...
es gibt immer noch den beschriebenen Absturz.
Kann ich hier die Datei allenfalls hochladen?
Muss aber vorher noch einige Daten entfernen.
Melde mich sehr gern hier nochmals für eine Expertenrunde, falls möglich.
Mit Gruss
Liliane

Dateien hochladen
08.01.2013 13:38:42
Klaus
Kann ich hier die Datei allenfalls hochladen?
Da unten ist ein Button, darauf steht "Zum File-Upload".
Grüße,
Klaus M.vdT.

AW: Dateien hochladen
08.01.2013 15:10:56
liliho
Hallo Klaus,
das mache ich gerne: https://www.herber.de/bbs/user/83288.xlsm
Habe erfolgreiche Projekte mit Userforms gelöst, neu an diesem "dummen" Projekt ist aus meiner Sicht nur der Umstand, dass in dieser Userform zwei Frames abwechselnd ein- und ausgeblendet werden und für das Update von Datensätzen die spez. Tabellenzeilen-Zellen mit ControlSource angebunden werden. Da habe ich noch keine Erfahrung.
Problem:
wenn ich die UserForm einmal (per Startseite-Knopf) öffne und einige Aktionen erledige, d.h. Stamm-Daten und Fall-Daten erfasse, Daten suche (Combo-Box) etc., dann stürzt Excel ab.
Entweder bereits während/nach einigen Aktionen bzw. generell immer beim Schliessen der Datei. das Speichern funktioniert noch, aber das Schliessen i.A. nicht.
Excel funktioniert nicht mehr...
oder Excel friert ein
oder Excel hat ein Problem festgestellt...

Ich danke für jeden Hinweis, wo ich den Fehler suchen soll. Bin am Ende meiner Phantasie angelangt.
Mit Dank und Gruss
Liliane

Anzeige
Was geht nicht?
08.01.2013 15:59:46
Klaus
Hi Liliane,
ich clicke in deiner Datei auf "Startseite", dann auf "Admin-Kind-Stamm-Fall". Werde von einer MsgBox mit "Hallo InitFormKind" begrüßt. Jetzt clicke ich auf "neues Kind", dann auf "schließen". Ich bekomme zwei MsgBoxen, einmal "Hallo UserFormQueryClose" und einmal "HalloUserFormTerminate".
Den dazugehörigen Code habe ich angeschaut. Es steht überall nur "unload me", nirgendwo "hide".
Dein Problem mit dem Unload kann ich nicht nachvollziehen.

Private Sub BtnClose_Click()
Unload Me  'ruft zusätzlich Query-Close auf!
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
MsgBox "Hallo Userform_QueryClose"
If CloseMode = vbFormControlMenu Then
Unload Me
End If
End Sub
Private Sub UserForm_Terminate()
MsgBox "Hallo UserFormTerminate"
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: Was geht nicht?
08.01.2013 16:18:09
liliho
Salü Klaus,
Danke schon mal fürs Reingucken...
mit dem Unload habe ich keine Probleme ;-) und weil das zusätzliche Me.Hide schlussendlich nichts genützt hat, hab ich's wieder rausgenommen. Unload sollte doch genügen (sagten Leute im Forum).
Die MsgBox sind natürlich auch überflüssig, war nur zum Schauen, wo was aktiviert wird.
Das Problem ist eben der "Excel-Absturz" ohne Vorwarnung und ohne VBA-Error.
Wenn du ein paar mal neue Datensätze erstellst und/oder anschaust (per ComboBox), sollte es auch bei dir abstürzen, oder nicht? Bei mir jedenfalls regelmässig - ist extrem doof zum Testen:-((
Gruss, Liliane

Anzeige
bei neues Kind erfassen-Absturz bei mir-owT
08.01.2013 16:30:36
robert

..daher noch offen ! owT
08.01.2013 17:14:51
robert

AW: ..daher noch offen ! owT
08.01.2013 17:34:48
liliho
Ja leider noch offen.
Freue mich auf gute Ideen...
Mit Gruss
Liliane

Hier steigt Excel aus....
08.01.2013 18:31:09
robert
Hi,
in nextId ist der Wert 596
in thisRow ist der Wert 34
With Tabelle4 'Sheet KinddatenStammm
nextId = MyFunctions.NextKindId
thisRow = MyFunctions.NextRowKindStamm
.Cells(thisRow, 1).Value = nextId '......und in dieser Zeile hängt sich Excel auf...
wer kann helfen?
Gruß
robert

AW: Hier steigt Excel aus....
08.01.2013 18:43:16
liliho
Hallo Robert,
Danke, aber...
das ist eben bereits eine Folge des "baldigen" Excel-Absturzereignisses und täuscht hier vor, es gäbe ein Problem.
Die Applikation hat zu dieser Zeit bereits ein anderes (!) Problem und kann diesen simplen Befehl .Cells(thisRow, 1).Value = nextId nicht mehr ausführen. Eine zeitlang gehts ja gut.
Es kann/könnte auch nichts anderes mehr ausgeführt werden. Ich habe schon soviel getestet und der sog Absturz liegt irgendwo tief im Excel-Bauch. Es gibt auch unzählige Artikel hier Forum, die werde ich alle mal durchforsten müssen. Ich probiere ja alle Tipps brav aus, aber nichts hat bisher das Übel ausgerottet.
Einen bald schon verzweifelten Gruss
Liliane

Anzeige
ins Blaue geraten:
09.01.2013 08:39:46
Klaus
Hi,
With Tabelle4 'Sheet KinddatenStammm
nextId = MyFunctions.NextKindId in thisRow ist der Wert 34
thisRow = MyFunctions.NextRowKindStamm nextId ist der Wert 596
.Cells(thisRow, 1).Value = nextId '......und in dieser Zeile hängt sich Excel auf...
Also: Excel hängt sich auf bei dem Vergleich Tabelle4.Cells(34,1).value = 596. In Tabelle 4, Zelle A34 steht ... nichts! Excel vergleicht also nichts mit 596 und meckert dann berechtigterweise.
Ich blick jetzt nicht, was genau dort gemacht werden soll. Aber der Code muss um eine "Isempty" Prüfung erweitert werden oder - noch besser - nur bis zur LastRow laufen.
Grüße,
Klaus M.vdT.

Anzeige
AW: ins Blaue geraten:
09.01.2013 09:25:31
robert
Hi Klaus,
das kanns meiner Meinung nicht sein-wieso Vergleich?
Es soll in Tabelle4.Cells(34,1) der Wert 596 eingetragen werden... oder?
Gruß
robert

ja, stimmt
09.01.2013 09:29:18
Klaus
Hallo Robert,
ja du hast recht. Ich war in Gedanken beim Booleanschen Vergleichsoperator ("" = 596 ergibt FALSE), aber hier wird tatsächlich nicht verglichen sondern eingetragen.
Dann rate ich nochmal, dass das Blatt bzw die Zelle des Blattes geschützt ist?
Grüße,
Klaus M.vdT.

wieder falsch ;-) ist nicht ...
09.01.2013 09:50:58
robert
Hi Klaus,
auch wenn man den Blattschutz aufhebt, immer wieder der Absturz an der Stelle.
Vielleicht hängt es mit den vielen Bereichs-Namen zusammen?
Ich habs zig mal probiert und nichts gefunden........
Gruß
robert

Anzeige
AW: wieder falsch ;-) ist nicht ...
09.01.2013 11:11:10
Case
Hallo, :-)
das Problem liegt woanders. Tabelle4 "KinddatenStamm" ist als "Tabelle" bzw. ListObject eingerichtet - das macht beim schreiben einer neuen Zeile per VBA Probleme.
Es funktioniert, wenn man den Bereich wieder als "normale" Tabelle formatiert. Daten werden dann erstmal in Zeile 9999 geschrieben - die Funktionen "NextKindId" und "NextRowKindFall" müssen angepasst werden.
Servus
Case

AW: wieder falsch ;-) ist nicht ...
09.01.2013 11:40:56
Liliane
Guten Tag Ihr Lieben,
Danke für die Ideen! Ich kann/konnte immer mehrere Datensätze korrekt so speichern und ohne die von euch herausgepickte Error-Meldung je erhalten zu haben, stürzt das Programm spätestens beim Schliessen ab. Solche Datensatz-Speicherungen mache ich auch in anderern VBA-Projekten und dort geht das problemlos.
Ich habe sehr viele Namen-Bereiche in meinem Projekt, weil das eben sehr praktisch und "elastisch" ist.
Ist das schlechter Programmierstil?
Was meint "Case" mit?
das Problem liegt woanders. Tabelle4 "KinddatenStamm" ist als "Tabelle" bzw. ListObject eingerichtet - das macht beim Schreiben einer neuen Zeile per VBA Probleme.
Welche Probleme und warum sagt mit "Excel" nicht, wo es klemmt? Dieser Absturz ohne eigentliche Meldung (gibts irgendwo ein Log-File?) ist fürchterlich.
Mit Gruss, Liliane

Anzeige
AW: wieder falsch ;-) ist nicht ...
09.01.2013 12:53:41
Case
Hallo, :-)
nun Du - oder wer auch immer - hat den Bereich in Tabelle4 als "Tabelle" bzw. "ListObject" eingerichtet. Bei mir passiert genau das gleiche wie bei Robert bzw. Klaus. Beim einfügen der Daten stürzt Excel jedesmal ab. Auch wenn ich in Tabelle4 eine neue Zeile per VBA hinzufüge stürzt Excel sofort ab.
Zu ListObject schau auch mal hier:
http://www.jkp-ads.com/articles/Excel2007TablesVBA.asp
Wenn es bei Dir zu unbestimmten bzw. nicht reproduzierbaren Zeiten abstürzt könnte die ganze Datei korrupt / defekt sein.
Dann muss neu aufgebaut werden. Aber nicht Tabellen nur in eine neue Datei rüberkopieren, sonst kommt der Fehler gleich wieder mit.
Servus
Case

Anzeige
AW: wieder falsch ;-) ist nicht ...
09.01.2013 13:19:56
Liliane
Hallo Case,
das ist interessant und bringt mich weiter. Sicher ist mind. die Tabelle4 korrupt oder mit den dortigen Namens-Bereichen ist etwas unsauber.
Habe inzwischen Folgendes probiert:
(zuerst in der Tabelle5-Sheet KindDatenFall) die Zeile6 gelöscht, weil da die FallNr leer ist..)
UserForm starten, irgend einen KindStamm-Datensatz (ComboBox) nehmen und nur anzeigen lassen
d.h. keinen neuen DS in Tabelle4 geschrieben, aber ganz viele neue Datensätze (neue FallNr) in Tabelle5 geschrieben. Das funktioniert (mind. bisher) ohne Probleme. Ich vermute daher, dass sicher - aber ev. nur - mit Tabelle4 etwas los ist.
Ich schliesse nun dieses Thema und studiere auch deinen Link-Artikel.
Es gibt noch viel zu tun...
(aber diese Entwicklungsebene/VBA ist tatsächlich nicht mein Ding).
Gruss und Dank an alle, Liliane

AW: wieder falsch ;-) ist nicht ...
09.01.2013 16:49:34
Liliane
... Schluss der Übung:
habe ein neues Sheet mit taufrischer Tabelle "TabKindStamm" erstellt.
Bis anhin d.h. mehrmals gings glatt mit dem Einfügen von Datensätzen.
So ein Mist: habe tage- und nächtelang die UserForm für schuldig geglaubt.
Falls es nicht anhält, mache ich endgültig Schluss mit Excel ;-) und rechne wieder mit dem Rechenschieber.
Eine gute Zeit!

HEUREKA
11.01.2013 23:55:21
Liliane
Der Absturz-Grund war eine List-ComboBox. Aus der Userform heraus werden Datensätze in eine Tabelle geschrieben. Gleichzeitig soll die ComboBox (3-spaltig) laufend nachgeführt werden.
Definition der ComboBox: RowSource (im Eigenschaftsfenster) mit 3-spaltigem Namensbereich (=TabKindStamm[[KindId]:[Vorname]])
Dieses Update der ComboBox hat nicht bzw. nur eine gewisse Zeit (1 bis einige Datensätze lang) funktioniert und liess Excel abstürzen.
RowSource wird nun per Code laufend neu definiert (AddItem). Das hat das Problem eliminiert.
Gurss an alle, Liliane

Peters Aussage kann ich nur bestätigen ... kwT
06.01.2013 14:38:03
Matthias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige