Im Hintergrund einer UserForm läuft kein Macro?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm Label


Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Im Hintergrund einer UserForm läuft kein Macro?
von: Ruben
Geschrieben am: 15.07.2002 - 11:27:19

Hi!

Mein Problem ist folgendes:

Ich habe eine UserForm, auf der ein Benutzer Daten eingibt. Drückt er auf Speichern, so werden diese in ein Worksheet übertragen, das dauert jedoch seine Zeit.
Kann ich dem User durch einblenden einer neuen kleinen UserForm währende des Übertragungsvorgangs klarmachen, das Excel grade arbeitet und nicht abgestürzt ist? :)

Bei mir scheint das so wie ich das gedacht habe nicht zu klappen:


Sub ButtonSave_Click()
 UserFormBittewarten.Show

 Worksheets("Daten").Range("B2") = UserFormFormular.TextFeld1.value ...
 ' blah blah, weiterer code
 ' Wenn Code fertig, dann:
 UserFormBittewarten.Hide
End Sub

Nach dem Klicken taucht dann das kleine Hinweisfenster mit Bitte Warten zwar auf, aber der Code der danach ablaufen sollte wird nicht ausgeführt.

Hat irgendjemand eine Idee?

Ciao
Ruben

nach oben   nach unten

Re: Im Hintergrund einer UserForm läuft kein Macro?
von: Ralph P.
Geschrieben am: 15.07.2002 - 12:08:04

Hallo Ruben
Wenn du den Code Worksheets... in die UF UserFormBittewarten beim aktivieren der Userform ausführst müsste es gehen

Beispiel:
UF UserformFormular
Sub ButtonSave_Click()
UserFormBittewarten.Show
End Sub

UF UserformBittewarten

Private Sub UserForm_Activate()
Worksheets("Daten").Range("B2") = UserFormFormular.TextFeld1.value
...
End Sub

nach oben   nach unten

Re: Im Hintergrund einer UserForm läuft kein Macro?
von: Ruben
Geschrieben am: 15.07.2002 - 12:24:40

Ja, stimmt, müsste eigentlich gehen.
Das dumme ist nur, dass ich viele verschiedene Stellen habe, bei dem Excel etwas Zeit braucht und ich immer die gleiche Anzeigen verwenden wollte.

naja, aber es is besser als nix, danke :)

Ciao
Ruben

nach oben   nach unten

Re: Im Hintergrund einer UserForm läuft kein Macro?
von: Dan
Geschrieben am: 15.07.2002 - 13:08:24

Ruben,
es wahre auch moglich, dass Du den UserForm "BitteWarten" mit einer Label ersatst. Gib eine Label1 an den UserFormFormular zu, stell die Eigenschaft Visiblé=False ein. Dann in dein Code gib dies :
Sub ButtonSave_Click()
Label1.Visible=True
Label1.Caption="Warten, 10% fertig"
UserFormFormular.Repaint
Worksheets("Daten").Range("B2") = UserFormFormular.TextFeld1.value ...
' blah blah, weiterer code
Label1.Caption="Warten, 50% fertig"
UserFormFormular.Repaint
' Wenn Code fertig, dann:
Label1.Caption="Warten, 100% fertig"
UserFormFormular.Repaint
End Sub



nach oben   nach unten

Re: Im Hintergrund einer UserForm läuft kein Macro?
von: Ruben
Geschrieben am: 15.07.2002 - 13:42:03

Ah, danke,
das ist in der Tat das was ich gesucht hab!

Werds gleich mal einbauen

Ciao
Ruben


nach oben   nach unten

Re: Im Hintergrund einer UserForm läuft kein Macro?
von: Dan
Geschrieben am: 15.07.2002 - 14:09:54

Es freut mich, dass es Dir geholfen hat! Man kann das noch verbessern wenn man statt Label zwei Label nimmt. Beide leigen aneinader, die untere ist weiss, die obere z.b. blau. Mit der unteren passiert nichts. Man verandert nur die Lange der oberen und damit zeigt sich, wie das code ablauft. Es konnte so ausehen:
----------------------------------------------------------------
Public Sub ProgressBarUpdate(aNewLength As Integer)
Static intAktualLength As Integer
Dim i As Integer

With Me
If aNewLength < 60 Then
.lblCaption.ForeColor = RGB(0, 0, 255)
Else
.lblCaption.ForeColor = RGB(255, 255, 255)
End If

For i = intAktualLength To 2 * aNewLength
intAktualLength = intAktualLength + 1
.lblBlue.Width = intAktualLength
.lblCaption.Caption = CStr(CInt(intAktualLength / 2)) & "%"
.Repaint
Next i
End With
intAktualLength = intAktualLength + aNewLength

End Sub
-----------------------------------------------------------------
'lblBlue und lblWhite sind die beiden Labels
'lblCaption ist eine dritte Label, die eine % Zahl erscheinen last
'die verwendung ist sehr ahnlich als bei der Label. Statt Label.Caption="Warten Sie, es ist 20% fertig, ruft man in den code an mehreren Stellen die function : ProgressBarUpdate 20


nach oben   nach unten

Re: Im Hintergrund einer UserForm läuft kein Macro?
von: Ruben
Geschrieben am: 15.07.2002 - 16:43:13

Hi!

Wow, das ist ja eine ganz elegante Lösung, vielen Dank!
Ich werd versuchen das einzubauen, sobald ich meine gröbsten Fehler beseitigt habe ;-)

Ciao
Ruben


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Im Hintergrund einer UserForm läuft kein Macro?"