Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Laufschrift in Userform

Laufschrift in Userform
08.11.2013 17:49:25
drower04
Hallo,
ich habe folgendes Problem:
Ich möchte in einer Textbox in einer Userform eine Laufschrift durchlaufen lassen, und zwar sobald die Userform geöffnet wird und solange bis sie geschlossen wird.
Hat jemand eine Idee?
Vielen Dank im Voraus!

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufschrift in Userform
08.11.2013 17:58:06
drower04
Hallo Hajo,
Vielen Dank für die schnelle Antwort, das klappt wirklich gut!
Kann man die Durchlaufgeschwindigkeit auch erhöhen? und wenn ja wie?
Vielen Dank!

Anzeige
AW: Laufschrift in Userform
08.11.2013 18:02:01
Hajo_Zi
das ist schon 1 Sekunden. Geringer ist wohl aufwendig.
Gruß Hajo

AW: Laufschrift in Userform
08.11.2013 18:07:29
drower04
Habe in einem anderen Forum folgenden Code gefunden:
Option Explicit
Dim Lauftext As String
Dim Halt As Boolean
' Laufschrift von rechts nach links
Private Sub Command1_Click()
Dim I As Integer
Halt = False
' Den Lauftext einstellen
If Lauftext = Empty Then _
Lauftext = "www.vbarchiv.de *** "
Do Until Halt = True
' Kurz warten
For I = 0 To 15000: DoEvents: Next
DoEvents
' Hinten an den Lauftext das 1. Zeichen anhängen
Lauftext = Lauftext & Mid(Lauftext, 1, 1)
' Vom Lauftext das 1. Zeichen wegnehmen
Lauftext = Mid(Lauftext, 2, Len(Lauftext) - 1)
' Den Lauftext zuweisen
Text1.Text = Lauftext
Loop
End Sub

' Laufschrift von links nach rechts
Private Sub Command2_Click()
Dim I As Integer
Halt = False
' Den Lauftext einstellen
If Lauftext = Empty Then _
Lauftext = "www.vbarchiv.de *** "
Do Until Halt = True
' Kurz warten
For I = 0 To 15000: DoEvents: Next
DoEvents
' Vorne an den Lauftext das Letze Zeichen anhängen
Lauftext = Mid(Lauftext, Len(Lauftext), 1) & _
Lauftext
' Das letze Zeichen wegnehmen
Lauftext = Mid(Lauftext, 1, Len(Lauftext) - 1)
' Den Lauftext zuweisen
Text1.Text = Lauftext
Loop
End Sub

' Anzeige unterbrechen
Private Sub Command3_Click()
Halt = True
End Sub

hier kann man die Durchlaufgeschwindigkeit problemlos erhöhen, das Problem ist allerdings, dass es hier nicht möglich ist den Vorgang bereits beim Öffnen der Userform zu starten ohne eine Fehlermeldung zu erhalten. Kann man beide Herangehensweisen irgendwie kombinieren?
Viele Grüße

Anzeige
AW: Laufschrift in Userform
08.11.2013 21:36:44
Luschi
Hallo drower04,
ich frage mich was diese Spielerei soll. Da das Excel-Vba-Userformular keinen eigenen Timer besitzt, bist Du auf Gedeih & Verderben auf das Betriebssystem angewiesen. Ich bin mir sicher, daß Du nicht geblickt hast, was der Befehl 'DoEvents' bedeutet. Solche Schicky-Mickies verzichte ich schon lange.
Ich konzentriere meine Arbeit lieber auf schnellstmögliche Erzielung von Ergebnissen in einer Tabelle!
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Laufschrift in Userform
09.11.2013 16:03:17
drower04
Hallo Luschi,
Danke für die Antwort. Leider bringt sie mich nicht weiter.
Ich habe tatsächlich noch nicht geblickt was der Befehl 'DoEvents' bedeutet, aber vielleicht kannst du mich ja aufklären.
Selbstverständlich steht bei meiner Arbeit auch die schnellstmögliche Erzielung von Ergebnissen im Vordergrund, jedoch soll auch das Gesamtpaket stimmen und dazu zählt nunmal das User Interface.
Ich würde mich also über einen konstruktiven Kommentar freuen!
Viele Grüße
drower04

