1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Excel Logo 5 sec anzeigen

Discussion in 'Office-Programme' started by kn, Dec 3, 2006.

Thread Status:
Not open for further replies.
  1. kn

    kn Byte

    Hallo,
    ich moechte in Excel ein Logo 5 sec lang anzeigen lassen, dafür benutze ich folgenden Code.
    Das Logo wir zwar angezeigt, verschwindet aber nicht nach 5 sec. Was ist falsch an dem Code?
    Ich habe es mit Application.Now und Application.Wait versucht.

    Private Sub Workbook_Open()
    UserForm1.Show
    End Sub
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode <> 1 Then Cancel = True
    End Sub
    Private Sub UserForm_Initialize()
    'Application.OnTime Now, TimeValue("00:00:5"), "BeendenUserform"
    Application.Wait (Now + TimeSerial(0, 0, 5)), "BeendenUserform"
    End Sub
    Sub BeendenUserform()
    Unload UserForm1
    End Sub

    Danke fuer Eure Hilfe.
     
  2. Betty2004

    Betty2004 Byte

    In Diese Arbeitsmappe:

    Private Sub Workbook_Open()
    UserForm1.Show
    End Sub

    In die Userform:

    Private Sub UserForm_Activate()
    Application.Wait Now + TimeValue("00:00:05")
    Me.Hide
    End Sub
     
  3. kn

    kn Byte

    Hallo Betty,
    vielen Dank fuer die schnelle Antwort, ich habe Deinen Code eingegeben, leider bleibt das Logo hartnaeckig stehen.
    Ich arbeite uebrigens mit Excel 2003.
     
  4. Hascheff

    Hascheff Moderator

    Es fehlt lediglich ein Klammernpaar:
    Application.Wait(Now + TimeValue("00:00:05"))
     
  5. kn

    kn Byte

    Hallo Hatscheff,
    danke für Deine Hilfe.
    Wenn ich die Klammer in Bettys Code setze, erhalte ich einen Kompilierungsfehler bei "Me.Hide"

    Wenn ich die Klammer in meinem Code einsetze, wird das Logo wieder dauerhaft angezeigt.
    Sorry.
     
  6. Hascheff

    Hascheff Moderator

    Hallo kn,
    Ich hatte getestet, und auch heute hat es wieder funktioniert. Allerdings habe ich Excel2000.
    In der Hilfe habe ich heute gelesen, dass Me nur in Klassenmodulen zur Verfügung steht, also ist es verwunderlich, dass es bei mir funktioniert hat.
    :grübel:
    Dann habe ich mir noch mal deinen Ursprungscode angesehen und die Lösung gefunden:
    Ersetze
    Me.Hide
    durch
    Unload UserForm1
    Aber nicht wie im Ursprungscode in der Beenden-Prozedur, sondern eben direkt nach dem Wait.
    Unload ist sowieso besser als Hide.
    Getestet habe ich auch wieder.
     
  7. kn

    kn Byte

    Hallo Hatscheff, erst einmal vielen Dank für all Deine Mühe.
    Keine Frage, ich habe auch einmal in grauer Vorzeit gelernt, UserForms wieder zu entladen, um den Arbeitsspeicher nicht zu überfrachten, insofern ist der unload Befehl immer vorzuziehen.
    Leider funktioniert Dein Vorschlag Me.Hide durch Unload UserForm1 zu ersetzen auch nicht.
    Sorry.
     
  8. Beverly

    Beverly Halbes Megabyte

    Hi kn,

    hast du folgendes beachtet: es ist das Activate, nicht das Initialize Ereignis, in dem Betty's Code steht. Und er funktioniert in Excel2002 und 2003.
     
  9. Hascheff

    Hascheff Moderator

    Und was funktioniert konkret nicht?
    Poste doch noch mal dein Listing, wie es jetzt ist.
     
  10. kn

    kn Byte

    Hallo Hatscheff,
    wie gewuenscht, hier ist mein aktuelles Listing:
    Private Sub Workbook_Open()
    UserForm1.Show
    End Sub
    Private Sub UserForm_Activate()
    Application.Wait (Now + TimeValue("00:00:05"))
    Unload UserForm1
    End Sub

    Danke für Deine Hilfe! Bin mal gespannt, wo mein Fehler liegt?
     
  11. Hascheff

    Hascheff Moderator

    Also wenn Excel2003 nicht dümmer als Excel2000 ist, sehe ich nur noch zwei Möglichkeiten.

    1. Deine und meine Installation unterscheiden sich. Das kann ich mir aber nicht vorstellen.

    2. Dein Code ist anders platziert als meiner. Du schreibst ja auch von einem Listing. Die Prozeduren müssen aber in verschiedenen Modulen stehen.
    die Private Sub UserForm_Activate() muss im Modul UserForm1 (Rechtklick auf Userform1 im Projekt-Explorer, Code anzeigen) stehen, die andere in "Diese Arbeitsmappe".
    In beiden Fällen darfst du den Prozedurrahmen nicht selbst eintippen sondern musst im Editorfenster oben links die Objektliste und rechts die Prozedurliste verwenden.

    Na dann schaun wir mal.
     
  12. kn

    kn Byte

    Hallo Hascheff,
    tut mir leid, ich bin erst jetzt dazu gekommen, den Code entsprechend zu aendern! Dein Tipp war "Gold" wert!
    Vielen Dank dafür, genau das war mein Fehler! Es funktioniert!
    Bleibt mir nur noch Dir alles Gute fuer das neue Jahr zu wuenschen!
    kn
     
  13. Hascheff

    Hascheff Moderator

    Danke, wünsch ich dir auch!
     
Thread Status:
Not open for further replies.

Share This Page