Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1908to1912
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 ShowModal False ohne Inhalt

Userform ShowModal False ohne Inhalt
05.12.2022 01:30:47
Lapos
Hallo,
ich habe hier ein Userform(warten) um eine Wartezeit in meinem Code zu überbrücken. Das Userform beinhaltet ein Microsoft Web Browser Element in dem eine gif Animation angezeigt wird. Setze ich ShowModal auf True wird das Userform samt Inhalt vollständig angezeigt aber der Code läuft nicht weiter. Setze ich ShowModal auf False wird nur ein weißes Userform mit seiner Überschrift angezeigt und der Code läuft weiter. Wie kann man es erreichen das, das Userform vollständig angezeigt wird und der Code weiter läuft?

warten.Show
Application.Wait (Now() + TimeValue("00:00:30"))
Unload warten
Viele Grüße
Lapos

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform ShowModal False ohne Inhalt
05.12.2022 10:14:56
Nepumuk
Hallo Lapos,
teste mal:

Option Explicit
Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)
Public Sub Test()
With warten
Call .Show
Call .Repaint
End With
Call Sleep(30000)
Call Unload(Object:=warten)
End Sub
Gruß
Nepumuk
AW: Userform ShowModal False ohne Inhalt
05.12.2022 14:01:25
Lapos
Hallo Nepumuk, an welcher Stelle muss ich deinen Code bei mir Plazieren?
In meinem Userform habe ich im Moment folgenden Code

Private Sub UserForm_Initialize()
Me.WebBrowser1.Navigate2 (ThisWorkbook.Path & "\..\Script\Logo\download.gif")
End Sub
Und im Modul

Sub Daten_downloadButton2()
'Webiste öffnen
Set wshshell = CreateObject("WScript.Shell")
wshshell.Run "https://test.de", vbMaximizedFocus
'Zellen in die Zwischenablage kopieren
Dim rngMeinBereich As Range
Dim lngLetzteZeile As Long
With Tabelle1
lngLetzteZeile = .Range("R" & .Rows.Count).End(xlUp).Row
'Beachten , dass alle ausgeblendeten Zeilen übersprungen werden.
End With
Set rngMeinBereich = Tabelle1.Range(Cells(3, 18), Cells(lngLetzteZeile, 18))
With rngMeinBereich
rngMeinBereich.Select
Selection.Copy
End With
'warten bis Website geladen ist
Application.Wait (Now() + TimeValue("00:00:05"))
' sendkeys ausführen
Call app 'Makro10
warten.Show
Application.Wait (Now() + TimeValue("00:00:30"))
Unload warten
'Powershell Script  ausführen
PfadName = (ThisWorkbook.Path & "\..\Script\Script_entpacken.ps1")
Call Shell("powershell -file """ & PfadName, 1)
End Sub

Anzeige
AW: Userform ShowModal False ohne Inhalt
05.12.2022 14:07:15
Nepumuk
Hallo Lapos,

Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)
Platzierst du ganz oben im Modul.
und das:

warten.Show
Application.Wait (Now() + TimeValue("00:00:30"))
Unload warten
ersetzt du durch das:

    With warten
Call .Show
Call .Repaint
End With
Call Sleep(30000)
Call Unload(Object:=warten)
Gruß
Nepumuk
AW: Userform ShowModal False ohne Inhalt
06.12.2022 01:08:00
Lapos
Hallo Nepumuk,
erstmal vielen Dank für deine Antwort . Leider verändert sich mit dem Code von Dir bezüglich der sichtbarkeit des Userform nichts. Aber es verschlechtert sich auch nichts :-), das heißt der Code läuft durch, aber eben nur mit "Weißem" Userform wie gehabt.