Anzeige
AW: Laufschrift in Userform
09.11.2013 16:03:23
drower04
Hallo Luschi,
Danke für die Antwort. Leider bringt sie mich nicht weiter.
Ich habe tatsächlich noch nicht geblickt was der Befehl 'DoEvents' bedeutet, aber vielleicht kannst du mich ja aufklären.
Selbstverständlich steht bei meiner Arbeit auch die schnellstmögliche Erzielung von Ergebnissen im Vordergrund, jedoch soll auch das Gesamtpaket stimmen und dazu zählt nunmal das User Interface.
Ich würde mich also über einen konstruktiven Kommentar freuen!
Viele Grüße
drower04
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Laufschrift in Userform erstellen


Schritt-für-Schritt-Anleitung

Um eine Laufschrift in einer Userform zu erstellen, kannst du den folgenden laufschrift code verwenden. Dieser Code lässt den Text in einer Textbox von rechts nach links oder von links nach rechts laufen, sobald die Userform geöffnet wird.

  1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Füge eine neue Userform hinzu und platziere eine Textbox sowie drei Buttons (für Start, Stop und Richtung ändern).
  3. Füge den folgenden Code in das Codefenster der Userform ein:
Option Explicit
Dim Lauftext As String
Dim Halt As Boolean

Private Sub Command1_Click() ' Laufschrift von rechts nach links
    Dim I As Integer
    Halt = False
    If Lauftext = Empty Then _
        Lauftext = "www.vbarchiv.de *** "
    Do Until Halt = True
        For I = 0 To 15000: DoEvents: Next
        DoEvents
        Lauftext = Lauftext & Mid(Lauftext, 1, 1)
        Lauftext = Mid(Lauftext, 2, Len(Lauftext) - 1)
        TextBox1.Text = Lauftext
    Loop
End Sub

Private Sub Command2_Click() ' Laufschrift von links nach rechts
    Dim I As Integer
    Halt = False
    If Lauftext = Empty Then _
        Lauftext = "www.vbarchiv.de *** "
    Do Until Halt = True
        For I = 0 To 15000: DoEvents: Next
        DoEvents
        Lauftext = Mid(Lauftext, Len(Lauftext), 1) & Lauftext
        Lauftext = Mid(Lauftext, 1, Len(Lauftext) - 1)
        TextBox1.Text = Lauftext
    Loop
End Sub

Private Sub Command3_Click() ' Anzeige unterbrechen
    Halt = True
End Sub
  1. Schließe den VBA-Editor und teste die Userform.

Häufige Fehler und Lösungen

  • Fehler: Laufschrift startet nicht beim Öffnen der Userform.

    • Lösung: Stelle sicher, dass der Code zum Starten der Laufschrift im UserForm_Initialize-Ereignis platziert ist. Hier ein Beispiel:
    Private Sub UserForm_Initialize()
      Call Command1_Click
    End Sub
  • Fehler: Die Laufschrift läuft zu schnell oder zu langsam.

    • Lösung: Ändere die Anzahl in der Schleife For I = 0 To 15000, um die Geschwindigkeit der Laufschrift anzupassen. Kleinere Zahlen führen zu einer schnelleren Laufschrift.

Alternative Methoden

Eine weitere Möglichkeit, eine Laufschrift zu implementieren, besteht darin, einen Timer zu verwenden. Dies kann allerdings etwas komplexer sein, da Excel-VBA von Haus aus keinen Timer für Userforms bietet. Eine Alternative wäre, die Laufschrift in einem regulären Excel-Arbeitsblatt zu erstellen, indem du die Zellen animierst.


Praktische Beispiele

Hier ist ein einfaches Beispiel für eine Laufschrift, die beim Öffnen der Userform direkt startet:

Private Sub UserForm_Initialize()
    Lauftext = "Willkommen zu meiner Laufschrift! "
    Command1_Click ' Start der Laufschrift
End Sub

Mit diesem Code wird der Lauftext als Willkommensnachricht angezeigt, sobald die Userform geöffnet wird.


Tipps für Profis

  • Nutze die DoEvents-Funktion, um die Benutzeroberfläche reaktionsfähig zu halten, während die Laufschrift läuft. Dies ist besonders nützlich, wenn du andere Aktionen innerhalb der Userform zulassen möchtest.
  • Experimentiere mit der Textgröße und -farbe der Textbox, um die Laufschrift ansprechender zu gestalten.

FAQ: Häufige Fragen

1. Kann ich die Laufschrift auch in einer normalen Excel-Zelle anzeigen? Ja, du kannst eine ähnliche Logik mit VBA verwenden, um den Text in einer Zelle zu animieren.

2. Wie kann ich die Laufschrift anhalten und wieder starten? Du kannst den Halt-Boolean verwenden, um die Laufschrift anzuhalten, und den Command1_Click-Befehl wiederholen, um sie neu zu starten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige