checkbox dans userform

knaekes

XLDnaute Occasionnel
Bonjour,

je souhaite que lorsque je coche une checkbox dans le userfom, que toutes les autres case soient décochées. J'ai écris une macro mais je ne trouve pas l'erreur !
voici le fichier avec les macros

merci
 

Pièces jointes

  • checkbox.xlsm
    25.8 KB · Affichages: 50
  • checkbox.xlsm
    25.8 KB · Affichages: 57
  • checkbox.xlsm
    25.8 KB · Affichages: 51

Pierrot93

XLDnaute Barbatruc
Re : checkbox dans userform

Bonjour,

pas ouvert ton fichier, mais plutôt que des "checkbox" utiliser des "optionbuttons", ces objets s'excluent l'un l'autre..

bon après midi
@+

Edition : bonjour Dull:), en effet...
 
Dernière édition:

knaekes

XLDnaute Occasionnel
Re : checkbox dans userform

Bonjour à tous

en fait ma syntaxe de départ était mauvaise:
j'ai remplacé checkbox_click par checkbox_change
ce qui donne:

Code:
Private Sub CheckBox1_Change()
If UserForm1.Controls("CheckBox" & 1) = True Then
For i = 1 To 12
    If i = 1 Then GoTo suite
    UserForm1.Controls("CheckBox" & i) = False
suite:
Next i
End If
End Sub

Private Sub CheckBox2_Change()
If UserForm1.Controls("CheckBox" & 2) = True Then
For i = 1 To 12
    If i = 2 Then GoTo suite
    UserForm1.Controls("CheckBox" & i) = False
suite:
Next i
End If
End Sub
Private Sub CheckBox3_Change()
If UserForm1.Controls("CheckBox" & 3) = True Then
For i = 1 To 12
    If i = 3 Then GoTo suite
    UserForm1.Controls("CheckBox" & i) = False
suite:
Next i
End If
End Sub
Private Sub CheckBox4_Change()
If UserForm1.Controls("CheckBox" & 4) = True Then
For i = 1 To 12
    If i = 4 Then GoTo suite
    UserForm1.Controls("CheckBox" & i) = False
suite:
Next i
End If
End Sub
Private Sub CheckBox5_Change()
If UserForm1.Controls("CheckBox" & 5) = True Then
For i = 1 To 12
    If i = 1 Then GoTo suite
    UserForm1.Controls("CheckBox" & 5) = False
suite:
Next i
End If
End Sub

cela fonctionne, mais comme l'a signalé job 75 cela fait x macro semblables, et serait à priori optimisable en utilisant un module de classe. Malheureusement je ne n'en ai pour l'instant aucune notion (il faudra que j'y jette un coup d'oeil prochainement )
 

job75

XLDnaute Barbatruc
Re : checkbox dans userform

Bonjour Laetitia :)

Pourquoi ne pas utiliser classiquement l'événement Click :

Code:
Private Sub cbx_Click()
Dim i As Byte, c As Control
If cbx Then
  For i = 1 To 12
    Set c = cbx.Parent.Controls("CheckBox" & i)
    If c.Name <> cbx.Name Then c = False
  Next
End If
End Sub
Fichier joint.

 

Pièces jointes

  • check(1).xls
    53 KB · Affichages: 52

laetitia90

XLDnaute Barbatruc
Re : checkbox dans userform

re tous:):)

pour l'ami Job:)
pas de raison importante dans ce cas précis
je me suis dit au lieu de prendre le 3 ieme evenement "click" pourquoi pas prendre le premier
on aurait peu prendre le deuxieme mousse Up

tu sais j'ecris au "Feeling " comme je le ressens a l'instant T:)
bonne soirée
a+ leti

ps : je crois bien que l'ami knaekes a meme pas vu qu'on lui a écris un module de classe :rolleyes:
 

Discussions similaires