'code nepumuk
Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)
Sub Daten_downloadButton2()
'Webiste öffnen
Set wshshell = CreateObject("WScript.Shell")
wshshell.Run "https://test.de", vbMaximizedFocus
'Zellen in die Zwischenablage kopieren
Dim rngMeinBereich As Range
Dim lngLetzteZeile As Long
With Tabelle1
lngLetzteZeile = .Range("R" & .Rows.Count).End(xlUp).Row
'Beachten , dass alle ausgeblendeten Zeilen übersprungen werden.
End With
Set rngMeinBereich = Tabelle1.Range(Cells(3, 18), Cells(lngLetzteZeile, 18))
With rngMeinBereich
rngMeinBereich.Select
Selection.Copy
End With
'warten bis Website geladen ist
Application.Wait (Now() + TimeValue("00:00:05"))
' sendkeys ausführen
Call app 'Makro10
'warten.Show
'Application.Wait (Now() + TimeValue("00:00:30"))
'Unload warten
'code nepumuk
With warten
Call .Show
Call .Repaint
End With
Call Sleep(30000)
Call Unload(Object:=warten)
'Powershell Script entpacken ausführen
PfadName = (ThisWorkbook.Path & "\..\Script\Script_entpacken.ps1")
Call Shell("powershell -file """ & PfadName, 1)
End Sub

Anzeige
AW: Userform ShowModal False ohne Inhalt
06.12.2022 11:40:20
Nepumuk
Hallo Lapos,
kann ich nicht nachvollziehen. Füge mal noch DoEvents ein:

 With warten
Call .Show
Call .Repaint
DoEvents
End With
Weitere Ideen habe ich nicht.
Gruß
Nepumuk
AW: Userform ShowModal False ohne Inhalt
06.12.2022 11:50:47
Lapos
Mit "DoEvents" wird jetzt das gif angezeigt, jedoch steht es still und bewegt sich nicht. Der Code läuft aber durch.
AW: Userform ShowModal False ohne Inhalt
06.12.2022 12:09:40
Nepumuk
Hallo Lapos,
Wait oder Sleep blockieren das System. Da Hilft nur:

Option Explicit
Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)
Sub Daten_downloadButton2()
Dim lngLetzteZeile As Long
Dim sngTimer As Single
Dim wshshell As Object
Dim PfadName As String
'Webiste öffnen
Set wshshell = CreateObject("WScript.Shell")
wshshell.Run "https://test.de", vbMaximizedFocus
'Zellen in die Zwischenablage kopieren
With Tabelle1
.Range(Cells(3, 18), Cells(.Rows.Count, 18).End(xlUp)).Copy
'Beachten , dass alle ausgeblendeten Zeilen übersprungen werden.
End With
'warten bis Website geladen ist
Call Sleep(5000)
' sendkeys ausführen
Call app 'Makro10
'warten.Show
'Application.Wait (Now() + TimeValue("00:00:30"))
'Unload warten
'code nepumuk
With warten
Call .Show
Call .Repaint
End With
sngTimer = Timer
Do Until Timer > sngTimer + 30
DoEvents
Call Sleep(100)
Loop
Call Unload(Object:=warten)
'Powershell Script entpacken ausführen
PfadName = ThisWorkbook.Path & "\..\Script\Script_entpacken.ps1"
Call Shell("powershell -file """ & PfadName, 1)
End Sub
Gruß
Nepumuk
Anzeige
AW: Userform ShowModal False ohne Inhalt
06.12.2022 16:40:21
Lapos
Hallo Nepumuk,
vielen Dank , der Code läuft und das gif(drehender Ladekreis) wird auch angezeigt und bewegt sich. Das einzige ist das es sehr stark ruckelt beim drehen.
Kannst du mir eventuell dieses Stück code etwas erklären?

 sngTimer = Timer
Do Until Timer > sngTimer + 30
DoEvents
Call Sleep(100)
Loop

AW: Userform ShowModal False ohne Inhalt
06.12.2022 16:45:18
Nepumuk
Hallo Lapos,
setz mal die Sleep-Methode auf 10 Millisekunden runter.
Gruß
Nepumuk
AW: Userform ShowModal False ohne Inhalt
06.12.2022 18:09:01
Lapos
PERFEKT!!!
Vielen Dank!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige