Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1272to1276
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

2 Fragen zu UserFormen

2 Fragen zu UserFormen
Tim
Hallo,
ich habe zwei Fragen zu UserFormen und hoffe, Ihr könnt mir weiterhelfen:
1) Gibt es eine Möglichkeit, das Format einer Textbox vorzugeben, ähnlich wie bei einzelnen Zellen ?
Ich würde gerne für eine TextBox festlegen, dass nur Datumswerte eingegeben werden können.
2) Wie kann ich einem Label (z.B. Label443) sagen, dass sich die Schrift von Schwarz nach Rot ändern soll, wenn der Zellinhalt in Blatt2, I112 = "XXX" ?
Ich habe es mit dem Change-Ereignis probiert, das klappt hier aber nicht.
VG und vielen Dank im Voraus für jeden Tipp,
Tim

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Userform - Datumseingabe - Label formatieren
30.07.2012 16:26:20
fcs
Hallo Tim,
Frage 1:
Ein direktes Format gibt es nicht, man kann aber steuern, welche Zeichen eingegeben werden können und beim Verlassen der Textbox prüfen, ob die Eingabe ein gültiges Datum ist.
Dabei kann ähnlich wie bei Zellen eine verkürzte Eingabe verwendet werden( 3.8 wird zu 3.8.2012).
Dazu müssen im Userform-Code entsprechende Ereignismakros für die Text-Box angelegt werden.
Bei vielen gleichartigen Textboxen sollte man entsprechende Klassen-Module für gleichartige Textboxen anlegen. Dazu sollte dann bei den Namen der Textboxen eine Systematik mit eindeutigem Namen + fortlaufender Nr. verwendet werden.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Textbox-Wert auf gültiges Datum prüfen
With Me.TextBox1
If IsDate(.Value) Then
.Value = Format(CDate(.Value), "DD.MM.YYYY")
Else
Cancel = True
MsgBox "Eingabe in dieser Textbox muss ein gültiges Datum sein!"
End If
End With
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Nur Punkt und Ziffern als Eingabe für Datum zulassen
Select Case KeyAscii
Case Asc(0) To Asc(9), Asc(".")
'zulässige Zeichen für Datumseingabe
Case Else
KeyAscii = 0
End Select
End Sub
Frage 2:
Hierzu im Userform eine entsprechende Prozedur anlegen, die die Werte prüft und die Labelschriftfarbe anpasst. Diese Prozedur startest du zum Beispiel in der Initialisierungs-Prozedur des Userforms.
Private Sub UserForm_Initialize()
Call ChangeLabelColors
End Sub
Private Sub ChangeLabelColors()
Dim wks As Worksheet
Set wks = Worksheets("Blatt2")
With Me.Label441
If wks.Range("B11").Value = "XXX" Then .ForeColor = &HFF& Else .ForeColor = &H80000012
End With
With Me.Label202
If wks.Range("B12").Value = "YYY" Then .ForeColor = &HFF& Else .ForeColor = &H80000012
End With
End Sub

Gruß
Franz
Anzeige
AW: Userform - Datumseingabe - Label formatieren
30.07.2012 16:36:29
Tim
Hallo Franz,
vielen Dank für die schnelle Hilfe und die guten Erklärungen - klappt bestens ! :-)
Die Lösung zu Frage 2 ist klasse - da wäre ich so nie drauf gekommen. ;-)
VG und einen schönen Nachmittag noch,
Tim

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige