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

Forumthread: Label blinken lassen, wenn Textbox....

Label blinken lassen, wenn Textbox....
09.07.2004 12:06:11
Gerhard
Hallo,
ich hab da mal ne Frage, ich habe eine Userform, mit einer Textbox, wo eine vierstellige Zahl eingegeben wird. Nun sollte aber, wenn man eine Zahl grösser als 2010 eingibt, ein Label in der UF eindringlich darauf hinweisen (blinken), dass nur Zahlen bis 2010 eingegeben werden dürfen.
In der Recherche hab ich nichts brauchbares gefunden, kann mir noch einer, so kurz vorm WE weiterhelfen?
mfg
Gerhard S.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Label blinken lassen, wenn Textbox....
Udo
Die bessere Lösung wäre, derartige Eingaben gar nicht erst zuzulassen.
Udo
Und wie?
Gerhard
Tja, nur wie?
bin leider kein Excel-Crack
mfg
Gerhard S.
AW: Und wie?
Udo
In welcher Prozedur erfolgt denn die Prüfung?
If CLng(Textbox1) &gt 2010 then
Msgbox "Nur bis 2010 möglich!"
End if
Udo
Anzeige
Super
Gerhard
Danke Udo,
das passt super,
Vielen, vielen Dank und ein schönes Wochenende
wünscht
Gerhard S.
AW: Label blinken lassen, wenn Textbox....
09.07.2004 13:40:29
kdosi
Hallo, hier etwas mit blinken :-), um es ausprobieren braucht man eine UserForm mit Label (Name Blinker) und TextBox (Name txtZahl). Gruss kdosi.
Option Explicit

Private Sub txtZahl_Change()
Dim NewNumber
Dim BlinkenCounter
Dim ForeColor
Dim Limit
Dim TextMem
' nichts wird nicht getestet
If (Me.txtZahl.Value = "") Then Exit Sub
TextMem = Me.Blinker.Caption
Limit = 2010
ForeColor = Me.txtZahl.ForeColor
' letztes Character
NewNumber = VBA.Right(Me.txtZahl.Value, 1)
' nur Nummer
If (VBA.IsNumeric(NewNumber) = False) Then
MsgBox "Nur Nummer ist erlaubt.", vbExclamation
' letztes Character weg, weil es nicht nummerisch ist
Me.txtZahl.Value = VBA.Left(Me.txtZahl.Value, VBA.Len(Me.txtZahl.Value) - 1)
Exit Sub
End If
' falls die Nummer groesser als das Limit ist
If (VBA.CInt(Me.txtZahl.Value) > Limit) Then
Me.Blinker.WordWrap = False
Me.Blinker.AutoSize = True
Me.Blinker.Caption = "Limit ist " & Limit
' die Label und den Text blinken lassen
For BlinkenCounter = 1 To 10
If (Me.Blinker.Visible = True) Then
Me.Blinker.Visible = False
Me.txtZahl.ForeColor = Me.txtZahl.BackColor
Else
Me.Blinker.Visible = True
Me.txtZahl.ForeColor = VBA.ColorConstants.vbRed
End If
Application.Wait VBA.Now + VBA.TimeValue("0:00:1")
Next BlinkenCounter ' 10 Sekunden lang wird es blinken
' letztes Character weg
Me.txtZahl.Value = VBA.Left(Me.txtZahl.Value, VBA.Len(Me.txtZahl.Value) - 1)
Me.Blinker.Visible = True
Me.txtZahl.ForeColor = ForeColor
Me.Blinker.Caption = TextMem
End If
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Label in Excel blinken lassen bei Eingabefehlern


Schritt-für-Schritt-Anleitung

Um ein Label in Excel blinken zu lassen, wenn eine ungültige Zahl in eine Textbox eingegeben wird, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. UserForm erstellen: Öffne Excel und erstelle eine neue UserForm. Füge eine TextBox (benenne sie txtZahl) und ein Label (benenne es Blinker) hinzu.

  2. VBA-Code einfügen: Klicke mit der rechten Maustaste auf die UserForm und wähle "Code anzeigen". Füge den folgenden VBA-Code in das Codefenster ein:

    Private Sub txtZahl_Change()
       Dim NewNumber
       Dim BlinkenCounter
       Dim ForeColor
       Dim Limit
       Dim TextMem
    
       If (Me.txtZahl.Value = "") Then Exit Sub
       TextMem = Me.Blinker.Caption
       Limit = 2010
       ForeColor = Me.txtZahl.ForeColor
    
       NewNumber = VBA.Right(Me.txtZahl.Value, 1)
    
       If (VBA.IsNumeric(NewNumber) = False) Then
           MsgBox "Nur Nummer ist erlaubt.", vbExclamation
           Me.txtZahl.Value = VBA.Left(Me.txtZahl.Value, VBA.Len(Me.txtZahl.Value) - 1)
           Exit Sub
       End If
    
       If (VBA.CInt(Me.txtZahl.Value) > Limit) Then
           Me.Blinker.WordWrap = False
           Me.Blinker.AutoSize = True
           Me.Blinker.Caption = "Limit ist " & Limit
           For BlinkenCounter = 1 To 10
               If (Me.Blinker.Visible = True) Then
                   Me.Blinker.Visible = False
                   Me.txtZahl.ForeColor = Me.txtZahl.BackColor
               Else
                   Me.Blinker.Visible = True
                   Me.txtZahl.ForeColor = VBA.ColorConstants.vbRed
               End If
               Application.Wait VBA.Now + VBA.TimeValue("0:00:1")
           Next BlinkenCounter
           Me.txtZahl.Value = VBA.Left(Me.txtZahl.Value, VBA.Len(Me.txtZahl.Value) - 1)
           Me.Blinker.Visible = True
           Me.txtZahl.ForeColor = ForeColor
           Me.Blinker.Caption = TextMem
       End If
    End Sub
  3. Testen: Schließe den VBA-Editor und teste die UserForm, indem du verschiedene Werte in die TextBox eingibst. Bei Werten über 2010 sollte das Label nun blinken.


Häufige Fehler und Lösungen

  • Fehler: Label blinkt nicht
    Lösung: Stelle sicher, dass die Namen der TextBox und des Labels korrekt sind. Überprüfe auch, ob die Bedingung für das Blinken (Wert > 2010) richtig definiert ist.

  • Fehler: Es erscheinen keine Fehlermeldungen
    Lösung: Achte darauf, dass die Eingabe in der TextBox numerisch ist. Der Code überprüft nur das letzte Zeichen.


Alternative Methoden

Eine weitere Möglichkeit, Text in Excel blinken zu lassen, besteht darin, HTML oder PowerPoint zu verwenden. In HTML kann man beispielsweise CSS-Animationen benutzen, um Texteffekte zu erzielen. Bei PowerPoint kannst du Animationen auf Textobjekte anwenden, um diese zum Blinken zu bringen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die UserForm zur Eingabe von Jahreszahlen nutzen kannst:

  1. Erstelle eine UserForm mit einer TextBox für die Zahl und einem Label für die Fehlermeldung.
  2. Verwende den obigen VBA-Code, um sicherzustellen, dass nur gültige Jahreszahlen eingegeben werden.

Tipps für Profis

  • Nutze die Timer-Funktion in VBA, um das Blinken effizienter zu gestalten.
  • Experimentiere mit verschiedenen Farben für das Label, um die Aufmerksamkeit des Benutzers zu erhöhen.
  • Füge eine zusätzliche Bedingung hinzu, um auch negative Werte oder Buchstaben zu filtern.

FAQ: Häufige Fragen

1. Frage
Wie kann ich das Blinken stoppen?
Antwort: Du kannst die Schleife im VBA-Code anpassen, um die Anzahl der Blinkvorgänge zu ändern oder die Bedingung für das Blinken zu ändern.

2. Frage
Ist dieser Code in allen Excel-Versionen kompatibel?
Antwort: Ja, der VBA-Code sollte in den meisten aktuellen Excel-Versionen funktionieren, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige