nom d'une CheckBox en fonction d'une valeur

Jx7

XLDnaute Nouveau
Bonjour,

J'ai une N feuilles numérotées + une feuille principale dans laquelle j'ai N CheckBox.
J'ai donc autant de feuilles numérotées que de CheckBox.
Dans chaque feuille numérotée j'ai une CheckBox censée avoir la même valeur que la CheckBox N de la feuille principale.
Vous me suivez?

Donc mon problème c'est que j'aimerais que les CheckBox se mettent à jour d'un côté comme de l'autre mais j'ai du mal...

Pour le moment j'ai ça:

Code:
Sub CheckBox1_Click()

If Sheets("01").CheckBox_01.Value = True Then
 Sheets("01").CheckBox_01.Value = False
 Else
 Sheets("01").CheckBox_01.Value = True
End If

Call toto

End Sub
Code:
Sub toto()
msgbox ("coucou")
End Sub

Ce que j'aimerais c'est un truc de ce genre là:

Code:
Sub CheckBox1_Click()
Call toto("01")
End Sub
Code:
Sub toto(num As String)
If Sheets(num)."CheckBox_" & num & ".Value" = True Then
 Sheets(num)."CheckBox_" & num & ".Value" = False
 Else
 Sheets(num)."CheckBox_" & num & ".Value" = True
End If
msgbox ("coucou")
End Sub

De cette manière j'aurais pas besoin de réécrire le code des CheckBox de la feuille principale N fois, je Call ma Sub avec le numéro en paramètre. Sauf que là ça ne fonctionne évidemment pas...

Peut être même qu'il est possible de connaître le nom du Sub appelant pour en déduire le numéro de la CheckBox à modifier?

Merci de votre aide...
 

tototiti2008

XLDnaute Barbatruc
Re : nom d'une CheckBox en fonction d'une valeur

Bonjour Jx7,

à tester :

Code:
Sub toto(num As String)
If Sheets(num).OLEObjects("CheckBox_" & num).Object.Value = True Then
 Sheets(num).OLEObjects("CheckBox_" & num).Object.Value = False
 Else
 Sheets(num).OLEObjects("CheckBox_" & num).Object.Value = True
End If
MsgBox ("coucou")
End Sub

à noter que là ça n'a pas l'air de faire ce que tu décrivais ici :

Donc mon problème c'est que j'aimerais que les CheckBox se mettent à jour d'un côté comme de l'autre mais j'ai du mal...

vu que tu ne fais intervenir ta feuille principale nulle part

Edit : Bonsoir Pierrot ;)
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : nom d'une CheckBox en fonction d'une valeur

Bonsoir,

pas sûr d'avoir bien cerné ton problème, mais peut être ainsi :

Code:
Private Sub CheckBox1_Click()
Sheets("Feuil2").CheckBox1 = CheckBox1
End Sub

A utiliser dans les modules de feuille où se trouvent tes contrôles, le nom du "sheet" est celui que tu veux actionner simultanément....

bonne soirée
@+

Edition : bonsoir Toto
 

Jx7

XLDnaute Nouveau
Re : nom d'une CheckBox en fonction d'une valeur

à noter que là ça n'a pas l'air de faire ce que tu décrivais ici :



vu que tu ne fais intervenir ta feuille principale nulle part
Oui bien vu!

Ton code fonctionne :) Il manquait juste deux ".Object" ;-)

Merci.

En effet ça met à jour dans un sens mais pas dans l'autre... j'ai mal pensé mon truc...

Le problème c'est que si je met le même mécanisme dans l'autre sens ça va boucler...

Arf, faut trouver une autre solution...

Et sinon est-il possible de connaitre le nom de la fonction qui en a appelé une autre? Dans mon cas, une fois que je suis dans la Sub toto, j'aimerais savoir quelle fonction à appeler toto.
 
Dernière édition:

Jx7

XLDnaute Nouveau
Re : nom d'une CheckBox en fonction d'une valeur

En mélangeant vos codes respectif j'ai réussi :)

que je coche l'une ou l'autre des CheckBox à "synchroniser" j'applique le code de Pierrot puis je fais mes modifs.

Un petit résumé:

Code:
Sub toto()
If ActiveSheet = "Feuil_principal" Then
 Sheets("Feuil_N").CheckBox_N = CheckBox_N
 Else
 CheckBox_N = Sheets("Feuil_N").CheckBox_N
End If
msgbox("Mes modifs")
End Sub

Merci à vous deux
 

Discussions similaires

Réponses
17
Affichages
441

Statistiques des forums

Discussions
312 520
Messages
2 089 293
Membres
104 091
dernier inscrit
Abdou4242