Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1600to1604
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 aufrufen und Event fortsetzen

Userform aufrufen und Event fortsetzen
20.01.2018 12:31:41
Willi
Hallo,
ich suche jetzt schon einige Zeit im Internet und werde nicht fündig.
Ich habe zwei Userforms. In der ersten werden Eingaben gemacht. Aufgrud dieser Eingaben wird die Exceltabelle bearbeitet. In der zweiten habe ich eine ProgressBar eingefügt, mit der ich den Fortschritt der Änderung anzeigen will.
Mein Code für einen CommonadButton in der ersten Userform sieht folgendermaßen aus:
Private Sub CB_Ausführen_Schichten_Click()
'mein Code
UF_Warten.Show    'nach öffnen der UF soll der Code fortgesetzt werden
'mein Code
UF_Warten.PB_Status = UF_Warten.PB_Status + 1 'funktioniert das?
'mein Code
UF_Warten.PB_Status = UF_Warten.PB_Status + 1 'funktioniert das?
' an einigen weiteren Stellen, soll die ProgressBar erhöht werden
UnloadUF_Warten
End Sub

Was muss ich machen, damit der Code nach öffnen der UF_Warten weiter fortgesetz wird?
Und würde das Erhöhen der Progressbar so funktionieren?
Oder bin ich da komplett auf dem Holzweg?
Grüße,
Willi

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform aufrufen und Event fortsetzen
20.01.2018 13:37:48
Ralf
Hi Willi,
zunächst müssten beide Formen modeless gestartet werden oder die Eigenschaft ShowModal auf false gesetzt werden. Auch ergibt das Erhöhen der Progressbar auf einen Button keinen Sinn, da ja nicht wirklich der Fortschritt eines Prozesses angezeigt wird (in Deinem Fall, wie oft der User auf den Button klickt....:) ).
Meine Meinung zur Progressbar:
1. Wenn die Abarbeitung des Codes so lange dauert, dass der User informiert werden muss, dann würde ich zunächst einmal schauen, ob der Code optimal ist.
2. verbraucht auch die Progressbar Ressourcen, was die Angelegenheit noch einmal verlangsamt.
3. könntest Du auf der Startform auch alternativ ein Label mit roter Information zum Vorgang einblenden lassen, dass Du nach Beendigung des Prozesses wieder unsichtbar machst. Dafür (wie übrigens auch für die Progressbar) wird jedoch keine 2. Form zwangsweise benötigt.
Fazit: Generell würde ich Dir vom Einsatz der Progressbar eher abraten.
Anzeige
AW: Userform aufrufen und Event fortsetzen
20.01.2018 13:51:04
Willi
Hallo Anton,
die Änderung im Tabellenblatt läuft über Schleifen. Der User klickt also nur einmal auf den Button und alle Daten werden geändert.
Mit vbModeless funktioniert es fast perfekt. Auch das erhöhen der ProgressBar funktioniert. Auf der UserForm UF_Warten gibt es die PrograssBar und ein Label mit dem Hinweis: Bitte warten. Die ProgressBar wird angezeigt jedoch das Label nicht. Die Eigenschaft Visible ist auf True. Warum wird das nicht angezeigt?
Grüße,
Willi
AW: Userform aufrufen und Event fortsetzen
20.01.2018 14:14:16
Nepumuk
Hallo Willi,
du benötigst nach einer Änderung des Labels ein Repaint des UserForms.
Beispiel:
With UserForm2
    .Label1.Caption = "100%"
    .Repaint
End With

Gruß
Nepumuk
Anzeige
AW: Userform aufrufen und Event fortsetzen
20.01.2018 14:28:17
Willi
Hallo Nepumuk,
eigentlich ändere ich das Label nicht.
Ich bekomme eine Fehlermeldung: Methode oder Datenobjekt nicht gefunden. Im Code wird .Repaint blau markiert. (Userform und Labelname habe ich angepasst)
Gruß,
Willi
AW: Userform aufrufen und Event fortsetzen
20.01.2018 14:34:28
Nepumuk
Hallo Willi,
dann habe ich dich falsch verstanden. Du musst in dem Fall das Repaint im Activate-Event des UserForms unterbringen:
Private Sub UserForm_Activate()
    Repaint
End Sub

Gruß
Nepumuk
Anzeige
AW: Userform aufrufen und Event fortsetzen
20.01.2018 14:40:26
Willi
Hallo Nepumuk
Es funktioniert immer noch nicht, das Label ist nicht zu sehen.
Gruß,
Willi
AW: Userform aufrufen und Event fortsetzen
20.01.2018 14:51:24
Nepumuk
Hallo Willi,
kann ich nicht nachvollziehen. Hast du den Code auch in deinen UF_Warten kopiert?
Ansonsten musst du mal die Mappe hochladen.
Gruß
Nepumuk
AW: Userform aufrufen und Event fortsetzen
22.01.2018 21:39:16
Willi
Hallo!
So, ich habe jetzt den Fehler gefunden. Die ProgressBar wird ja von dem Code der ersten UserForm (bei mir UF_Menü) erhöht. Also musste ich nach jedem mal Erhöhen der ProgressBar, die sich ja in der zweiten UserForm (bei mir die UF_Warten) befindet, den Befehl UF_Warten.Repaint ausführen und alles klappt, wie gewollt. Das Label ist zu sehen.
Vielen Dank für die Hilfe.
Grüße,
Willi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige