Colorer textbox sélectionné

Résolu
DEVPLUS Messages postés 30 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai 43 textBox, je souhaiterai remplacer les formule ci-dessous
ex:
Private Sub TextBox2_Enter()
TextBox2.BackColor = vbYellow
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox2.BackColor = vbWhite

End Sub
Private Sub TextBox3_Enter()
TextBox3.BackColor = vbYellow
End Sub

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox3.BackColor = vbWhite

End Sub
par une formule plus simple et qui englobe le tout comme par ex objcontrol que je n'arrive pas à résoudre

Private Sub TextBox_Enter()
for each objcontrol in U1.controls
if type of objcontrol is ms form.textbox then
objcontrol.backcolor=vbYellow

End Sub
ça ne donne rien

3 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Private Sub TextBox2_Enter()
        TextBox_Enter
    End Sub
    
    Private Sub TextBox_Enter()
        Dim objcontrol As Object
        For Each objcontrol In U1.Controls
            If TypeOf objcontrol Is msform.TextBox Then
                objcontrol.BackColor = vbYellow
            End If
        Next
    End Sub

    Mais toutes les textbox seront en jaune!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    0
    1. DEVPLUS Messages postés 30 Statut Membre
       
      ce n'est pas ce que je veux, il faut que textbox sélectionné soit colorer une fois désélectionner elle redevient couleur blanche
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonj<gras></gras>our,

    C'est bien vous qui avez ecrit ceci:
    objcontrol que je n'arrive pas à résoudre
    Private Sub TextBox_Enter() 
    for each objcontrol in U1.controls 
    if type of objcontrol is ms form.textbox then 
    objcontrol.backcolor=vbYellow 
    
    End Sub 

    ça ne donne rien

    et moi ceci avec le code que j'ai écrit:
    Mais toutes les textbox seront en jaune!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    C'est assez simple a résoudre, vous faites ou nous vous aidons ??
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,
      Vous ferez pour le reste des TextBox
      Private Sub TextBox2_Enter()
          Call TextBox_Enter(2, "En")
      End Sub
      
      Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
          Call TextBox_Enter(2, "Ex")
      End Sub
      
      Private Sub TextBox3_Enter()
          Call TextBox_Enter(3, "En")
      End Sub
      
      Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
          Call TextBox_Enter(3, "Ex")
      End Sub
      
      Private Sub TextBox4_Enter()
          Call TextBox_Enter(4, "En")
      End Sub
      
      Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
          Call TextBox_Enter(4, "Ex")
      End Sub
      
      Private Sub TextBox_Enter(NTB, Ev)
          Dim objcontrol As Object
          If Ev = "En" Then
              coul = vbYellow
          ElseIf Ev = "Ex" Then
              coul = vbWhite
          End If
          Me.Controls("Textbox" & NTB).BackColor = vbYellow
          
          For Each objcontrol In Me.Controls
              If TypeOf objcontrol Is MSForms.TextBox And objcontrol.Name <> "TextBox" & NTB Then
                  objcontrol.BackColor = vbWhite
              End If
          Next
      End Sub
      
      0
  3. DEVPLUS Messages postés 30 Statut Membre
     
    votre proposition ne me convient pas, ce que j'ai mis marche bien , je voulais simplement réduire le code,
    non resolu
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,
      ne me convient pas, simplement réduire le code
      Module de classe pour textbox, google vous trouverez.........
      0