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

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal