Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/11/2004, 20h51   #1
Invité de passage
 
Inscription : novembre 2004
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 4
Points : 1
Points : 1
Par défaut Cases à cocher sous VBA

Bonjour,
J'ai crée 10 cases à cocher dans un document EXCEL. Sous VBA, 10 Private Sub CheckBox_Click() sont apparues, de CheckBox1_Click() à CheckBox10_Click(). Je voudrais tester l'état de chacune de ces cases à cocher dans une sub à part. J'ai commencé mon code par :
Code :
1
2
3
 
for i=1 to 10
if CheckBox(i).Value then...
Mais cela ne marche pas, il ne reconnaît pas le nom CheckBox(i).
Y-a-t-il une solution ?
Merci beaucoup !
dran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2004, 21h14   #2
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
Bonjour

Essaye avec

Code :
1
2
3
4
5
6
7
8
 
Dim Ctl as control
Dim i as integer
For i=1 to 10
set ctl=me.controls("CheckBox" & i)
if ctl.value then ....
 
Next i
Cela fonctionne si tes cases sont dans un formulaire. Si elles sont dans une feuille de calcul, cela ne marchera pas
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2004, 21h22   #3
Rédacteur

 
Avatar de Tofalu
 
Christophe Warin
Inscription : octobre 2004
Messages : 8 635
Détails du profil
Informations personnelles :
Nom : Christophe Warin
Âge : 28

Informations forums :
Inscription : octobre 2004
Messages : 8 635
Points : 13 718
Points : 13 718
Ma solution te donne accés directement à la bonne case à cocher via son nom (ceci est une des possibilités des collections) soit seulement 10 ittérations.

Ceci dit, la soltuion pour les cases dans les classeurs est effectivement disponible sous le lien de petogaz
Tofalu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2004, 21h44   #4
Invité de passage
 
Inscription : mars 2004
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 4
Points : 4
Points : 4
Envoyer un message via MSN à nala
salut,

Voici un bout de code qui fonctionne sur une feuille de calcul
Code :
1
2
3
4
5
6
7
8
9
 
Dim boucle As Integer
 
 
For boucle = 1 To 2
If TypeName(Feuil1.OLEObjects(boucle).Object) = "CheckBox" And _
Feuil1.OLEObjects(boucle).Object.Value = True Then Feuil1.OLEObjects(boucle).Object.Value = False
 
Next
l'instruction apres le then est a changer. Ici elle decoche les checkbox qui sont cochées
nala est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2004, 21h50   #5
Invité de passage
 
Inscription : novembre 2004
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 4
Points : 1
Points : 1
Par défaut Merci

Bonsoir,
En effet, j'ai lu le texte sur le lien indiqué au-dessus, quel truc compliqué...
Ton code est proche de celui qui est indiqué, je l'ai testé, ça marche, j'ai ma solution. Super ce forum et un grand merci à tous.
dran est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h31.


 
 
 
 
Partenaires

Hébergement Web