Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
788to792
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
788to792
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel Absturz bei kompiliertem Code

Excel Absturz bei kompiliertem Code
08.08.2006 18:59:03
Timo
Danke Gerd für die Vorschläge, hat leider nicht geholfen. Mein Problem besteht weiter... (siehe hier: https://www.herber.de/forum/archiv/784to788/t787953.htm )
Ich habe noch etwas getestet und bin nun zu folgendem Ergebnis gekommen:
In "UserForm_Initialize()" wird das aktuelle Datum ermittelt und dadurch auch automatisch die dazu passenden Daten ermittelt.
Wenn ich dies abschalte und nur durch manuelles ändern des Monats die Prozeduren Urlaub und MAInfo starte, stürzt Excel nicht ab.
Es ist zwar keine schöne Lösung, aberhin etwas...
Kann man die Ausführung von VBA-Code irgendwie für eine bestimmte Zeit unterbrechen, so wie "Pause(1sek)" oder so in der Art?
Für weiteren Rat bin ich auch weiterhin dankbar...
' UserForm8
Dim Monat, LaufNrMax
Dim Tagemax As Integer

Private Sub UserForm_Initialize()
ComboBoxMonat.AddItem "Januar"
ComboBoxMonat.AddItem "Februar"
ComboBoxMonat.AddItem "März"
ComboBoxMonat.AddItem "April"
ComboBoxMonat.AddItem "Mai"
ComboBoxMonat.AddItem "Juni"
ComboBoxMonat.AddItem "Juli"
ComboBoxMonat.AddItem "August"
ComboBoxMonat.AddItem "September"
ComboBoxMonat.AddItem "Oktober"
ComboBoxMonat.AddItem "November"
ComboBoxMonat.AddItem "Dezember"
'  Monat = Month(Date)
Select Case Monat      ' aktuellen Monat als Vorauswahl
Case "1"
ComboBoxMonat.ListIndex = 0
'{...}
Case "12"
ComboBoxMonat.ListIndex = 11
End Select
End Sub


Private Sub ComboBoxMonat_Change()
''''' Tage Ein- bzw. ausblenden '''''
Select Case ComboBoxMonat.ListIndex
Case "0"
Monat = 1
Tagemax = 31
Monat31     ' Tag 29-31 ein-/ausblenden
Case "1"
Monat = 2
Tagemax = 28
Monat29
'{...}
Case "11"
Monat = 12
Tagemax = 31
Monat31
End Select
Call Urlaub(Tagemax) ' Werte aktualisieren
End Sub

'------------------------------------------
'Modul 3
Dim LaufNrMax As Integer
Function Urlaub(Tagemax As Integer)
Dim datum As Date
Dim tag, abteilung, bereich
Dim Zähler
Dim ZählerWE, ZählerWB, ZählerWA, ZählerHT, ZählerWE1, ZählerWE2, ZählerWE3
Dim ZählerWB1, ZählerWB2, ZählerWB3, ZählerWB4, ZählerWB5, ZählerWB6, ZählerWB7
Dim ZählerWA1, ZählerWA2, ZählerWA3, ZählerHT1
Sheets("Urlaub").Visible = True
Sheets("Urlaub").Select
Monat = UserForm8.ComboBoxMonat.ListIndex + 1
For Each zelle In Range(Cells(1, 1), Cells(2000, 1))
If zelle.Value = "" Then
LaufNrMax = zelle.Row
Exit For
End If
Next
''''' Es werden für alle 434 Label die Anzahl der MItarbeiter mit Urlaub ermitteln'''''
' Select Case - Anweisung
'{...}
End Function

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

Betreff
Datum
Anwender
Anzeige
AW: Excel Absturz bei kompiliertem Code
08.08.2006 20:34:10
ingUR
Hallo, Timo,
zum Thema Prozedurauführung zu einen bestimmten Zeitpunkt für eine Zeitspane zu stoppen, sieh in der Online-hilfe unter dem Stichwort "Wait-Methode" nach:
Gruß,
Uwe
AW: Excel Absturz bei kompiliertem Code
08.08.2006 21:13:45
ingUR
Hallo, Timo,
durch meine "Nebenantwort" ist Deine eigentliche Frage aus der Lister der "offenen Fragen" herausgeflogen. Das will ich u.a. hiermit wieder ändern.
Also m.E. kann es nicht an der Initialisierungs-Routine der UserForm8 liegen, die führt keine Anweisungen aus, die nicht in verträglichen Zeiten erledigt sind. Ich habe dies an folgenenden Code getestet, den ich aus der von dir verwendeten Routine abgeleitet habe.
Private Sub UserForm_Initialize()
Monate = Array("Januar", "Februar", "März", _
"April", "Mai", "Juni", _
"Juli", "August", "September", _
"Oktober", "November", "Dezember")
ComboBoxMonat.List = Monate
Monat = Month(Date)
ComboBoxMonat.ListIndex = Monat - 1
MsgBox "UserForm_Initialize erledigt"
End Sub

Das bedeutet wohl, dass die Ursache bei der nachfolgenden Einbindung der Elemente in die Form versagt. Bei 450 Elementen, wenn ich es recht verstanden habe, wird die suche wohl schwer fallen.
Jedoch wird es auch schwierig, ohne weitere Kennntis über den Programmaufbau, mögliche Fehlerquellen geziehlt aufzuzeigen oder Wege zu deren Auffindung zu empfehlen.
Eine Ergänzungsfrage zur Art des Absturzes: [Strg][Pause/Untbr] wird vermutlich bereits nicht mehr reagieren. Welchen Status im Taskmanager der Windowsumgebung wird angegeben, welchen Auslastungsgrad hat das System?
Viel Erfolg,
Uwe
Anzeige
AW: Excel Absturz bei kompiliertem Code
08.08.2006 21:30:16
fcs
Hallo Timo, Hallo Uwe
das Problem ist schon in der von Timo erstellten Initialisierungsprozedur.
In den Case-Anweisungen wird jewils auf einen String geprüft ("1", "2" usw.)
Monat = Month(Date)
ergibt aber für Monat einen numerischen Wert. Damit gibt es natürlich einen Typ-Konflikt in den Case-Anweisung bzw. der ComboBoxMonat wird kein Indexwert zugewiesen, da kein Case-Fall eine Übereinstimmung ergibt. Das führt dann später wahrscheinlich zu Problemen.
Uwe's neuer Vorschlag mit
Monat = Month(Date)
ComboBoxMonat.ListIndex = Monat - 1
umgeht dieses Problem.
gruss
Franz
Anzeige
AW: Excel Absturz bei kompiliertem Code
09.08.2006 00:09:23
Gerd
Hallo Timo,
die Variable "Monat" in Userform_Initialize (zur Ermittlung des aktuellen Monats)
und die Variable "Monat" in der Funktion Urlaub haben mitunter verschiedene Werte.
Verwende zwei Variablen (z.b. aktuellerMonat, UrlaubMonat).
P.S. Besser immer alle Variablen deklarieren. Hierbei hilft die Einstellung "Variablendeklaration erzwingen" im Editor unter Extras -- Optionen
Gruß
Gerd
AW: Excel Absturz bei kompiliertem Code
09.08.2006 18:45:42
Timo
Hallo!
Erstmal danke für die Ratschläge...
@ingUR: Excel ist sofort nach aufruf des Formulars weg... die Systemauslastung liegt vorher bei CPU ~60% und 32MB RAM.
@fcs: das Problem tritt nur bei der automatischen Ausführung in der Initialisierung auf, zZ öffne ich das Formular 8 ohne voreingestellten Monat und ändere dann auf das gewünschte Datum - und es funktioniert...
auch wenn ich nur einen Kommentar in den Quellcode einfüge, klappt es wieder für einmal.
Ich gehe davon aus das Excel denCode kompiliert und fürsnächste Mal speichert, denn die Datei wird auch ohne das ich etwas ändere nach dem ersten Ausführen 500KB größer...
Kann man das nicht irgentwie unterdrücken? hab in den Projekteigenschaften nichts gefunden...
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige