Clever-Excel-Forum

Normale Version: VBA Textbox Hindergrundtext
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
Hi

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

Gruß Elex
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
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.
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
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