Creer 3 cases d'option et les grouper automatiquement

Résolu
mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention   -  
mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai essayé de créer 3 cases d'option et de les grouper via un enregistrement de macro. Cela a donné :

Sub creeOption()
'
' creeOption Macro

'expression.Add(Left, Top, Width, Height)
ActiveSheet.OptionButtons.Add(800, 200, 0.7, 0.7).Select
ActiveSheet.OptionButtons.Add(850, 200, 0.7, 0.7).Select
ActiveSheet.OptionButtons.Add(900, 200, 0.7, 0.7).Select

ActiveSheet.Shapes.Range(Array("Option Button 705", "Option Button 706", _
"Option Button 707")).Select


Selection.ShapeRange.Group.Select

End Sub


Ici on connait le numéro des cases d'option.

1) Mais comment je peux le faire sans connaitre leur numéro, svp? car je veux en créer automatiquement ET chaque groupe en dessous de l'autre.
2) Comment gérer les Left et Top à travers la macron svp?

merci



A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir,
tu peux faire ainsi :
ActiveSheet.Shapes.Range(Array(ActiveSheet.OptionButtons.Add(800, 200, 0.7, 0.7).Index, _
    ActiveSheet.OptionButtons.Add(850, 200, 0.7, 0.7).Index, _
     ActiveSheet.OptionButtons.Add(900, 200, 0.7, 0.7).Index)).Group
1
mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention   53
 
merci yg_be!

Et si je veux lier le choix à une cellule, je peux ajouter ça ?


With Selection
.Selection.ShapeRange.Group
.Caption = ""
.Value = xlOff '
.LinkedCell = "Q" & i 'Lie La ChekBox à la celulle i,"Q"
.Display3DShading = False


est-ce que je peux inclure le groupement?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
je ne sais pas.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
suggestion:
Option Explicit
Sub test()
Dim bouton(10) As OptionButton
Set bouton(1) = ActiveSheet.OptionButtons.Add(800, 200, 0.7, 0.7)
bouton(1).LinkedCell = "Q" & 12
Set bouton(2) = ActiveSheet.OptionButtons.Add(850, 200, 0.7, 0.7)
bouton(2).LinkedCell = "Q" & 12
Set bouton(3) = ActiveSheet.OptionButtons.Add(900, 200, 0.7, 0.7)
bouton(3).LinkedCell = "Q" & 12
ActiveSheet.Shapes.Range(Array(bouton(1).Index, _
    bouton(2).Index, _
     bouton(3).Index)).Group
End Sub
0
mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention   53
 
Merci yg_be, j'ai testé la liaison marche bien mais pas le groupement, voici mon code:

Set bouton(1) = ActiveSheet.OptionButtons.Add(Cells(i, "AA").Left, Cells(i, "AA").Top, 0.7, 0.7)
bouton(1).LinkedCell = "AD" & i
Set bouton(2) = ActiveSheet.OptionButtons.Add(Cells(i, "AB").Left, Cells(i, "AB").Top, 0.7, 0.7)
'bouton(2).LinkedCell = "AD" & i
Set bouton(3) = ActiveSheet.OptionButtons.Add(Cells(i, "AC").Left, Cells(i, "AC").Top, 0.7, 0.7)
'bouton(3).LinkedCell = "AD" & i

ActiveSheet.Shapes.Range(Array(bouton(1).Index, bouton(2).Index, bouton(3).Index)).Group


Alors je cherche encore
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention  
 
je pense que le groupement fonctionne bien, les trois boutons sont bien groupés.
comme ils sont groupés, il vont toujours se déplacer ensemble.
qu’est-ce qui te fait dire que les boutons ne sont pas groupés? qu'est-ce qu'un groupe pour toi, quel comportement attends-tu?
0
mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention   53
 
A te lire je vois que je donne un autre sens.
Pour moi grouper, c'est qu'elles ont la même cellule de liaison, c'est pour cela que je n'en lie qu'une. Les autres agissent pareil du fait du groupe
Car quand je crée une autre série de 3 cases la cellule de liaison affiche 4 ou 5 ou 6.
0
mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention   53
 
en refaisant un enregistrement de macro, je crois que j'ai confondu grouper avec "zone de groupe". donc je n'ai pas le même résultat.

merci de ton aide. Je vais refaire tous ça :-(
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention  
 
je comprends, je me suis laissé embarquer par ton instruction
ShapeRange.Group
0
mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention   53
 
Quelqu'un serait-il m'indiquer comment coller mes cases d'option groupées à ma zone de groupe svp?

mon code est:

'crée la zone de groupe
'expression.Add(Left, Top, Width, Height)
ActiveSheet.GroupBoxes.Add(Cells(i, "AA").Left, Cells(i, "AA").Top, 5.4, 0.8).Select

'crée les cases d'option
Set CaseOption(1) = ActiveSheet.OptionButtons.Add(Cells(i, "AA").Left, Cells(i, "AA").Top, 0.7, 0.7)
Set CaseOption(2) = ActiveSheet.OptionButtons.Add(Cells(i, "AB").Left, Cells(i, "AB").Top, 0.7, 0.7)
Set CaseOption(3) = ActiveSheet.OptionButtons.Add(Cells(i, "AC").Left, Cells(i, "AC").Top, 0.7, 0.7)

'Lie la case d'option à la cellule "Q"
CaseOption(1).LinkedCell = "AD" & i

'Groupement des Cases Option
ActiveSheet.Shapes.Range(Array(CaseOption(1).Index, CaseOption(2).Index, CaseOption(3).Index)).Group


0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
je pense qu'il suffit que les cases d'option soient créées dans la surface de la zone de groupe.
et mieux de laisser tomber le
.Group
0
mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention   53
 
je vais ré-essayer
0
mod77 Messages postés 1284 Date d'inscription   Statut Membre Dernière intervention   53
 
Bon, ça fonctionne si je crée mes case à cocher dans ma zone de groupe, alors je 'en contente, tant pis! je laisse tomber le group

Merci de ton aide
0