Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
728to732
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
728to732
728to732
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Image in Userform wird nicht angezeigt
07.02.2006 13:13:14
Reinhard
Hallo Wissende,
die UF erscheint , aber nur als weiße Fläche, mal von Titel und Schließkeuz abgesehen, warum das denn?
Option Explicit
Option Base 1
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Bild()
Dim nr As Byte, Verzeichnis As String, Bilddatei, merker
Verzeichnis = "C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\Beispielbilder\"
Bilddatei = Array("Sonnenuntergang", "Blaue Berge", "Winter")
nächstes:
nr = nr + 1
If nr = 4 Then nr = 1
merker = Timer
UserForm1.Image1.Picture = LoadPicture(Verzeichnis & Bilddatei(nr) & ".jpg")
Sleep 10000 'Wartezeit in Millisekunden
UserForm1.Image1.Picture = LoadPicture("")
GoTo nächstes
End Sub
Sub zeigen()
UserForm1.Show vbModeless
Call Bild
End Sub
Wenn ich die Zeilen:
UserForm1.Image1.Picture = LoadPicture(Verzeichnis & Bilddatei(nr) & ".jpg")
Sleep 10000 'Wartezeit in Millisekunden
UserForm1.Image1.Picture = LoadPicture("")
GoTo nächstes
auskommentiere wird zumindest das erste Bild angezeigt.
Nachfolgenden Code fand ich im Internet, blicke da nicht ganz durch,
wie kann ich den einbinden bzw. benutzen?

Danke ^ Gruß
Reinhard
Du könntest jedoch den API_Timer nutzen, dann würde der Thread nicht
blockiert. Die Funktion sleep_t kehrt nach der angegebenen Zeit zurück.
Rückgabewert ist True, falls erfolgreich.

Declare Function SetTimer Lib "user32" Alias "SetTimer" _
(ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Declare Function KillTimer Lib "user32" Alias "KillTimer" _
(ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private TimerID as long
public Function sleep_t(dwMilliSeconds as long) as Boolean
TimerID = SetTimer(0&, 0&, dwMilliSeconds, AddressOf TimerProc)
sleep_t = (TimerID <> 0)
do
doEvents
loop until TimerID = 0
End Function
Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, _
ByVal uElapse As Long, ByVal lpTimerFunc As Long)
KillTimer 0&, TimerID
TimerID = 0
End Sub 

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Image in Userform wird nicht angezeigt
07.02.2006 13:48:00
u_
Hallo,
bis auf die Tatsache, dass du eine Endlosschleife produzierst:
UserForm1.Image1.Picture = LoadPicture(Verzeichnis & Bilddatei(nr) & ".jpg")
UserForm1.Repaint
Gruß
Geist ist geil!
AW: Image in Userform wird nicht angezeigt
07.02.2006 13:59:51
Reinhard
Danke dir,
das half.
Aber mir ist immer noch sehr unklar warum,
UserForm1.Image1.Picture = LoadPicture(Verzeichnis & Bilddatei(nr) & ".jpg")
müßte doch das Bild anzeigen, bzw. macht es doch auch wenn danach kein Code mehr kommt. Wieso wird kein Bild angezeigt wenn danach Code kommt?
(Die Zeile merker=Timer kann weg, stammte noch aus einer while-wend Codeversion)
Und zur Endlosschleife, ja, werde da noch Abbruchbedingung durch Zellenüberprüfung einbauen, hatte ja deshalb die UF modeless gestartet.
Gruß
Reinhard
Anzeige
Userform imit Endlosschleife abbrechen
07.02.2006 14:21:32
Reinhard
Hallo,
obwohl ich die Uf modeless gestartet habe kann ich keinen Wert in eine Zelle schreiben um dies dann als Abbruchkriterium zu nehmen.
Lsg. aus dem Internet:
Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
ActiveWorkbook.VBProject.VBE.CommandBars(1).Controls(7).Controls(3).Execute
End Sub
klappt nicht. Wie also kann ich die Uf beenden ohne Strg+Pause?
Option Explicit
Option Base 1
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Bild()
Dim nr As Byte, Verzeichnis As String, Bilddatei, merker
Verzeichnis = "C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\Beispielbilder\"
Bilddatei = Array("Sonnenuntergang", "Blaue Berge", "Winter")
nächstes:
nr = nr + 1
If nr = 4 Then nr = 1
merker = Timer
UserForm1.Image1.Picture = LoadPicture(Verzeichnis & Bilddatei(nr) & ".jpg")
UserForm1.Repaint
Sleep 1000 'Wartezeit in Millisekunden
UserForm1.Image1.Picture = LoadPicture("")
GoTo nächstes
End Sub
Sub zeigen()
UserForm1.Show vbModeless
Call Bild
End Sub

Gruß
Reinhard
Anzeige
AW: Userform imit Endlosschleife abbrechen
07.02.2006 14:56:26
Nepumuk
Hallo Reinhard,
versuch es mal so:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Sub Sleep Lib "kernel32" ( _
    ByVal dwMilliseconds As Long)

Public blnClose As Boolean

Public Sub zeigen()
    blnClose = False
    UserForm1.Show vbModeless
    Call Bild
End Sub

Private Sub Bild()
    Dim nr As Byte, Verzeichnis As String, Bilddatei, merker
    Verzeichnis = "D:\Eigene Dateien\Eigene Bilder\"
    Bilddatei = Array("004", "005", "007", "014")
    Do
        For nr = 0 To 3
            UserForm1.Image1.Picture = LoadPicture(Verzeichnis & Bilddatei(nr) & ".gif")
            UserForm1.Repaint
            Sleep 1000 'Wartezeit in Millisekunden
            UserForm1.Image1.Picture = Nothing
            DoEvents
            If blnClose Then Exit Do
        Next
    Loop
    Unload UserForm1
End Sub

' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub Image1_Click()
    blnClose = True
End Sub

Gruß
Nepumuk

Anzeige

364 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige