Choix du textbox à alimenter par case à cocher

christian.bedere

XLDnaute Occasionnel
Bonsoir à vous

J'aimerai savoir s'il est possible d'alimenter une textbox par le biais de checkbox en choisissant la txtbx que je souhaite.
Par exemple, j'ai 4 textboxes (matin1, midi1,apres1 et soir1) ds mon userform.
J'aimerai qu'en allant me situer dans 'matin1' lorsque je clique sur la checkbox 'voile', s'inscrive en 'matin1' la valeur 'voile'. ainsi de suite pour les autres textboxes de mon usf

Merci à nouveau pour votre aide

Belle soirée à tous
Kiki
 

Pièces jointes

  • EssaiProgramme.xls
    22 KB · Affichages: 67
  • EssaiProgramme.xls
    22 KB · Affichages: 61
  • EssaiProgramme.xls
    22 KB · Affichages: 61

klin89

XLDnaute Accro
Re : Choix du textbox à alimenter par case à cocher

Bonsoir christian :)

VB:
Private Sub CheckBox1_Click() 'N°1
If CheckBox1.Value = True Then 'Si coché ...
  Matin1 = "Pêche à pied"
Else 'Si non coché ...
  Matin1 = ""
End If
End Sub

Après réflexion, ça répond pas à la question :confused:
Klin89
 
Dernière édition:

klin89

XLDnaute Accro
Re : Choix du textbox à alimenter par case à cocher

Re Christian,

A placer dans le code de l'UserForm :

VB:
Dim Ctrl As Control
Private Sub CheckBox1_Click()
Ctrl.Text = "Pêche à pied"
End Sub
Private Sub CheckBox2_Click()
Ctrl.Text = "Voile"
End Sub
Private Sub CheckBox3_Click()
Ctrl.Text = "Piscine"
End Sub
Private Sub Soir1_Enter()
    Set Ctrl = Soir1
End Sub
Private Sub Matin1_Enter()
    Set Ctrl = Matin1
End Sub
Private Sub Midi1_Enter()
    Set Ctrl = Midi1
End Sub
Private Sub Apres1_Enter()
    Set Ctrl = Apres1
End Sub
A tester et à améliorer :
Quand on décoche, la valeur associée à la CheckBox est aussi affichée dans la textbox qui à le focus.:eek:

Klin89

Edit : remplace les cases à cocher par des OptionButton, ça sera tout bon.
 
Dernière édition:

klin89

XLDnaute Accro
Re : Choix du textbox à alimenter par case à cocher

Re le forum,
Salut tatiak, heureux de te croiser :)

En gardant les cases à cocher :
VB:
Dim Ctrl As Control
Private Sub CheckBox1_Click()
CheckBox2 = False: CheckBox3 = False: Ctrl.Text = ""
If CheckBox1 = True Then Ctrl.Text = "Pêche à pied"
End Sub
Private Sub CheckBox2_Click()
CheckBox1 = False: CheckBox3 = False: Ctrl.Text = ""
If CheckBox2 = True Then Ctrl.Text = "Voile"
End Sub
Private Sub CheckBox3_Click()
CheckBox1 = False: CheckBox2 = False: Ctrl.Text = ""
If CheckBox3 = True Then Ctrl.Text = "Piscine"
End Sub
Private Sub Soir1_Enter()
    Set Ctrl = Soir1
End Sub
Private Sub Matin1_Enter()
    Set Ctrl = Matin1
End Sub
Private Sub Midi1_Enter()
    Set Ctrl = Midi1
End Sub
Private Sub Apres1_Enter()
    Set Ctrl = Apres1
End Sub

Klin89
 

klin89

XLDnaute Accro
Re : Choix du textbox à alimenter par case à cocher

Re le forum,

Avec le code précédent, il y avait un problème de réentrance, les événements click étaient réactivés.
J'ai donc introduit un booléen :

VB:
Dim Ctrl As Control, flag As Boolean

Private Sub CheckBox1_Click()
If flag = True Then Exit Sub
If CheckBox2 = True Or CheckBox3 = True Then flag = True
CheckBox2 = False: CheckBox3 = False: Ctrl.Text = ""
If CheckBox1 = True Then Ctrl.Text = "Pêche à pied"
flag = False
End Sub

Private Sub CheckBox2_Click()
If flag = True Then Exit Sub
If CheckBox1 = True Or CheckBox3 = True Then flag = True
CheckBox1 = False: CheckBox3 = False: Ctrl.Text = ""
If CheckBox2 = True Then Ctrl.Text = "Voile"
flag = False
End Sub

Private Sub CheckBox3_Click()
If flag = True Then Exit Sub
If CheckBox1 = True Or CheckBox2 = True Then flag = True
CheckBox1 = False: CheckBox2 = False: Ctrl.Text = ""
If CheckBox3 = True Then Ctrl.Text = "Piscine"
flag = False
End Sub

Private Sub Soir1_Enter()
    Set Ctrl = Soir1
End Sub

Private Sub Matin1_Enter()
    Set Ctrl = Matin1
End Sub

Private Sub Midi1_Enter()
    Set Ctrl = Midi1
End Sub

Private Sub Apres1_Enter()
    Set Ctrl = Apres1
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

A tester car je commence à voir double :rolleyes:
Dites moi si l'on peut mieux faire.

Klin89
 

Fo_rum

XLDnaute Accro
Re : Choix du textbox à alimenter par case à cocher

Bonjour,

un autre exemple avec les cases à cocher à dispatcher autant de fois que nécessaire dans chaque Textbox (en MultiLine=True).
 

Pièces jointes

  • CheckBox et TextBox.xls
    45.5 KB · Affichages: 75

laetitia90

XLDnaute Barbatruc
Re : Choix du textbox à alimenter par case à cocher

bonjour tous :):):):)
il faut utiliser des OptionButtons comme le dit plus haut l'ami klin89 bien plus simple
plus une class comme cela si tu rajoutes des autres OptionButtons pas la peine de rajouter du code
 

Pièces jointes

  • test.zip
    11.9 KB · Affichages: 64
  • test.zip
    11.9 KB · Affichages: 57
  • test.zip
    11.9 KB · Affichages: 52

klin89

XLDnaute Accro
Re : Choix du textbox à alimenter par case à cocher

Re à tous,

J'ai repris les événements click des 3 CheckBox post #6#, c'est plus clair ainsi.

VB:
Dim Ctrl As Control, flag As Boolean

Private Sub CheckBox1_Click()
If flag = True Then Exit Sub
If CheckBox1 = True Then Ctrl.Text = "Pêche à pied" Else Ctrl.Text = ""
If CheckBox2 = True Then flag = True: CheckBox2 = False: flag = False
If CheckBox3 = True Then flag = True: CheckBox3 = False: flag = False
End Sub

Private Sub CheckBox2_Click()
If flag = True Then Exit Sub
If CheckBox2 = True Then Ctrl.Text = "Voile" Else Ctrl.Text = ""
If CheckBox1 = True Then flag = True: CheckBox1 = False: flag = False
If CheckBox3 = True Then flag = True: CheckBox3 = False: flag = False
End Sub

Private Sub CheckBox3_Click()
If flag = True Then Exit Sub
If CheckBox3 = True Then Ctrl.Text = "Piscine" Else Ctrl.Text = ""
If CheckBox1 = True Then flag = True: CheckBox1 = False: flag = False
If CheckBox2 = True Then flag = True: CheckBox2 = False: flag = False
End Sub

Ou bien celle ci :

VB:
Dim Ctrl As Control, flag As Boolean

Private Sub CheckBox1_Click()
If flag = True Then Exit Sub
If CheckBox1 = True Then Ctrl.Text = "Pêche à pied" Else If Ctrl.Text = "Pêche à pied" Then Ctrl.Text = ""
If CheckBox2 = True Then flag = True: CheckBox2 = False: flag = False
If CheckBox3 = True Then flag = True: CheckBox3 = False: flag = False
End Sub

Private Sub CheckBox2_Click()
If flag = True Then Exit Sub
If CheckBox2 = True Then Ctrl.Text = "Voile" Else If Ctrl.Text = "Voile" Then Ctrl.Text = ""
If CheckBox1 = True Then flag = True: CheckBox1 = False: flag = False
If CheckBox3 = True Then flag = True: CheckBox3 = False: flag = False
End Sub

Private Sub CheckBox3_Click()
If flag = True Then Exit Sub
If CheckBox3 = True Then Ctrl.Text = "Piscine" Else If Ctrl.Text = "Piscine" Then Ctrl.Text = ""
If CheckBox1 = True Then flag = True: CheckBox1 = False: flag = False
If CheckBox2 = True Then flag = True: CheckBox2 = False: flag = False
End Sub

Klin89
 
Dernière édition:

Statistiques des forums

Discussions
312 305
Messages
2 087 078
Membres
103 455
dernier inscrit
saramachado