Agir sur "x" texbox à l'entrée puis à la sortie

sourcier08

XLDnaute Occasionnel
Bonjour à tous,

J'aimerai que lorsque j'entre dans un Textbox, une action se réalise.
J'aimerai qu'une autre action se réalise à la sortie.

Pourriez-vous m'expliquer la démarche à suivre, sachant que j'ai 15 textbox. Je me vois mal faire 15*2 "private sub" pour par exemple changer la couleur d'écriture d'un label placé en face d'un textbox ou tout autre action :


Code:
Private Sub TextBox1_Enter()
Label1.ForeColor = RGB(0, 0, 200)
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Label1.ForeColor = RGB(0, 0, 0)
End Sub

Private Sub TextBox2_Enter()
Label2.ForeColor = RGB(0, 0, 200)
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Label2.ForeColor = RGB(0, 0, 0)
End Sub

...etc 15 fois


Merci d'avance pour l'aide.
 

Dranreb

XLDnaute Barbatruc
Re : Agir sur "x" texbox à l'entrée puis à la sortie

Bonsoir.

En fait on peut arriver à s'en sortir sans trop de dégât et sans module de classe par une structure de ce style :
VB:
Option Explicit
Dim Ctrl As MSForms.Control
Dim WithEvents TBx As MSForms.TextBox
Dim SortirDeLà As Boolean

Private Sub UserForm_Activate()
Do: DoEvents
   If Not Me.ActiveControl Is Ctrl Then
      If Not TBx Is Nothing Then
         'Instructions à exécuter quand TBx perd le focus.
         Set TBx = Nothing: End If
      Set Ctrl = Me.ActiveControl
      If TypeOf Ctrl Is MSForms.TextBox Then
         Set TBx = Me.ActiveControl
         'Instructions à exécuter quand TBx prend le focus.
         End If: End If: Loop Until SortirDeLà
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
SortirDeLà = True
End Sub
Sans module de classe donc puisque par ailleurs l'objet TBx supporte certains évènements…
 

Discussions similaires

Statistiques des forums

Discussions
312 107
Messages
2 085 354
Membres
102 873
dernier inscrit
yayo