ich habe ein kleines Problem mit einer meiner Userforms und hoffe, Ihr könnt mir bei der Lösung behilflich sein.
Beschreibung:
In meiner Userform7 befindet sich ein CommandButton2, dessen Bestätigung einige Tätigkeiten vornimmt und anschließend eine weitere Userform (Userform8) öffnet. Userform8 enthält einen Ladebalken + Fortschrittsanzeige und wird nach der Ausführung beendet. Anschließend öffnet sich die Userform9, die das Ergebnis des Ladevorgangs anzeigt.
Problembeschreibung:
Über den CommandButton in Userform7 werden einige Angaben angepasst und das Modul9 (Angaben zurücksetzen) geladen. Allerdings hindert das Aufrufen des Modul9 die Userform8 an der korrekten Ausführung. Sie öffnet sich zwar, aber unterbricht dann abrupt, sodass die Fortschrittsanzeige ausbleibt und Userform8 nicht geschlossen wird und Userform9 nicht geladen wird. Wenn ich das Modul9 im Code (siehe unten Nr. 1) ausblende läuft alles reibungslos durch. Ich habe eigentlich alles mögliche versucht um den Fehler zu beheben, komme aber nicht weiter und hoffe, dass mir da jemand weiterhelfen kann.
Codes:
1. Code: Userform7 - Commandbutton
Private Sub CommandButton2_Click()
'Code-Beschreibung: Userform7 auf "Bearbeitungsstand zurücksetzen" geklickt.
Dim Cancel As Boolean
If ((UserForm7.CheckBox11.Value = True And UserForm7.CheckBox9.Value = False) And _
(UserForm7.CheckBox5.Value = True And UserForm7.CheckBox6.Value = False And UserForm7.CheckBox7.Value = False And UserForm7.CheckBox8.Value = False) And _
(Worksheets("Tabelle1").Range("C34") = "Q4" Or Worksheets("Tabelle1").Range("C40") = "Q3" Or Worksheets("Tabelle1").Range("C37") = "Q1")) Then
Worksheets("Tabelle1").Range("C34").Copy
Worksheets("Tabelle1").Range("C55").PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Worksheets("Tabelle1").Range("C37").ClearContents
'Nr. 1: Datenbereinigung (Verweis auf Modul 9).
Bearbeitungsstand_Zurücksetzten_1
'Nr. 2: Rückführung auf Reiter "Übersicht".
Worksheets("Übersicht").Activate
'Nr. 3: Dokumentation des Bearbeitungsstatus.
UserForm7.CheckBox3.Value = False
UserForm7.CheckBox3.Enabled = False
UserForm7.CheckBox4.Value = True
UserForm7.CheckBox4.Enabled = True
'Nr. 4: Userform7 initialisieren und beenden.
Userform_Initialize
Unload Me
'Nr. 5: Userform7 initialisieren und Userform8 laden.
UserForm8.Show
End If
2. Code: Userfom8 - Ladebalken und Fortschrittsanzeige
Private Sub UserForm_Activate()
Call MWFortschrittsanzeige
End Sub
Private Sub MWFortschrittsanzeige()
Dim i As Long
Dim MWProgressBar_dStepValue As Double
Dim MWProgressBar_dProgress As Double
Dim MWProgressBar_lStep As Double
Dim MWProgressBar_MaxSteps As Double
Const lSTEPS As Long = 7500
Const dMAXLABELWIDTH As Double = 354
MWProgressBar_MaxSteps = lSTEPS
MWProgressBar_dStepValue = CDbl(dMAXLABELWIDTH / CDbl(lSTEPS))
MWProgressBar_dProgress = 0
Frame1.Visible = True
Label1.Visible = True
Label1.Width = 1
For i = 1 To lSTEPS
MWProgressBar_dProgress = MWProgressBar_dProgress + MWProgressBar_dStepValue
Label1.Width = MWProgressBar_dProgress
DoEvents
Next i
Frame1.Visible = False
Label1.Visible = False
Unload Me
UserForm9.Show
End Sub
3. Code: Userform9: Anzeige Ergebnis Ladebalken
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Activate()
Frame2.Visible = True
Label2.Visible = True
Label3.Visible = True
CommandButton1.Visible = True
End Sub