Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Textbox Hindergrundtext
#1
Guten Abend zusammen,

ich möchte gerne meiner Textbox in einer Userform einen Hintergrundtext zuweisen. Der Text soll in der Textbox stehen und beim reinklicken bzw, wenn man die Tab-Taste drückt und in die nächste Textbox springt, soll der Hintergrundtext bei der Eingabe weggehen. Die Farbe des Textes soll ganz helles Grau sein.

Ich nutze Excel 2019.

Ich hab schon folgenden Code probiert, bin aber nicht zum gewünschten Ergebnis gekommen.

Code:
Option Explicit


Private Sub TextBox1_Enter()
  With Me.TextBox1
      .SelStart = 0
      .SelLength = Len(.Text)
  End With
End Sub


Private Sub UserForm_Initialize()
Me.TextBox1.Text = "Search for people, places and things"
End Sub
Code:
Private Sub TextBox2_MouseEnter(sender As System.Object, e As System.EventArgs) Handles TextBox2.GotFocus
With CType(sender, TextBox)
If .ForeColor = Color.Gray Then
.ForeColor = Color.Black
.Text = ""
End If
End With
End Sub
Private Sub TextBox2_MouseLeave(sender As System.Object, e As System.EventArgs) Handles TextBox2.LostFocus
With CType(sender, TextBox)
If .Text = "" Then
.ForeColor = Color.Gray
.Text = "Text eingeben"
End If
End With
End Sub


Vielen Dank für eure Hilfe.


Freundliche Grüße

Robbie1985
Antworten Top
#2
Hi

kennst du die ControlTipText-Eigenschaft der Textbox. Ist eine gute Alternative zu deinem Vorhaben.

Gruß Elex
Antworten Top
#3
Hallo,

Du könntest ein Label unter die TextBox legen.
Folgender Code dann dazu:
Private Sub TextBox1_Change()
Label1.Visible = Len(TextBox1) = 0
End Sub
Gruß Uwe
Antworten Top
#4
Super Idee Uwe, einfach aber klasse! :100:
Kleiner Hinweis nur am Rande - das Label sollte vor der Textbox liegen, sonst sieht man es nicht :) Backstyle noch auf transparent stellen und alles ist gut.
Schöne Grüße
Berni
Antworten Top
#5
Hallo Kuwer,

danke für die Hilfe, es funktioniert genau so wie ich es mir gedacht habe :).

Was jetzt noch nicht so richtig geht ist, wenn ich mit der "Tab" Taste ins die nächste Textbox klicke, dann geht der Text nicht weg.

Habt ihr da auch noch eine Idee?
Code:
Private Sub TextBox1_KeyDown(ByVal KeyCode As _
  MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = vbKeyTab Then TextBox2.Activate
End Sub

Ich habe es damit probiert, aber VBA hat damit ein Problem und ich finde die Lösung nicht.
Vielen Dank
Antworten Top
#6
Hallo Robbie,
Private Sub TextBox1_Change()
Label1.Visible = Len(TextBox1) = 0
End Sub

Private Sub TextBox1_Enter()
Label1.Visible = Len(TextBox1) = 0
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Label1.Visible = False
End Sub
Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste