CheckBox.value

JORDAN

XLDnaute Impliqué
Bonjour le Forum,

J'ai fait le code ci-dessous, qui fonctionne très bien si je click sur la CheckBox1.
Seulement, j'ai 12 CheckBox et je dois compter le nombre de CheckBox cochées à chaque nouvelle selection.

D'où ma question : Existe-t-il une solution pour tester toutes les CheckBox où bien je dois répéter mon code pour chaque CheckBox ?

Merci à tous

Code:
Private Sub CheckBox1_Click()

Dim I As Integer
Dim J As Integer
Dim AffMsg As String

For I = 1 To 12
    If Controls('CheckBox' & I).Value = -1 Then
        J = J + 1
    End If
Next I

If J > 3 Then
AffMsg = MsgBox(J & ' CheckBox selectionné(s)', vbOKOnly, 'essai')
End If

End Sub

A+
 

JORDAN

XLDnaute Impliqué
Sans oublier de le joindre c'est encore mieux :unsure:

merci [file name=TST.zip size=8643]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TST.zip[/file]
 

Pièces jointes

  • TST.zip
    8.4 KB · Affichages: 35
  • TST.zip
    8.4 KB · Affichages: 36
  • TST.zip
    8.4 KB · Affichages: 34

myDearFriend!

XLDnaute Barbatruc
Bonsoir JORDAN, pierrejean, le Forum,

Ci-joint peut-être une autre façon de faire simple...

Cordialement, [file name=TEST_20060406220703.zip size=8739]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TEST_20060406220703.zip[/file]
 

Pièces jointes

  • TEST_20060406220703.zip
    8.5 KB · Affichages: 73

Hervé

XLDnaute Barbatruc
bonsoir tout le monde

hop, je m'immisce. :)

je me permet d'utiliser ton post jordan pour interroger didier, je te prie de m'en excuser.

quand je vois un joli code avec du static, j'en profite pour poser une question.

didier, j'ai remarqué que tu utilisais assez souvent des déclarations de variable en static.

pourrais tu m'expliquer l'interet de ce type de déclaration par rapport à une déclaration de type public par exemple.

je t'avoue que 'le' static est assez nébuleux pour moi. :eek:

d'avance je te remercie pour ton aide. :)

salut
 

myDearFriend!

XLDnaute Barbatruc
Re le fil,
Salut Hervé,

Pour moi, la clé du problème se situe non seulement au niveau de la durée de vie de la variable mais aussi, et surtout, au niveau de la portée que l'on veut donner à la dite variable.

Une variable Public ou Private déclarée au niveau Module trouve son utilité uniquement si elle doit être 'partagée' entre plusieurs procédures. Par exemple, si je décidais de chronométrer la durée d'ouverture d'un classeur, je déclarerais une variable vTemps au niveau module de l'objet ThisWorkbook, je lui affecterais l'heure courante dans l'évènement Open() et je réutiliserais sa valeur dans l'évènement BeforeClose() du même objet pour calculer la durée de cette session.

Dans le cas de la macro que je présente plus haut, la situation est différente : la contrainte se situe uniquement au niveau de la durée de vie de la variable. Cette dernière n'est utilisée que dans une seule et unique procédure. La portée étant donc restreinte, une simple variable déclarée Static à l'intérieur même de cette procédure, suffit à répondre à la seule contrainte de durée de vie.

J'ai effectivement l'habitude (bonne ou mauvaise) de privilégier l'utilisation des variables Static quand j'en ai la possibilité. Je les trouve beaucoup plus faciles à gérer. Pour moi, plus la portée de la variable est restreinte, et plus il devient facile d'en maîtriser le contenu. On réduit d'autant les risques de changement de valeur inatendu à un autre endroit dans le code...

On peut ainsi déclarer des variables Static avec le même nom dans plusieurs procédures différentes. Chacune de ses variables reste donc indépendante et conserve sa propre valeur dans sa propre procédure. Moi, je trouve ça pratique... :)

Amicalement,
 

JORDAN

XLDnaute Impliqué
Bonjour, Didier, Hervé, le Forum,

Merci Didier pour ton aide, cela me convient parfaitement. Je ne connaissais pas la fonction IIF, qui s'avère très pratique.

Pour Hervé, pas de problème pour ton intrusion, je ne savais pas non plus.

Je me demande bien où s'arrête les connaissances de Didier en VBA (No limit !!!) il est toujours aussi impressionnant.

Encore merci et bonne journée
A+
 

Hervé

XLDnaute Barbatruc
bonjour tout le monde

Jordan, je suis bien d'accord avec toi, impressionnant l'ami didier.

Non seulement il nous tire vers le haut en nous proposant des syntaxes toujours tres propres mais en plus il se transforme en pédagogue à la moindre demande.

merci didier

salut
 

Discussions similaires

Réponses
11
Affichages
297

Membres actuellement en ligne

Statistiques des forums

Discussions
312 276
Messages
2 086 714
Membres
103 377
dernier inscrit
fredy45