Bonjour,
J'ai trois cases à cocher sur une feuille, associées à une macro qui
fonctionne un peu comme des cases optionnelles, avec cette différence : soit
toutes sont désactivées, soit une seule est activée.
Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
n'avoir qu'une seule procédure.
Merci d'avance
GGAL
Bonjour,
J'ai trois cases à cocher sur une feuille, associées à une macro qui
fonctionne un peu comme des cases optionnelles, avec cette différence : soit
toutes sont désactivées, soit une seule est activée.
Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
n'avoir qu'une seule procédure.
Merci d'avance
GGAL
Bonjour,
J'ai trois cases à cocher sur une feuille, associées à une macro qui
fonctionne un peu comme des cases optionnelles, avec cette différence : soit
toutes sont désactivées, soit une seule est activée.
Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
n'avoir qu'une seule procédure.
Merci d'avance
GGAL
bonjour GGAL,
utilise des Case d'option au lieu des Case à cocher
isabelle
GGAL a écrit :
> Bonjour,
>
> J'ai trois cases à cocher sur une feuille, associées à une macro qui
> fonctionne un peu comme des cases optionnelles, avec cette différence : soit
> toutes sont désactivées, soit une seule est activée.
> Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
> chaque case :
>
> Sub CT_1_QuandClic()
> If Range("a1") = True Then
> Range("a2") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_2_QuandClic()
> If Range("a2") = True Then
> Range("a1") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_3_QuandClic()
> If Range("a3") = True Then
> Range("a1") = False
> Range("a2") = False
> End If
> ct_B
> End Sub
>
> Sub ct_B()
> For Each CELL In Range("a1:a3")
> j = CELL.Row
> If CELL = True Then
> Range("b1") = j ^ 2
> Exit Sub
> Else
> Range("b1") = 0
> End If
> Next
> End Sub
>
> Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
> n'avoir qu'une seule procédure.
>
> Merci d'avance
>
> GGAL
>
bonjour GGAL,
utilise des Case d'option au lieu des Case à cocher
isabelle
GGAL a écrit :
> Bonjour,
>
> J'ai trois cases à cocher sur une feuille, associées à une macro qui
> fonctionne un peu comme des cases optionnelles, avec cette différence : soit
> toutes sont désactivées, soit une seule est activée.
> Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
> chaque case :
>
> Sub CT_1_QuandClic()
> If Range("a1") = True Then
> Range("a2") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_2_QuandClic()
> If Range("a2") = True Then
> Range("a1") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_3_QuandClic()
> If Range("a3") = True Then
> Range("a1") = False
> Range("a2") = False
> End If
> ct_B
> End Sub
>
> Sub ct_B()
> For Each CELL In Range("a1:a3")
> j = CELL.Row
> If CELL = True Then
> Range("b1") = j ^ 2
> Exit Sub
> Else
> Range("b1") = 0
> End If
> Next
> End Sub
>
> Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
> n'avoir qu'une seule procédure.
>
> Merci d'avance
>
> GGAL
>
bonjour GGAL,
utilise des Case d'option au lieu des Case à cocher
isabelle
GGAL a écrit :
> Bonjour,
>
> J'ai trois cases à cocher sur une feuille, associées à une macro qui
> fonctionne un peu comme des cases optionnelles, avec cette différence : soit
> toutes sont désactivées, soit une seule est activée.
> Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
> chaque case :
>
> Sub CT_1_QuandClic()
> If Range("a1") = True Then
> Range("a2") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_2_QuandClic()
> If Range("a2") = True Then
> Range("a1") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_3_QuandClic()
> If Range("a3") = True Then
> Range("a1") = False
> Range("a2") = False
> End If
> ct_B
> End Sub
>
> Sub ct_B()
> For Each CELL In Range("a1:a3")
> j = CELL.Row
> If CELL = True Then
> Range("b1") = j ^ 2
> Exit Sub
> Else
> Range("b1") = 0
> End If
> Next
> End Sub
>
> Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
> n'avoir qu'une seule procédure.
>
> Merci d'avance
>
> GGAL
>
Si j'utilise des cases option, j'aurais toujours une des cases activées.
Dans mon cas je veux soit aucune case activée, soit une seule case activée.
GGAL
"isabelle" a écrit :bonjour GGAL,
utilise des Case d'option au lieu des Case à cocher
isabelle
GGAL a écrit :Bonjour,
J'ai trois cases à cocher sur une feuille, associées à une macro qui
fonctionne un peu comme des cases optionnelles, avec cette différence : soit
toutes sont désactivées, soit une seule est activée.
Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
n'avoir qu'une seule procédure.
Merci d'avance
GGAL
Si j'utilise des cases option, j'aurais toujours une des cases activées.
Dans mon cas je veux soit aucune case activée, soit une seule case activée.
GGAL
"isabelle" a écrit :
bonjour GGAL,
utilise des Case d'option au lieu des Case à cocher
isabelle
GGAL a écrit :
Bonjour,
J'ai trois cases à cocher sur une feuille, associées à une macro qui
fonctionne un peu comme des cases optionnelles, avec cette différence : soit
toutes sont désactivées, soit une seule est activée.
Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
n'avoir qu'une seule procédure.
Merci d'avance
GGAL
Si j'utilise des cases option, j'aurais toujours une des cases activées.
Dans mon cas je veux soit aucune case activée, soit une seule case activée.
GGAL
"isabelle" a écrit :bonjour GGAL,
utilise des Case d'option au lieu des Case à cocher
isabelle
GGAL a écrit :Bonjour,
J'ai trois cases à cocher sur une feuille, associées à une macro qui
fonctionne un peu comme des cases optionnelles, avec cette différence : soit
toutes sont désactivées, soit une seule est activée.
Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
n'avoir qu'une seule procédure.
Merci d'avance
GGAL
bonjour GGAL,
pour désélectionner tout les cases :
Sub Macro1()
For i = 1 To ActiveSheet.OLEObjects.Count
ActiveSheet.OLEObjects("OptionButton" & i).Object.Value = False
Next
End Sub
isabelle
GGAL a écrit :
> Si j'utilise des cases option, j'aurais toujours une des cases activées.
> Dans mon cas je veux soit aucune case activée, soit une seule case activée.
> GGAL
>
> "isabelle" a écrit :
>
>
>> bonjour GGAL,
>>
>> utilise des Case d'option au lieu des Case à cocher
>>
>> isabelle
>>
>> GGAL a écrit :
>>
>>> Bonjour,
>>>
>>> J'ai trois cases à cocher sur une feuille, associées à une macro qui
>>> fonctionne un peu comme des cases optionnelles, avec cette différence : soit
>>> toutes sont désactivées, soit une seule est activée.
>>> Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
>>> chaque case :
>>>
>>> Sub CT_1_QuandClic()
>>> If Range("a1") = True Then
>>> Range("a2") = False
>>> Range("a3") = False
>>> End If
>>> ct_B
>>> End Sub
>>>
>>> Sub CT_2_QuandClic()
>>> If Range("a2") = True Then
>>> Range("a1") = False
>>> Range("a3") = False
>>> End If
>>> ct_B
>>> End Sub
>>>
>>> Sub CT_3_QuandClic()
>>> If Range("a3") = True Then
>>> Range("a1") = False
>>> Range("a2") = False
>>> End If
>>> ct_B
>>> End Sub
>>>
>>> Sub ct_B()
>>> For Each CELL In Range("a1:a3")
>>> j = CELL.Row
>>> If CELL = True Then
>>> Range("b1") = j ^ 2
>>> Exit Sub
>>> Else
>>> Range("b1") = 0
>>> End If
>>> Next
>>> End Sub
>>>
>>> Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
>>> n'avoir qu'une seule procédure.
>>>
>>> Merci d'avance
>>>
>>> GGAL
>>>
>>>
bonjour GGAL,
pour désélectionner tout les cases :
Sub Macro1()
For i = 1 To ActiveSheet.OLEObjects.Count
ActiveSheet.OLEObjects("OptionButton" & i).Object.Value = False
Next
End Sub
isabelle
GGAL a écrit :
> Si j'utilise des cases option, j'aurais toujours une des cases activées.
> Dans mon cas je veux soit aucune case activée, soit une seule case activée.
> GGAL
>
> "isabelle" a écrit :
>
>
>> bonjour GGAL,
>>
>> utilise des Case d'option au lieu des Case à cocher
>>
>> isabelle
>>
>> GGAL a écrit :
>>
>>> Bonjour,
>>>
>>> J'ai trois cases à cocher sur une feuille, associées à une macro qui
>>> fonctionne un peu comme des cases optionnelles, avec cette différence : soit
>>> toutes sont désactivées, soit une seule est activée.
>>> Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
>>> chaque case :
>>>
>>> Sub CT_1_QuandClic()
>>> If Range("a1") = True Then
>>> Range("a2") = False
>>> Range("a3") = False
>>> End If
>>> ct_B
>>> End Sub
>>>
>>> Sub CT_2_QuandClic()
>>> If Range("a2") = True Then
>>> Range("a1") = False
>>> Range("a3") = False
>>> End If
>>> ct_B
>>> End Sub
>>>
>>> Sub CT_3_QuandClic()
>>> If Range("a3") = True Then
>>> Range("a1") = False
>>> Range("a2") = False
>>> End If
>>> ct_B
>>> End Sub
>>>
>>> Sub ct_B()
>>> For Each CELL In Range("a1:a3")
>>> j = CELL.Row
>>> If CELL = True Then
>>> Range("b1") = j ^ 2
>>> Exit Sub
>>> Else
>>> Range("b1") = 0
>>> End If
>>> Next
>>> End Sub
>>>
>>> Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
>>> n'avoir qu'une seule procédure.
>>>
>>> Merci d'avance
>>>
>>> GGAL
>>>
>>>
bonjour GGAL,
pour désélectionner tout les cases :
Sub Macro1()
For i = 1 To ActiveSheet.OLEObjects.Count
ActiveSheet.OLEObjects("OptionButton" & i).Object.Value = False
Next
End Sub
isabelle
GGAL a écrit :
> Si j'utilise des cases option, j'aurais toujours une des cases activées.
> Dans mon cas je veux soit aucune case activée, soit une seule case activée.
> GGAL
>
> "isabelle" a écrit :
>
>
>> bonjour GGAL,
>>
>> utilise des Case d'option au lieu des Case à cocher
>>
>> isabelle
>>
>> GGAL a écrit :
>>
>>> Bonjour,
>>>
>>> J'ai trois cases à cocher sur une feuille, associées à une macro qui
>>> fonctionne un peu comme des cases optionnelles, avec cette différence : soit
>>> toutes sont désactivées, soit une seule est activée.
>>> Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
>>> chaque case :
>>>
>>> Sub CT_1_QuandClic()
>>> If Range("a1") = True Then
>>> Range("a2") = False
>>> Range("a3") = False
>>> End If
>>> ct_B
>>> End Sub
>>>
>>> Sub CT_2_QuandClic()
>>> If Range("a2") = True Then
>>> Range("a1") = False
>>> Range("a3") = False
>>> End If
>>> ct_B
>>> End Sub
>>>
>>> Sub CT_3_QuandClic()
>>> If Range("a3") = True Then
>>> Range("a1") = False
>>> Range("a2") = False
>>> End If
>>> ct_B
>>> End Sub
>>>
>>> Sub ct_B()
>>> For Each CELL In Range("a1:a3")
>>> j = CELL.Row
>>> If CELL = True Then
>>> Range("b1") = j ^ 2
>>> Exit Sub
>>> Else
>>> Range("b1") = 0
>>> End If
>>> Next
>>> End Sub
>>>
>>> Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
>>> n'avoir qu'une seule procédure.
>>>
>>> Merci d'avance
>>>
>>> GGAL
>>>
>>>
Non ce n'est pas ça.
J'ai une solution partielle, qui fonctionne du bas vers le haut, mais pas
dans l'autre sens :
Sub ct_x()
For h = 1 To 3
If Range("a" & h) = True Then
For j = 1 To 3
If j <> h Then Range("a" & j) = False
Next j
Range("b1") = h ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next h
End Sub
GGAL
"isabelle" a écrit :bonjour GGAL,
pour désélectionner tout les cases :
Sub Macro1()
For i = 1 To ActiveSheet.OLEObjects.Count
ActiveSheet.OLEObjects("OptionButton" & i).Object.Value = False
Next
End Sub
isabelle
GGAL a écrit :Si j'utilise des cases option, j'aurais toujours une des cases activées.
Dans mon cas je veux soit aucune case activée, soit une seule case activée.
GGAL
"isabelle" a écrit :bonjour GGAL,
utilise des Case d'option au lieu des Case à cocher
isabelle
GGAL a écrit :Bonjour,
J'ai trois cases à cocher sur une feuille, associées à une macro qui
fonctionne un peu comme des cases optionnelles, avec cette différence : soit
toutes sont désactivées, soit une seule est activée.
Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
n'avoir qu'une seule procédure.
Merci d'avance
GGAL
Non ce n'est pas ça.
J'ai une solution partielle, qui fonctionne du bas vers le haut, mais pas
dans l'autre sens :
Sub ct_x()
For h = 1 To 3
If Range("a" & h) = True Then
For j = 1 To 3
If j <> h Then Range("a" & j) = False
Next j
Range("b1") = h ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next h
End Sub
GGAL
"isabelle" a écrit :
bonjour GGAL,
pour désélectionner tout les cases :
Sub Macro1()
For i = 1 To ActiveSheet.OLEObjects.Count
ActiveSheet.OLEObjects("OptionButton" & i).Object.Value = False
Next
End Sub
isabelle
GGAL a écrit :
Si j'utilise des cases option, j'aurais toujours une des cases activées.
Dans mon cas je veux soit aucune case activée, soit une seule case activée.
GGAL
"isabelle" a écrit :
bonjour GGAL,
utilise des Case d'option au lieu des Case à cocher
isabelle
GGAL a écrit :
Bonjour,
J'ai trois cases à cocher sur une feuille, associées à une macro qui
fonctionne un peu comme des cases optionnelles, avec cette différence : soit
toutes sont désactivées, soit une seule est activée.
Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
n'avoir qu'une seule procédure.
Merci d'avance
GGAL
Non ce n'est pas ça.
J'ai une solution partielle, qui fonctionne du bas vers le haut, mais pas
dans l'autre sens :
Sub ct_x()
For h = 1 To 3
If Range("a" & h) = True Then
For j = 1 To 3
If j <> h Then Range("a" & j) = False
Next j
Range("b1") = h ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next h
End Sub
GGAL
"isabelle" a écrit :bonjour GGAL,
pour désélectionner tout les cases :
Sub Macro1()
For i = 1 To ActiveSheet.OLEObjects.Count
ActiveSheet.OLEObjects("OptionButton" & i).Object.Value = False
Next
End Sub
isabelle
GGAL a écrit :Si j'utilise des cases option, j'aurais toujours une des cases activées.
Dans mon cas je veux soit aucune case activée, soit une seule case activée.
GGAL
"isabelle" a écrit :bonjour GGAL,
utilise des Case d'option au lieu des Case à cocher
isabelle
GGAL a écrit :Bonjour,
J'ai trois cases à cocher sur une feuille, associées à une macro qui
fonctionne un peu comme des cases optionnelles, avec cette différence : soit
toutes sont désactivées, soit une seule est activée.
Une case par ligne (i) et la cellule liée "Ai", et les macros associées à
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
Évidemment, si je dispose de 20 cases, c'est pénible. Je souhaiterais donc
n'avoir qu'une seule procédure.
Merci d'avance
GGAL
Bonjour GGal,
Je n'ai pas trop compris ce que tu veux rellement ...
Mais si tu utilises des boutons radio manant de la bote outils formulaires
et que tu les dposes directement sur la feuille de calcul, tous ces boutons
vont avoir la mme cellule lie. Et, dans cette cellule lie va s'afficher le
numro du bouton radio activ. Habituellement, ce numro est affect ces
boutons radio par l'ordre de cration.
En consquence, si tu saisis dans la cellule lie 3, c'est le bouton radio No3
(ordre de cration) qui va tre activ. Si la cellule lie est vide, aucun des
boutons radio ne sera activ.
En consquence, tu n'as qu' grer le contenu de la cellule lie pour activer ou
dsactiver le bouton radio.
Ma question, que veux-tu faire ?
"GGAL" a crit dans le message de groupe de discussion :
Bonjour,
J'ai trois cases cocher sur une feuille, associes une macro qui
fonctionne un peu comme des cases optionnelles, avec cette diffrence : soit
toutes sont dsactives, soit une seule est active.
Une case par ligne (i) et la cellule lie "Ai", et les macros associes
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais donc
n'avoir qu'une seule procdure.
Merci d'avance
GGAL
Bonjour GGal,
Je n'ai pas trop compris ce que tu veux rellement ...
Mais si tu utilises des boutons radio manant de la bote outils formulaires
et que tu les dposes directement sur la feuille de calcul, tous ces boutons
vont avoir la mme cellule lie. Et, dans cette cellule lie va s'afficher le
numro du bouton radio activ. Habituellement, ce numro est affect ces
boutons radio par l'ordre de cration.
En consquence, si tu saisis dans la cellule lie 3, c'est le bouton radio No3
(ordre de cration) qui va tre activ. Si la cellule lie est vide, aucun des
boutons radio ne sera activ.
En consquence, tu n'as qu' grer le contenu de la cellule lie pour activer ou
dsactiver le bouton radio.
Ma question, que veux-tu faire ?
"GGAL" <GGAL@discussions.microsoft.com> a crit dans le message de groupe de discussion :
E72F5658-B547-4D9A-9ED4-83D62E58673D@microsoft.com...
Bonjour,
J'ai trois cases cocher sur une feuille, associes une macro qui
fonctionne un peu comme des cases optionnelles, avec cette diffrence : soit
toutes sont dsactives, soit une seule est active.
Une case par ligne (i) et la cellule lie "Ai", et les macros associes
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais donc
n'avoir qu'une seule procdure.
Merci d'avance
GGAL
Bonjour GGal,
Je n'ai pas trop compris ce que tu veux rellement ...
Mais si tu utilises des boutons radio manant de la bote outils formulaires
et que tu les dposes directement sur la feuille de calcul, tous ces boutons
vont avoir la mme cellule lie. Et, dans cette cellule lie va s'afficher le
numro du bouton radio activ. Habituellement, ce numro est affect ces
boutons radio par l'ordre de cration.
En consquence, si tu saisis dans la cellule lie 3, c'est le bouton radio No3
(ordre de cration) qui va tre activ. Si la cellule lie est vide, aucun des
boutons radio ne sera activ.
En consquence, tu n'as qu' grer le contenu de la cellule lie pour activer ou
dsactiver le bouton radio.
Ma question, que veux-tu faire ?
"GGAL" a crit dans le message de groupe de discussion :
Bonjour,
J'ai trois cases cocher sur une feuille, associes une macro qui
fonctionne un peu comme des cases optionnelles, avec cette diffrence : soit
toutes sont dsactives, soit une seule est active.
Une case par ligne (i) et la cellule lie "Ai", et les macros associes
chaque case :
Sub CT_1_QuandClic()
If Range("a1") = True Then
Range("a2") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_2_QuandClic()
If Range("a2") = True Then
Range("a1") = False
Range("a3") = False
End If
ct_B
End Sub
Sub CT_3_QuandClic()
If Range("a3") = True Then
Range("a1") = False
Range("a2") = False
End If
ct_B
End Sub
Sub ct_B()
For Each CELL In Range("a1:a3")
j = CELL.Row
If CELL = True Then
Range("b1") = j ^ 2
Exit Sub
Else
Range("b1") = 0
End If
Next
End Sub
videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais donc
n'avoir qu'une seule procdure.
Merci d'avance
GGAL
Désolé, si tu as un problème, je ne sais pas qu'elle en est sa nature !
En changeant la valeur d'une cellule, tu affectes quel bouton radio
est activé et, si la cellule est vide, aucun bouton radio est activé.
Si tu veux autre chose, tu ne l'exprime pas !
"GGAL" a écrit dans le message de groupe
de discussion :
En effet les cases à cocher sont sur la feuille de calcul sur une ligne,
et
la cellule liée à cette case est sur la même ligne.
Si une case est cochée, les autres sont décochées. Si je reclique sur
une
case déjà cochée, toutes les cases sont décochées.
PS : Ton texte est difficile à lire : toutes les lettres accentuées ont
disparu.
GGAL
"MichDenis" a écrit :
> Bonjour GGal,
>
> Je n'ai pas trop compris ce que tu veux rellement ...
>
> Mais si tu utilises des boutons radio manant de la bote outils
formulaires
> et que tu les dposes directement sur la feuille de calcul, tous ces
boutons
> vont avoir la mme cellule lie. Et, dans cette cellule lie va s'afficher
le
> numro du bouton radio activ. Habituellement, ce numro est affect ces
> boutons radio par l'ordre de cration.
>
> En consquence, si tu saisis dans la cellule lie 3, c'est le bouton radio
No3
> (ordre de cration) qui va tre activ. Si la cellule lie est vide, aucun
des
> boutons radio ne sera activ.
>
> En consquence, tu n'as qu' grer le contenu de la cellule lie pour
activer ou
> dsactiver le bouton radio.
>
> Ma question, que veux-tu faire ?
>
>
>
>
>
> "GGAL" a crit dans le message de groupe
de discussion :
>
> Bonjour,
>
> J'ai trois cases cocher sur une feuille, associes une macro qui
> fonctionne un peu comme des cases optionnelles, avec cette diffrence :
soit
> toutes sont dsactives, soit une seule est active.
> Une case par ligne (i) et la cellule lie "Ai", et les macros associes
> chaque case :
>
> Sub CT_1_QuandClic()
> If Range("a1") = True Then
> Range("a2") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_2_QuandClic()
> If Range("a2") = True Then
> Range("a1") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_3_QuandClic()
> If Range("a3") = True Then
> Range("a1") = False
> Range("a2") = False
> End If
> ct_B
> End Sub
>
> Sub ct_B()
> For Each CELL In Range("a1:a3")
> j = CELL.Row
> If CELL = True Then
> Range("b1") = j ^ 2
> Exit Sub
> Else
> Range("b1") = 0
> End If
> Next
> End Sub
>
> videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais donc
> n'avoir qu'une seule procdure.
>
> Merci d'avance
>
> GGAL
>
>
Désolé, si tu as un problème, je ne sais pas qu'elle en est sa nature !
En changeant la valeur d'une cellule, tu affectes quel bouton radio
est activé et, si la cellule est vide, aucun bouton radio est activé.
Si tu veux autre chose, tu ne l'exprime pas !
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de groupe
de discussion : F963221B-7D6A-472B-9FE6-1844C084FF06@microsoft.com...
En effet les cases à cocher sont sur la feuille de calcul sur une ligne,
et
la cellule liée à cette case est sur la même ligne.
Si une case est cochée, les autres sont décochées. Si je reclique sur
une
case déjà cochée, toutes les cases sont décochées.
PS : Ton texte est difficile à lire : toutes les lettres accentuées ont
disparu.
GGAL
"MichDenis" a écrit :
> Bonjour GGal,
>
> Je n'ai pas trop compris ce que tu veux rellement ...
>
> Mais si tu utilises des boutons radio manant de la bote outils
formulaires
> et que tu les dposes directement sur la feuille de calcul, tous ces
boutons
> vont avoir la mme cellule lie. Et, dans cette cellule lie va s'afficher
le
> numro du bouton radio activ. Habituellement, ce numro est affect ces
> boutons radio par l'ordre de cration.
>
> En consquence, si tu saisis dans la cellule lie 3, c'est le bouton radio
No3
> (ordre de cration) qui va tre activ. Si la cellule lie est vide, aucun
des
> boutons radio ne sera activ.
>
> En consquence, tu n'as qu' grer le contenu de la cellule lie pour
activer ou
> dsactiver le bouton radio.
>
> Ma question, que veux-tu faire ?
>
>
>
>
>
> "GGAL" <GGAL@discussions.microsoft.com> a crit dans le message de groupe
de discussion :
> E72F5658-B547-4D9A-9ED4-83D62E58673D@microsoft.com...
> Bonjour,
>
> J'ai trois cases cocher sur une feuille, associes une macro qui
> fonctionne un peu comme des cases optionnelles, avec cette diffrence :
soit
> toutes sont dsactives, soit une seule est active.
> Une case par ligne (i) et la cellule lie "Ai", et les macros associes
> chaque case :
>
> Sub CT_1_QuandClic()
> If Range("a1") = True Then
> Range("a2") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_2_QuandClic()
> If Range("a2") = True Then
> Range("a1") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_3_QuandClic()
> If Range("a3") = True Then
> Range("a1") = False
> Range("a2") = False
> End If
> ct_B
> End Sub
>
> Sub ct_B()
> For Each CELL In Range("a1:a3")
> j = CELL.Row
> If CELL = True Then
> Range("b1") = j ^ 2
> Exit Sub
> Else
> Range("b1") = 0
> End If
> Next
> End Sub
>
> videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais donc
> n'avoir qu'une seule procdure.
>
> Merci d'avance
>
> GGAL
>
>
Désolé, si tu as un problème, je ne sais pas qu'elle en est sa nature !
En changeant la valeur d'une cellule, tu affectes quel bouton radio
est activé et, si la cellule est vide, aucun bouton radio est activé.
Si tu veux autre chose, tu ne l'exprime pas !
"GGAL" a écrit dans le message de groupe
de discussion :
En effet les cases à cocher sont sur la feuille de calcul sur une ligne,
et
la cellule liée à cette case est sur la même ligne.
Si une case est cochée, les autres sont décochées. Si je reclique sur
une
case déjà cochée, toutes les cases sont décochées.
PS : Ton texte est difficile à lire : toutes les lettres accentuées ont
disparu.
GGAL
"MichDenis" a écrit :
> Bonjour GGal,
>
> Je n'ai pas trop compris ce que tu veux rellement ...
>
> Mais si tu utilises des boutons radio manant de la bote outils
formulaires
> et que tu les dposes directement sur la feuille de calcul, tous ces
boutons
> vont avoir la mme cellule lie. Et, dans cette cellule lie va s'afficher
le
> numro du bouton radio activ. Habituellement, ce numro est affect ces
> boutons radio par l'ordre de cration.
>
> En consquence, si tu saisis dans la cellule lie 3, c'est le bouton radio
No3
> (ordre de cration) qui va tre activ. Si la cellule lie est vide, aucun
des
> boutons radio ne sera activ.
>
> En consquence, tu n'as qu' grer le contenu de la cellule lie pour
activer ou
> dsactiver le bouton radio.
>
> Ma question, que veux-tu faire ?
>
>
>
>
>
> "GGAL" a crit dans le message de groupe
de discussion :
>
> Bonjour,
>
> J'ai trois cases cocher sur une feuille, associes une macro qui
> fonctionne un peu comme des cases optionnelles, avec cette diffrence :
soit
> toutes sont dsactives, soit une seule est active.
> Une case par ligne (i) et la cellule lie "Ai", et les macros associes
> chaque case :
>
> Sub CT_1_QuandClic()
> If Range("a1") = True Then
> Range("a2") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_2_QuandClic()
> If Range("a2") = True Then
> Range("a1") = False
> Range("a3") = False
> End If
> ct_B
> End Sub
>
> Sub CT_3_QuandClic()
> If Range("a3") = True Then
> Range("a1") = False
> Range("a2") = False
> End If
> ct_B
> End Sub
>
> Sub ct_B()
> For Each CELL In Range("a1:a3")
> j = CELL.Row
> If CELL = True Then
> Range("b1") = j ^ 2
> Exit Sub
> Else
> Range("b1") = 0
> End If
> Next
> End Sub
>
> videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais donc
> n'avoir qu'une seule procdure.
>
> Merci d'avance
>
> GGAL
>
>
Tu peux affecter une même macro pour tous tes boutons CheckBox
émanant de ta boîte d'outils formulaire. Pour ce faire, tu peux utiliser
ce genre de procédure :
Dans une module standard, tu copies ces deux macros:
L'exemple utilise la Feuil1, évidemment il faudra que tu adaptes.
L'exemple suppose que tous tes checkbox sont affectés à la même macro.
La conséquence de ceci, tous tes checkbox vont se comporter comme
des boutons radio.
'--------------------------------
Sub Affecter_Une_Macro_au_CheckBox()
Dim Nom As String
With Feuil1 'Nom Feuille à adapter
For Each sh In .Shapes
With sh
If TypeName(.OLEFormat.Object) = "CheckBox" Then
.OLEFormat.Object.OnAction = "MacroCheckBox"
End If
End With
Next
End With
End Sub
'--------------------------------
'--------------------------------
Sub MacroCheckBox()
Dim Nom As String
Nom = Replace(Application.Caller, "Case à cocher", "Check Box")
With Feuil1 'Nom Feuille à adapter
For Each sh In .Shapes
With sh
If TypeName(.OLEFormat.Object) = "CheckBox" Then
If .OLEFormat.Object.Name <> Nom Then
.OLEFormat.Object.Value = 0
End If
End If
End With
Next
End With
End Sub
'--------------------------------
"GGAL" a écrit dans le message de groupe
de discussion :
http://cjoint.com/?eofYbZYQaw
L'exemple ci-joint fonctionne. Mais si j'ai une vingtaine de cases, la
programmation sera fastidieuse. Je souhaiterais donc une seule procédure
compacte et élégante.
GGAL
"MichDenis" a écrit :
> Désolé, si tu as un problème, je ne sais pas qu'elle en est sa nature
!
>
> En changeant la valeur d'une cellule, tu affectes quel bouton radio
> est activé et, si la cellule est vide, aucun bouton radio est activé.
>
> Si tu veux autre chose, tu ne l'exprime pas !
>
>
>
>
>
> "GGAL" a écrit dans le message de
groupe
> de discussion :
> En effet les cases à cocher sont sur la feuille de calcul sur une
ligne,
> et
> la cellule liée à cette case est sur la même ligne.
> Si une case est cochée, les autres sont décochées. Si je reclique sur
> une
> case déjà cochée, toutes les cases sont décochées.
> PS : Ton texte est difficile à lire : toutes les lettres accentuées
ont
> disparu.
>
> GGAL
>
> "MichDenis" a écrit :
>
> > Bonjour GGal,
> >
> > Je n'ai pas trop compris ce que tu veux rellement ...
> >
> > Mais si tu utilises des boutons radio manant de la bote outils
> formulaires
> > et que tu les dposes directement sur la feuille de calcul, tous ces
> boutons
> > vont avoir la mme cellule lie. Et, dans cette cellule lie va
s'afficher
> le
> > numro du bouton radio activ. Habituellement, ce numro est affect ces
> > boutons radio par l'ordre de cration.
> >
> > En consquence, si tu saisis dans la cellule lie 3, c'est le bouton
radio
> No3
> > (ordre de cration) qui va tre activ. Si la cellule lie est vide, aucun
> des
> > boutons radio ne sera activ.
> >
> > En consquence, tu n'as qu' grer le contenu de la cellule lie pour
> activer ou
> > dsactiver le bouton radio.
> >
> > Ma question, que veux-tu faire ?
> >
> >
> >
> >
> >
> > "GGAL" a crit dans le message de
groupe
> de discussion :
> >
> > Bonjour,
> >
> > J'ai trois cases cocher sur une feuille, associes une macro qui
> > fonctionne un peu comme des cases optionnelles, avec cette diffrence :
> soit
> > toutes sont dsactives, soit une seule est active.
> > Une case par ligne (i) et la cellule lie "Ai", et les macros associes
> > chaque case :
> >
> > Sub CT_1_QuandClic()
> > If Range("a1") = True Then
> > Range("a2") = False
> > Range("a3") = False
> > End If
> > ct_B
> > End Sub
> >
> > Sub CT_2_QuandClic()
> > If Range("a2") = True Then
> > Range("a1") = False
> > Range("a3") = False
> > End If
> > ct_B
> > End Sub
> >
> > Sub CT_3_QuandClic()
> > If Range("a3") = True Then
> > Range("a1") = False
> > Range("a2") = False
> > End If
> > ct_B
> > End Sub
> >
> > Sub ct_B()
> > For Each CELL In Range("a1:a3")
> > j = CELL.Row
> > If CELL = True Then
> > Range("b1") = j ^ 2
> > Exit Sub
> > Else
> > Range("b1") = 0
> > End If
> > Next
> > End Sub
> >
> > videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais
donc
> > n'avoir qu'une seule procdure.
> >
> > Merci d'avance
> >
> > GGAL
> >
> >
>
Tu peux affecter une même macro pour tous tes boutons CheckBox
émanant de ta boîte d'outils formulaire. Pour ce faire, tu peux utiliser
ce genre de procédure :
Dans une module standard, tu copies ces deux macros:
L'exemple utilise la Feuil1, évidemment il faudra que tu adaptes.
L'exemple suppose que tous tes checkbox sont affectés à la même macro.
La conséquence de ceci, tous tes checkbox vont se comporter comme
des boutons radio.
'--------------------------------
Sub Affecter_Une_Macro_au_CheckBox()
Dim Nom As String
With Feuil1 'Nom Feuille à adapter
For Each sh In .Shapes
With sh
If TypeName(.OLEFormat.Object) = "CheckBox" Then
.OLEFormat.Object.OnAction = "MacroCheckBox"
End If
End With
Next
End With
End Sub
'--------------------------------
'--------------------------------
Sub MacroCheckBox()
Dim Nom As String
Nom = Replace(Application.Caller, "Case à cocher", "Check Box")
With Feuil1 'Nom Feuille à adapter
For Each sh In .Shapes
With sh
If TypeName(.OLEFormat.Object) = "CheckBox" Then
If .OLEFormat.Object.Name <> Nom Then
.OLEFormat.Object.Value = 0
End If
End If
End With
Next
End With
End Sub
'--------------------------------
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de groupe
de discussion : 864E63C9-C8DA-456D-B8A7-3D35D76BEA0C@microsoft.com...
http://cjoint.com/?eofYbZYQaw
L'exemple ci-joint fonctionne. Mais si j'ai une vingtaine de cases, la
programmation sera fastidieuse. Je souhaiterais donc une seule procédure
compacte et élégante.
GGAL
"MichDenis" a écrit :
> Désolé, si tu as un problème, je ne sais pas qu'elle en est sa nature
!
>
> En changeant la valeur d'une cellule, tu affectes quel bouton radio
> est activé et, si la cellule est vide, aucun bouton radio est activé.
>
> Si tu veux autre chose, tu ne l'exprime pas !
>
>
>
>
>
> "GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de
groupe
> de discussion : F963221B-7D6A-472B-9FE6-1844C084FF06@microsoft.com...
> En effet les cases à cocher sont sur la feuille de calcul sur une
ligne,
> et
> la cellule liée à cette case est sur la même ligne.
> Si une case est cochée, les autres sont décochées. Si je reclique sur
> une
> case déjà cochée, toutes les cases sont décochées.
> PS : Ton texte est difficile à lire : toutes les lettres accentuées
ont
> disparu.
>
> GGAL
>
> "MichDenis" a écrit :
>
> > Bonjour GGal,
> >
> > Je n'ai pas trop compris ce que tu veux rellement ...
> >
> > Mais si tu utilises des boutons radio manant de la bote outils
> formulaires
> > et que tu les dposes directement sur la feuille de calcul, tous ces
> boutons
> > vont avoir la mme cellule lie. Et, dans cette cellule lie va
s'afficher
> le
> > numro du bouton radio activ. Habituellement, ce numro est affect ces
> > boutons radio par l'ordre de cration.
> >
> > En consquence, si tu saisis dans la cellule lie 3, c'est le bouton
radio
> No3
> > (ordre de cration) qui va tre activ. Si la cellule lie est vide, aucun
> des
> > boutons radio ne sera activ.
> >
> > En consquence, tu n'as qu' grer le contenu de la cellule lie pour
> activer ou
> > dsactiver le bouton radio.
> >
> > Ma question, que veux-tu faire ?
> >
> >
> >
> >
> >
> > "GGAL" <GGAL@discussions.microsoft.com> a crit dans le message de
groupe
> de discussion :
> > E72F5658-B547-4D9A-9ED4-83D62E58673D@microsoft.com...
> > Bonjour,
> >
> > J'ai trois cases cocher sur une feuille, associes une macro qui
> > fonctionne un peu comme des cases optionnelles, avec cette diffrence :
> soit
> > toutes sont dsactives, soit une seule est active.
> > Une case par ligne (i) et la cellule lie "Ai", et les macros associes
> > chaque case :
> >
> > Sub CT_1_QuandClic()
> > If Range("a1") = True Then
> > Range("a2") = False
> > Range("a3") = False
> > End If
> > ct_B
> > End Sub
> >
> > Sub CT_2_QuandClic()
> > If Range("a2") = True Then
> > Range("a1") = False
> > Range("a3") = False
> > End If
> > ct_B
> > End Sub
> >
> > Sub CT_3_QuandClic()
> > If Range("a3") = True Then
> > Range("a1") = False
> > Range("a2") = False
> > End If
> > ct_B
> > End Sub
> >
> > Sub ct_B()
> > For Each CELL In Range("a1:a3")
> > j = CELL.Row
> > If CELL = True Then
> > Range("b1") = j ^ 2
> > Exit Sub
> > Else
> > Range("b1") = 0
> > End If
> > Next
> > End Sub
> >
> > videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais
donc
> > n'avoir qu'une seule procdure.
> >
> > Merci d'avance
> >
> > GGAL
> >
> >
>
Tu peux affecter une même macro pour tous tes boutons CheckBox
émanant de ta boîte d'outils formulaire. Pour ce faire, tu peux utiliser
ce genre de procédure :
Dans une module standard, tu copies ces deux macros:
L'exemple utilise la Feuil1, évidemment il faudra que tu adaptes.
L'exemple suppose que tous tes checkbox sont affectés à la même macro.
La conséquence de ceci, tous tes checkbox vont se comporter comme
des boutons radio.
'--------------------------------
Sub Affecter_Une_Macro_au_CheckBox()
Dim Nom As String
With Feuil1 'Nom Feuille à adapter
For Each sh In .Shapes
With sh
If TypeName(.OLEFormat.Object) = "CheckBox" Then
.OLEFormat.Object.OnAction = "MacroCheckBox"
End If
End With
Next
End With
End Sub
'--------------------------------
'--------------------------------
Sub MacroCheckBox()
Dim Nom As String
Nom = Replace(Application.Caller, "Case à cocher", "Check Box")
With Feuil1 'Nom Feuille à adapter
For Each sh In .Shapes
With sh
If TypeName(.OLEFormat.Object) = "CheckBox" Then
If .OLEFormat.Object.Name <> Nom Then
.OLEFormat.Object.Value = 0
End If
End If
End With
Next
End With
End Sub
'--------------------------------
"GGAL" a écrit dans le message de groupe
de discussion :
http://cjoint.com/?eofYbZYQaw
L'exemple ci-joint fonctionne. Mais si j'ai une vingtaine de cases, la
programmation sera fastidieuse. Je souhaiterais donc une seule procédure
compacte et élégante.
GGAL
"MichDenis" a écrit :
> Désolé, si tu as un problème, je ne sais pas qu'elle en est sa nature
!
>
> En changeant la valeur d'une cellule, tu affectes quel bouton radio
> est activé et, si la cellule est vide, aucun bouton radio est activé.
>
> Si tu veux autre chose, tu ne l'exprime pas !
>
>
>
>
>
> "GGAL" a écrit dans le message de
groupe
> de discussion :
> En effet les cases à cocher sont sur la feuille de calcul sur une
ligne,
> et
> la cellule liée à cette case est sur la même ligne.
> Si une case est cochée, les autres sont décochées. Si je reclique sur
> une
> case déjà cochée, toutes les cases sont décochées.
> PS : Ton texte est difficile à lire : toutes les lettres accentuées
ont
> disparu.
>
> GGAL
>
> "MichDenis" a écrit :
>
> > Bonjour GGal,
> >
> > Je n'ai pas trop compris ce que tu veux rellement ...
> >
> > Mais si tu utilises des boutons radio manant de la bote outils
> formulaires
> > et que tu les dposes directement sur la feuille de calcul, tous ces
> boutons
> > vont avoir la mme cellule lie. Et, dans cette cellule lie va
s'afficher
> le
> > numro du bouton radio activ. Habituellement, ce numro est affect ces
> > boutons radio par l'ordre de cration.
> >
> > En consquence, si tu saisis dans la cellule lie 3, c'est le bouton
radio
> No3
> > (ordre de cration) qui va tre activ. Si la cellule lie est vide, aucun
> des
> > boutons radio ne sera activ.
> >
> > En consquence, tu n'as qu' grer le contenu de la cellule lie pour
> activer ou
> > dsactiver le bouton radio.
> >
> > Ma question, que veux-tu faire ?
> >
> >
> >
> >
> >
> > "GGAL" a crit dans le message de
groupe
> de discussion :
> >
> > Bonjour,
> >
> > J'ai trois cases cocher sur une feuille, associes une macro qui
> > fonctionne un peu comme des cases optionnelles, avec cette diffrence :
> soit
> > toutes sont dsactives, soit une seule est active.
> > Une case par ligne (i) et la cellule lie "Ai", et les macros associes
> > chaque case :
> >
> > Sub CT_1_QuandClic()
> > If Range("a1") = True Then
> > Range("a2") = False
> > Range("a3") = False
> > End If
> > ct_B
> > End Sub
> >
> > Sub CT_2_QuandClic()
> > If Range("a2") = True Then
> > Range("a1") = False
> > Range("a3") = False
> > End If
> > ct_B
> > End Sub
> >
> > Sub CT_3_QuandClic()
> > If Range("a3") = True Then
> > Range("a1") = False
> > Range("a2") = False
> > End If
> > ct_B
> > End Sub
> >
> > Sub ct_B()
> > For Each CELL In Range("a1:a3")
> > j = CELL.Row
> > If CELL = True Then
> > Range("b1") = j ^ 2
> > Exit Sub
> > Else
> > Range("b1") = 0
> > End If
> > Next
> > End Sub
> >
> > videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais
donc
> > n'avoir qu'une seule procdure.
> >
> > Merci d'avance
> >
> > GGAL
> >
> >
>
Si tu as 5 cases à cocher et chacune d'elles à une cellule liée
de A1 à A5, dans la cellule de ton choix, tu peux utiliser ce
type de formule pour trouver le numéro de la ligne
où la case à cocher est activée.
=SI(ESTNA(EQUIV(VRAI;A1:A5;0));0;EQUIV(VRAI;A1:A5;0))
Si aucune case est cochée, la formule retourne 0
"GGAL" a écrit dans le message de groupe
de discussion :
C'est cela dans le fonctionnement des checkbox !
Toutefois je n'arrive pas à placer une formule en fonction des cellules
liées :
A1=vrai, alors B1=1 (en fonction du numéro de ligne)
A2=vrai, alors B1=2
A3=vrai, alors B1=3
et si A1¢£úux, alors B1=0
GGAL
"MichDenis" a écrit :
> Tu peux affecter une même macro pour tous tes boutons CheckBox
> émanant de ta boîte d'outils formulaire. Pour ce faire, tu peux
utiliser
> ce genre de procédure :
>
> Dans une module standard, tu copies ces deux macros:
> L'exemple utilise la Feuil1, évidemment il faudra que tu adaptes.
> L'exemple suppose que tous tes checkbox sont affectés à la même
macro.
>
> La conséquence de ceci, tous tes checkbox vont se comporter comme
> des boutons radio.
>
> '--------------------------------
> Sub Affecter_Une_Macro_au_CheckBox()
>
> Dim Nom As String
> With Feuil1 'Nom Feuille à adapter
> For Each sh In .Shapes
> With sh
> If TypeName(.OLEFormat.Object) = "CheckBox" Then
> .OLEFormat.Object.OnAction = "MacroCheckBox"
> End If
> End With
> Next
> End With
>
> End Sub
> '--------------------------------
>
> '--------------------------------
> Sub MacroCheckBox()
> Dim Nom As String
> Nom = Replace(Application.Caller, "Case à cocher", "Check Box")
> With Feuil1 'Nom Feuille à adapter
> For Each sh In .Shapes
> With sh
> If TypeName(.OLEFormat.Object) = "CheckBox" Then
> If .OLEFormat.Object.Name <> Nom Then
> .OLEFormat.Object.Value = 0
> End If
> End If
> End With
> Next
> End With
> End Sub
> '--------------------------------
>
>
>
>
> "GGAL" a écrit dans le message de
groupe
> de discussion :
> http://cjoint.com/?eofYbZYQaw
>
> L'exemple ci-joint fonctionne. Mais si j'ai une vingtaine de cases, la
> programmation sera fastidieuse. Je souhaiterais donc une seule
procédure
> compacte et élégante.
>
> GGAL
>
> "MichDenis" a écrit :
>
> > Désolé, si tu as un problème, je ne sais pas qu'elle en est sa
nature
> !
> >
> > En changeant la valeur d'une cellule, tu affectes quel bouton radio
> > est activé et, si la cellule est vide, aucun bouton radio est
activé.
> >
> > Si tu veux autre chose, tu ne l'exprime pas !
> >
> >
> >
> >
> >
> > "GGAL" a écrit dans le message de
> groupe
> > de discussion :
> > En effet les cases à cocher sont sur la feuille de calcul sur une
> ligne,
> > et
> > la cellule liée à cette case est sur la même ligne.
> > Si une case est cochée, les autres sont décochées. Si je reclique
sur
> > une
> > case déjà cochée, toutes les cases sont décochées.
> > PS : Ton texte est difficile à lire : toutes les lettres accentuées
> ont
> > disparu.
> >
> > GGAL
> >
> > "MichDenis" a écrit :
> >
> > > Bonjour GGal,
> > >
> > > Je n'ai pas trop compris ce que tu veux rellement ...
> > >
> > > Mais si tu utilises des boutons radio manant de la bote outils
> > formulaires
> > > et que tu les dposes directement sur la feuille de calcul, tous ces
> > boutons
> > > vont avoir la mme cellule lie. Et, dans cette cellule lie va
> s'afficher
> > le
> > > numro du bouton radio activ. Habituellement, ce numro est affect
ces
> > > boutons radio par l'ordre de cration.
> > >
> > > En consquence, si tu saisis dans la cellule lie 3, c'est le bouton
> radio
> > No3
> > > (ordre de cration) qui va tre activ. Si la cellule lie est vide,
aucun
> > des
> > > boutons radio ne sera activ.
> > >
> > > En consquence, tu n'as qu' grer le contenu de la cellule lie pour
> > activer ou
> > > dsactiver le bouton radio.
> > >
> > > Ma question, que veux-tu faire ?
> > >
> > >
> > >
> > >
> > >
> > > "GGAL" a crit dans le message de
> groupe
> > de discussion :
> > >
> > > Bonjour,
> > >
> > > J'ai trois cases cocher sur une feuille, associes une macro qui
> > > fonctionne un peu comme des cases optionnelles, avec cette diffrence
:
> > soit
> > > toutes sont dsactives, soit une seule est active.
> > > Une case par ligne (i) et la cellule lie "Ai", et les macros
associes
> > > chaque case :
> > >
> > > Sub CT_1_QuandClic()
> > > If Range("a1") = True Then
> > > Range("a2") = False
> > > Range("a3") = False
> > > End If
> > > ct_B
> > > End Sub
> > >
> > > Sub CT_2_QuandClic()
> > > If Range("a2") = True Then
> > > Range("a1") = False
> > > Range("a3") = False
> > > End If
> > > ct_B
> > > End Sub
> > >
> > > Sub CT_3_QuandClic()
> > > If Range("a3") = True Then
> > > Range("a1") = False
> > > Range("a2") = False
> > > End If
> > > ct_B
> > > End Sub
> > >
> > > Sub ct_B()
> > > For Each CELL In Range("a1:a3")
> > > j = CELL.Row
> > > If CELL = True Then
> > > Range("b1") = j ^ 2
> > > Exit Sub
> > > Else
> > > Range("b1") = 0
> > > End If
> > > Next
> > > End Sub
> > >
> > > videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais
> donc
> > > n'avoir qu'une seule procdure.
> > >
> > > Merci d'avance
> > >
> > > GGAL
> > >
> > >
> >
>
Si tu as 5 cases à cocher et chacune d'elles à une cellule liée
de A1 à A5, dans la cellule de ton choix, tu peux utiliser ce
type de formule pour trouver le numéro de la ligne
où la case à cocher est activée.
=SI(ESTNA(EQUIV(VRAI;A1:A5;0));0;EQUIV(VRAI;A1:A5;0))
Si aucune case est cochée, la formule retourne 0
"GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de groupe
de discussion : E85DD579-A88B-492B-9014-594F33E467F8@microsoft.com...
C'est cela dans le fonctionnement des checkbox !
Toutefois je n'arrive pas à placer une formule en fonction des cellules
liées :
A1=vrai, alors B1=1 (en fonction du numéro de ligne)
A2=vrai, alors B1=2
A3=vrai, alors B1=3
et si A1¢£úux, alors B1=0
GGAL
"MichDenis" a écrit :
> Tu peux affecter une même macro pour tous tes boutons CheckBox
> émanant de ta boîte d'outils formulaire. Pour ce faire, tu peux
utiliser
> ce genre de procédure :
>
> Dans une module standard, tu copies ces deux macros:
> L'exemple utilise la Feuil1, évidemment il faudra que tu adaptes.
> L'exemple suppose que tous tes checkbox sont affectés à la même
macro.
>
> La conséquence de ceci, tous tes checkbox vont se comporter comme
> des boutons radio.
>
> '--------------------------------
> Sub Affecter_Une_Macro_au_CheckBox()
>
> Dim Nom As String
> With Feuil1 'Nom Feuille à adapter
> For Each sh In .Shapes
> With sh
> If TypeName(.OLEFormat.Object) = "CheckBox" Then
> .OLEFormat.Object.OnAction = "MacroCheckBox"
> End If
> End With
> Next
> End With
>
> End Sub
> '--------------------------------
>
> '--------------------------------
> Sub MacroCheckBox()
> Dim Nom As String
> Nom = Replace(Application.Caller, "Case à cocher", "Check Box")
> With Feuil1 'Nom Feuille à adapter
> For Each sh In .Shapes
> With sh
> If TypeName(.OLEFormat.Object) = "CheckBox" Then
> If .OLEFormat.Object.Name <> Nom Then
> .OLEFormat.Object.Value = 0
> End If
> End If
> End With
> Next
> End With
> End Sub
> '--------------------------------
>
>
>
>
> "GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de
groupe
> de discussion : 864E63C9-C8DA-456D-B8A7-3D35D76BEA0C@microsoft.com...
> http://cjoint.com/?eofYbZYQaw
>
> L'exemple ci-joint fonctionne. Mais si j'ai une vingtaine de cases, la
> programmation sera fastidieuse. Je souhaiterais donc une seule
procédure
> compacte et élégante.
>
> GGAL
>
> "MichDenis" a écrit :
>
> > Désolé, si tu as un problème, je ne sais pas qu'elle en est sa
nature
> !
> >
> > En changeant la valeur d'une cellule, tu affectes quel bouton radio
> > est activé et, si la cellule est vide, aucun bouton radio est
activé.
> >
> > Si tu veux autre chose, tu ne l'exprime pas !
> >
> >
> >
> >
> >
> > "GGAL" <GGAL@discussions.microsoft.com> a écrit dans le message de
> groupe
> > de discussion : F963221B-7D6A-472B-9FE6-1844C084FF06@microsoft.com...
> > En effet les cases à cocher sont sur la feuille de calcul sur une
> ligne,
> > et
> > la cellule liée à cette case est sur la même ligne.
> > Si une case est cochée, les autres sont décochées. Si je reclique
sur
> > une
> > case déjà cochée, toutes les cases sont décochées.
> > PS : Ton texte est difficile à lire : toutes les lettres accentuées
> ont
> > disparu.
> >
> > GGAL
> >
> > "MichDenis" a écrit :
> >
> > > Bonjour GGal,
> > >
> > > Je n'ai pas trop compris ce que tu veux rellement ...
> > >
> > > Mais si tu utilises des boutons radio manant de la bote outils
> > formulaires
> > > et que tu les dposes directement sur la feuille de calcul, tous ces
> > boutons
> > > vont avoir la mme cellule lie. Et, dans cette cellule lie va
> s'afficher
> > le
> > > numro du bouton radio activ. Habituellement, ce numro est affect
ces
> > > boutons radio par l'ordre de cration.
> > >
> > > En consquence, si tu saisis dans la cellule lie 3, c'est le bouton
> radio
> > No3
> > > (ordre de cration) qui va tre activ. Si la cellule lie est vide,
aucun
> > des
> > > boutons radio ne sera activ.
> > >
> > > En consquence, tu n'as qu' grer le contenu de la cellule lie pour
> > activer ou
> > > dsactiver le bouton radio.
> > >
> > > Ma question, que veux-tu faire ?
> > >
> > >
> > >
> > >
> > >
> > > "GGAL" <GGAL@discussions.microsoft.com> a crit dans le message de
> groupe
> > de discussion :
> > > E72F5658-B547-4D9A-9ED4-83D62E58673D@microsoft.com...
> > > Bonjour,
> > >
> > > J'ai trois cases cocher sur une feuille, associes une macro qui
> > > fonctionne un peu comme des cases optionnelles, avec cette diffrence
:
> > soit
> > > toutes sont dsactives, soit une seule est active.
> > > Une case par ligne (i) et la cellule lie "Ai", et les macros
associes
> > > chaque case :
> > >
> > > Sub CT_1_QuandClic()
> > > If Range("a1") = True Then
> > > Range("a2") = False
> > > Range("a3") = False
> > > End If
> > > ct_B
> > > End Sub
> > >
> > > Sub CT_2_QuandClic()
> > > If Range("a2") = True Then
> > > Range("a1") = False
> > > Range("a3") = False
> > > End If
> > > ct_B
> > > End Sub
> > >
> > > Sub CT_3_QuandClic()
> > > If Range("a3") = True Then
> > > Range("a1") = False
> > > Range("a2") = False
> > > End If
> > > ct_B
> > > End Sub
> > >
> > > Sub ct_B()
> > > For Each CELL In Range("a1:a3")
> > > j = CELL.Row
> > > If CELL = True Then
> > > Range("b1") = j ^ 2
> > > Exit Sub
> > > Else
> > > Range("b1") = 0
> > > End If
> > > Next
> > > End Sub
> > >
> > > videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais
> donc
> > > n'avoir qu'une seule procdure.
> > >
> > > Merci d'avance
> > >
> > > GGAL
> > >
> > >
> >
>
Si tu as 5 cases à cocher et chacune d'elles à une cellule liée
de A1 à A5, dans la cellule de ton choix, tu peux utiliser ce
type de formule pour trouver le numéro de la ligne
où la case à cocher est activée.
=SI(ESTNA(EQUIV(VRAI;A1:A5;0));0;EQUIV(VRAI;A1:A5;0))
Si aucune case est cochée, la formule retourne 0
"GGAL" a écrit dans le message de groupe
de discussion :
C'est cela dans le fonctionnement des checkbox !
Toutefois je n'arrive pas à placer une formule en fonction des cellules
liées :
A1=vrai, alors B1=1 (en fonction du numéro de ligne)
A2=vrai, alors B1=2
A3=vrai, alors B1=3
et si A1¢£úux, alors B1=0
GGAL
"MichDenis" a écrit :
> Tu peux affecter une même macro pour tous tes boutons CheckBox
> émanant de ta boîte d'outils formulaire. Pour ce faire, tu peux
utiliser
> ce genre de procédure :
>
> Dans une module standard, tu copies ces deux macros:
> L'exemple utilise la Feuil1, évidemment il faudra que tu adaptes.
> L'exemple suppose que tous tes checkbox sont affectés à la même
macro.
>
> La conséquence de ceci, tous tes checkbox vont se comporter comme
> des boutons radio.
>
> '--------------------------------
> Sub Affecter_Une_Macro_au_CheckBox()
>
> Dim Nom As String
> With Feuil1 'Nom Feuille à adapter
> For Each sh In .Shapes
> With sh
> If TypeName(.OLEFormat.Object) = "CheckBox" Then
> .OLEFormat.Object.OnAction = "MacroCheckBox"
> End If
> End With
> Next
> End With
>
> End Sub
> '--------------------------------
>
> '--------------------------------
> Sub MacroCheckBox()
> Dim Nom As String
> Nom = Replace(Application.Caller, "Case à cocher", "Check Box")
> With Feuil1 'Nom Feuille à adapter
> For Each sh In .Shapes
> With sh
> If TypeName(.OLEFormat.Object) = "CheckBox" Then
> If .OLEFormat.Object.Name <> Nom Then
> .OLEFormat.Object.Value = 0
> End If
> End If
> End With
> Next
> End With
> End Sub
> '--------------------------------
>
>
>
>
> "GGAL" a écrit dans le message de
groupe
> de discussion :
> http://cjoint.com/?eofYbZYQaw
>
> L'exemple ci-joint fonctionne. Mais si j'ai une vingtaine de cases, la
> programmation sera fastidieuse. Je souhaiterais donc une seule
procédure
> compacte et élégante.
>
> GGAL
>
> "MichDenis" a écrit :
>
> > Désolé, si tu as un problème, je ne sais pas qu'elle en est sa
nature
> !
> >
> > En changeant la valeur d'une cellule, tu affectes quel bouton radio
> > est activé et, si la cellule est vide, aucun bouton radio est
activé.
> >
> > Si tu veux autre chose, tu ne l'exprime pas !
> >
> >
> >
> >
> >
> > "GGAL" a écrit dans le message de
> groupe
> > de discussion :
> > En effet les cases à cocher sont sur la feuille de calcul sur une
> ligne,
> > et
> > la cellule liée à cette case est sur la même ligne.
> > Si une case est cochée, les autres sont décochées. Si je reclique
sur
> > une
> > case déjà cochée, toutes les cases sont décochées.
> > PS : Ton texte est difficile à lire : toutes les lettres accentuées
> ont
> > disparu.
> >
> > GGAL
> >
> > "MichDenis" a écrit :
> >
> > > Bonjour GGal,
> > >
> > > Je n'ai pas trop compris ce que tu veux rellement ...
> > >
> > > Mais si tu utilises des boutons radio manant de la bote outils
> > formulaires
> > > et que tu les dposes directement sur la feuille de calcul, tous ces
> > boutons
> > > vont avoir la mme cellule lie. Et, dans cette cellule lie va
> s'afficher
> > le
> > > numro du bouton radio activ. Habituellement, ce numro est affect
ces
> > > boutons radio par l'ordre de cration.
> > >
> > > En consquence, si tu saisis dans la cellule lie 3, c'est le bouton
> radio
> > No3
> > > (ordre de cration) qui va tre activ. Si la cellule lie est vide,
aucun
> > des
> > > boutons radio ne sera activ.
> > >
> > > En consquence, tu n'as qu' grer le contenu de la cellule lie pour
> > activer ou
> > > dsactiver le bouton radio.
> > >
> > > Ma question, que veux-tu faire ?
> > >
> > >
> > >
> > >
> > >
> > > "GGAL" a crit dans le message de
> groupe
> > de discussion :
> > >
> > > Bonjour,
> > >
> > > J'ai trois cases cocher sur une feuille, associes une macro qui
> > > fonctionne un peu comme des cases optionnelles, avec cette diffrence
:
> > soit
> > > toutes sont dsactives, soit une seule est active.
> > > Une case par ligne (i) et la cellule lie "Ai", et les macros
associes
> > > chaque case :
> > >
> > > Sub CT_1_QuandClic()
> > > If Range("a1") = True Then
> > > Range("a2") = False
> > > Range("a3") = False
> > > End If
> > > ct_B
> > > End Sub
> > >
> > > Sub CT_2_QuandClic()
> > > If Range("a2") = True Then
> > > Range("a1") = False
> > > Range("a3") = False
> > > End If
> > > ct_B
> > > End Sub
> > >
> > > Sub CT_3_QuandClic()
> > > If Range("a3") = True Then
> > > Range("a1") = False
> > > Range("a2") = False
> > > End If
> > > ct_B
> > > End Sub
> > >
> > > Sub ct_B()
> > > For Each CELL In Range("a1:a3")
> > > j = CELL.Row
> > > If CELL = True Then
> > > Range("b1") = j ^ 2
> > > Exit Sub
> > > Else
> > > Range("b1") = 0
> > > End If
> > > Next
> > > End Sub
> > >
> > > videmment, si je dispose de 20 cases, c'est pnible. Je souhaiterais
> donc
> > > n'avoir qu'une seule procdure.
> > >
> > > Merci d'avance
> > >
> > > GGAL
> > >
> > >
> >
>