Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Problème avec un TextBox bloqué

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Dans un formulaire j’ai un TextBox. Quand on ouvre le formulaire, je voudrais que le TextBox affiche une valeur en bleu, mais que l’on ne puisse pas la modifier manuellement.
J’ai écrit ceci :
VB:
Private Sub UserForm_Initialize()
   
    TextBox_LangueActuelle.Enabled = True              'le TextBox "TextBox_LangueActuelle" est habilité à recevoir une donnée
        TextBox_LangueActuelle.ForeColor = &H8000000D  'bleu
        TextBox_LangueActuelle = [LangueActuelle]      'récupération dans le TextBox "TextBox_LangueActuelle" de la valeur conservée dans la cellule nommée "LangueActuelle"
    TextBox_LangueActuelle.Enabled = False             'impossible d'écrire ou de sélectionner quoi que ce soit dans le TextBox "TextBox_LangueActuelle"

End Sub
Le TextBox affiche bien la valeur attendue, il est bien bloqué, mais la couleur du texte reste obstinément grise. Serait-il possible qu’elle soit bleue ?
 

Hasco

XLDnaute Barbatruc
Repose en paix
Serait-il possible qu’elle soit bleue ?
Bonjour,

A ma connaissance non. Le controle TextBox est conçu comme ça. Vous pouvez mettre sa propriété Locked à True, sa valeur ne pourra pas être modifiée. Il sera atteignable dans l'ordre de tabulation.

Mais remplacez le TextBox par un Label sa propriété Caption n'est pas modifiable par l'utilisateur et vous le mettrez de la couleur que vous voulez.

Cordialement
 

Magic_Doctor

XLDnaute Barbatruc
Re,

Je l'avais fait, c'est pareil.
Peut-être que lorsque le TextBox est protégé contre toute modification, son contenu est alors définitivement en grisé...
Je vais tenter la solution de Roblochon.
 

ChTi160

XLDnaute Barbatruc
Bonsoir Magic_Docteur
Bonsoir le Fil ,le Forum
ou alors tu mets un Label transparent sur le TextBox et ainsi il a une apparence Normale (non grisé) puis que pas Bloqué mais est inaccessible car le Label n'est pas sélectionnable.
Label au même dimensions que le TextBox et superposés
jean marie
 

ChTi160

XLDnaute Barbatruc
Re
L'Option Label est la meilleure si ca ne doit servir que pour l'affichage !
y'a aussi la possibilité (Bidouille Lol) de mettre le TextBox sur un Frame qui lui est Enabled=False et aux mêmes dimensions que le TextBox.
j'ai ajouté un Label sous le Frame /TextBox
voir fichier !
jean marie
 

Pièces jointes

  • Test Frame TextBox.xlsm
    20.7 KB · Affichages: 13

Regueiro

XLDnaute Impliqué
Bonsoir Le Forum
En reprenant le code de Chti60
j'ai enlevé le Frame

VB:
Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
Me.TextBox1.Text = Format(Date, "dd/mm/yyyy")
Me.TextBox1.ForeColor = vbBlue
custom_lock Me.TextBox1
Me.Label1.Caption = Format(Date, "dd/mm/yyyy")
Me.Label1.ForeColor = vbBlue
End Sub

Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
custom_unlock Me.TextBox1
End Sub

Function custom_lock(tb As MSForms.TextBox)
tb.ForeColor = vbBlue
tb.Locked = True
End Function

Function custom_unlock(tb As MSForms.TextBox)
tb.ForeColor = vbBlack
tb.Locked = False
End Function
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…