Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1460to1464
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 while Makrodurchführung

Userform while Makrodurchführung
04.12.2015 18:36:47
Major

Hallo zusammen,
das ist mein erster Versuch eine Userform zu benutzen. Dementsprechend schwach bin ich da. Userform erstellt habe ich schon. Name: UserForm1
Bei Dateistart starte ein Private Sub Workbook_Open() der verschiedene Module ausführt. Die Userform soll einfach bevor jegliches Makro durchgeführt wird, erscheinen und am Ende als letztes wieder automatisch verschwinden.
Die Userform hat keinen Ok-Button, somit so schonmal nicht zwischendurch wegklickbar. Aber auch über das rote Kreuz soll diese nicht wegzuklicken sein. Ist das möglich?
Danke für eure Hilfe!
Gruss Major

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform while Makrodurchführung
04.12.2015 18:45:32
Hajo_Zi

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' damit mit X nicht geschloßen werden kann
If CloseMode = 0 Then
MsgBox "Bitte schließen Sie die Anwendung mit der - " & Cmd_Ende.Caption & " - Schaltflä _
che.", vbCritical
Cancel = 1
End If
End Sub


AW: Userform while Makrodurchführung
04.12.2015 19:30:00
Nepumuk
Hallo,
ohne irgendeine Meldung:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Cancel = Cint(CloseMode = vbFormControlMenu)
End Sub

Gruß
Nepumuk

Anzeige
AW: Userform while Makrodurchführung
07.12.2015 08:37:36
Major
Hallo zusammen,
danke Nepoumuk, habe nun mal deine Lösung getestet.
Habe es noch nicht hinbekommen.
Also wo muss ich das denn nun einfügen?
Wie beschrieben, habe einen private sub Workbook_Open, der alles ausführt, verschieden Module aufruft.
Ich kenne den Unterschied zwischen public, private usw. nicht.
Folglichfällt es mir schwer nachzuvollziehen, wo ich nun den vorgeschlagenen private sub einfügen soll.
Danke für eure Hilfe!
Gruss Major

AW: Userform while Makrodurchführung
07.12.2015 08:57:14
Daniel
Hi
entscheidend ist, dass die Userform nicht modal ist.
bei modalen Userformen stoppt der Makrolauf solange die Userform geöffnet ist und läuft erst weiter, wenn die Userform geschlossen wird.
eine nicht-modale Userform bekommst du, indem du in der Eigenschaftsliste den Parameter "ShowModal" auf False setzt oder beim Aufruf der Userform den Parameter False angibst.
Dein Code im Workbook-Open-Event sollte in etwa so aussehen:
Private Sub Workbook_Open()
UserForm1.Show False
... hier dann deine Makros
Unload UserForm1
End Sub
Gruß Daniel

Anzeige
AW: Userform while Makrodurchführung
07.12.2015 10:00:31
Major
Hi daniel,
danke schonmal für deine Erklärung.
Ich glaube meine Unwissenheit beginnt noch weiter vorne. :)
Habe das jetzt ausprobiert wie du beschrieben hast, aber ich bekomme die Userform nie zu Gesicht.
Beim Öffnen der Datei fängt Excel kurz an zu Berechnen, dann bleibt es hängen (stürtzt ab).
Wenn ich dann per Taskmanager beenden will funktioniert das auch, die Makros werden abgebrochen, der Debugger öffnet sich.
Der markiere Fehler ist schon "UserForm1.Show".
Gibt es weitere Eigenschaften, die ich bei der Userform beachten muss, damit diese überhaupt erscheint? Vielleicht welche die für euch selbstverständlich sind, für mich aber nicht.
Danke euch für eure hilfe!
Gruss Major

Anzeige
AW: Userform while Makrodurchführung
07.12.2015 10:10:18
Daniel
Hi
lade mal deine Datei hoch, sonst wird das hier ne wilde Rumraterei.
Gruß Daniel

AW: Userform while Makrodurchführung
07.12.2015 10:44:03
Major
Hallo Daniel,
sorry nicht möglich.
Dann muss ichs eben ohne probieren.
Danke trotzdem.
Gruzss Major

AW: Userform while Makrodurchführung
07.12.2015 10:54:09
Daniel
Hi
bei mir geht's.
schau dir mal die Beispieldatei an.
wenn die bei dir funktioniert, dann kannst du ja mal schauen, was bei deiner Datei anders ist.
https://www.herber.de/bbs/user/102057.xlsm
Gruß Daniel

AW: Userform while Makrodurchführung
07.12.2015 14:12:52
Major
Hi Daniel,
danke für deine Datei. Ich bin jetzt soweit. Es funktioniert das die Userform aufgerufen wird und verschwindet. Auch zu den gewünschten Zeitpunkten.
Aaaber und jetzt bin ich fast am verzweifeln.
Es geht nur, wenn die Userform leer ist, kein Text enthält.
Erstelle ich ein Beschriftungsfeld mit Text bricht Excel beim Start zusammen.
zur Info.... bei deiner Datei funktioniert es...egal ob mit Text oder ohne.
Also muss für mich der nächste logische Schritt sein, vergleiche deine mit meiner Datei.
Du verwendest "option explicit"... keine Ahnung warum , auch in Tabelle 1 steht das.
Kann das ein Grund sein?
Gruss Major

Anzeige
AW: Userform while Makrodurchführung
07.12.2015 14:22:04
Daniel
Hi
Option Explicit legt fest, dass du alle verwendeten Variablen vor ihrer ersten Verwendung deklarieren musst (Dim X as Long).
Verwendest du bei Option Explicit eine Variable ohne sie zu deklarieren, dann bekommst du eine Fehlermeldung.
das schützt ein bisschen vor Tippfehlern, weil man dann eine Meldung bekommt, wenn man statt "Variablenname" mal "Variablenmame" schreibt.
Ohne Option Explicit erstellt VBA dann eine neue Variable und du kannst dich nur über seltsame Ergebnisse wundern.
Gruß Daniel

AW: Userform while Makrodurchführung
07.12.2015 14:24:33
Major
Hi Daniel,
also denkst du ist das nicht der Grund warum es in deiner Datei funktioniert und in meiner nicht?
Gruss Major

Anzeige
AW: Userform while Makrodurchführung
07.12.2015 14:32:17
Daniel
ja, das sollte nicht der Grund sein.
bei meiner Beispieldatei ist das egal, da dort keine Variablen verwendet werden.
was bei dir passiert, weiss ich nicht, ich kenne deine Datei nicht.
Gruß Daniel

AW: Userform while Makrodurchführung
07.12.2015 16:56:14
Major
Hi Daniel,
habe jetzt herausgefunden, dass die Schrift immer dann aus der Userform verschwindet, wenn ein Makro im Hintergrund läuft. Allerdings auch nicht bei allen. Die Tendenz geht jetzt hin zu... funktioniert nicht bei Makros, die aufwendiger sind. Makros die Bereiche aktualiesieren, die auf Accesstabellen zugreifen. Klingt das realistisch oder möglich?
Gruss Major

Anzeige
AW: Userform while Makrodurchführung
07.12.2015 17:06:09
Daniel
Hi
die Ausführung der Makros ist für Excel wichtiger als Darstellung der Useform, denn solange das Makro läuft, kann ja auch der Anwender mit der Userform nichts anfangen. Daher wird die Userform erst dann vollständig und korrekt dargestellt, wenn die Makros durchgelaufen sind.
Um die Userform auch während des Makrolaufs vollständig anzeigen zu lassen, kannst du den Befehl: Userform1.Repaint verwenden, insbesondere dann, wenn du den Text in der Userform während des Makrolaufs änderst (du solltest dann den Befehl nach jeder Änderung anwenden)
Gruß Daniel

AW: Userform while Makrodurchführung
07.12.2015 17:24:25
Major
Hi Daniel,
schwere Geburt war das, aber jetzt funktioniert es, danke! wär ich nie von selbst drauf gekommen, Repaint auch noch nie bei anderen Recherchen heutet als mögliche Lösung gesehen.
Danke dir!
Jetzt sprichst du oben an... "falls ich den Text zwischendurch ändern will", wie soll das nun gehen? Müssen es dann einfach immer andere Userforms mit anderem Terxt sein oder geht das auch anders?
Gruss Major

Anzeige
AW: Userform while Makrodurchführung
08.12.2015 09:02:08
Daniel
Hi
Wenn du bspw ein label hast, kannst du den Text auch in einem Makro andern mit
Userform1.label1.caption = "neuer Text"
Gruß Daniel

AW: Userform while Makrodurchführung
09.12.2015 17:08:10
Major
Hi Daniel,
ah okay verstanden,
danke für eure Hilfe!
Thema beendent!
Gruss Major

AW: Userform while Makrodurchführung
07.12.2015 11:03:23
Rudi Maintaire
Hallo,
machs anders rum.
In WorkBook_open nur die UF aufrufen
Im Userform_Initialize die Makros aufrufen.
Private Sub Workbook_Open()
UserForm1.Show
End Sub
Private Sub UserForm_Initialize()
Call Makro1
Call Makro2
Me.Hide
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = Not CloseMode
End Sub
Gruß
Rudi

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige