Excel 2007 - Macro à partir d'une case d'option (formulaire)
Résolu/Fermé
guigol
Messages postés
65
Date d'inscription
mardi 12 décembre 2006
Statut
Membre
Dernière intervention
30 janvier 2019
-
22 févr. 2013 à 15:24
guigol Messages postés 65 Date d'inscription mardi 12 décembre 2006 Statut Membre Dernière intervention 30 janvier 2019 - 22 févr. 2013 à 20:33
guigol Messages postés 65 Date d'inscription mardi 12 décembre 2006 Statut Membre Dernière intervention 30 janvier 2019 - 22 févr. 2013 à 20:33
A voir également:
- Excel 2007 - Macro à partir d'une case d'option (formulaire)
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Aller à la ligne dans une case excel - Guide
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
6 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
Modifié par pilas31 le 22/02/2013 à 16:10
Modifié par pilas31 le 22/02/2013 à 16:10
Bonjour,
Je pense qu'il faut creer un classeur avec la macro suivante :
Macro1 2 et 3 correspondent aux traitements voulus.
Il faut ensuite ouvrir le classeur du client, se positionner sur la feuille qui contient les case d'options et appeler la macro "lancer_macro"
A tester
A+
Cordialement,
Je pense qu'il faut creer un classeur avec la macro suivante :
Sub lancer_macro() If ActiveSheet.OptionButtons(1).Value = 1 Then Call Macro1 End If If ActiveSheet.OptionButtons(2).Value = 1 Then Call Macro2 End If If ActiveSheet.OptionButtons(3).Value = 1 Then Call Macro3 End If End Sub
Macro1 2 et 3 correspondent aux traitements voulus.
Il faut ensuite ouvrir le classeur du client, se positionner sur la feuille qui contient les case d'options et appeler la macro "lancer_macro"
A tester
A+
Cordialement,
guigol
Messages postés
65
Date d'inscription
mardi 12 décembre 2006
Statut
Membre
Dernière intervention
30 janvier 2019
1
Modifié par guigol le 22/02/2013 à 16:29
Modifié par guigol le 22/02/2013 à 16:29
Merci pour ta réponse.
Mais il me répond :
"Impossible de lire la propriété OptionsButtons de la classe Worksheet"
J'ai essayé de le mettre en ligne.
http://tilidom.com/tilidom/download/183245806
Arrivez vous à y acceder?
Mais il me répond :
"Impossible de lire la propriété OptionsButtons de la classe Worksheet"
J'ai essayé de le mettre en ligne.
http://tilidom.com/tilidom/download/183245806
Arrivez vous à y acceder?
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
22 févr. 2013 à 17:42
22 févr. 2013 à 17:42
C'est OK on peut acceder au fichier.
Je me penche sur le sujet et je reviens...
Je me penche sur le sujet et je reviens...
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
Modifié par pilas31 le 22/02/2013 à 17:59
Modifié par pilas31 le 22/02/2013 à 17:59
Bon c'était pas facile mais voilà mon analyse.
On ne peut pas lire les controls parcequ'ils sont groupés.
Donc il faut d'abord les dégrouper puis faire la macro "d'aiguillage" d'ou mes deux macros comme ceci :
Sachant qu'il y a 4 groupes d'options qui sont respectivement
3,4, 5
8,9, 10
14,15, 16
19,20, 21
A tester
Cordialement,
On ne peut pas lire les controls parcequ'ils sont groupés.
Donc il faut d'abord les dégrouper puis faire la macro "d'aiguillage" d'ou mes deux macros comme ceci :
Sub Degrouper() On Error Resume Next ActiveSheet.Shapes.Range(Array("Group 51")).Select Selection.ShapeRange.Ungroup ActiveSheet.Shapes.Range(Array("Group 52")).Select Selection.ShapeRange.Ungroup ActiveSheet.Shapes.Range(Array("Group 53")).Select Selection.ShapeRange.Ungroup ActiveSheet.Shapes.Range(Array("Group 54")).Select Selection.ShapeRange.Ungroup End Sub Sub lancer_macro() If ActiveSheet.Shapes("Case d'option 3").ControlFormat.Value = xlOn Then Call OUI3 End If If ActiveSheet.Shapes("Case d'option 4").ControlFormat.Value = xlOn Then Call OUI4 End If If ActiveSheet.Shapes("Case d'option 5").ControlFormat.Value = xlOn Then Call OUI5 End If 'etc... avec 8,9, 10 ... End Sub
Sachant qu'il y a 4 groupes d'options qui sont respectivement
3,4, 5
8,9, 10
14,15, 16
19,20, 21
A tester
Cordialement,
guigol
Messages postés
65
Date d'inscription
mardi 12 décembre 2006
Statut
Membre
Dernière intervention
30 janvier 2019
1
Modifié par guigol le 22/02/2013 à 18:28
Modifié par guigol le 22/02/2013 à 18:28
Ca marche chez toi?
Parce que chez moi, non.
Lorsque j'exécute pas à pas les 2 sub successivement, il :
_____ exécute Degrouper() sans problème (et les groupes sont bien dégroupés)
_____ bloque sur le if en indiquant "L'élément portant ce nom est introuvable"
De plus, ma feuille étant protégé par mot de passe (que je connais) il faut que je trouve la ligne de code à ajouter pour la débloquer avant de commencer à dégrouper.
J'édite mon message.
Après avoir fait tourner tes 2 subs (et ou ca plante a la deuxième), je suis retourné sur mon fichier.
je me rends compte qu'il y a des zones de groupe (22, 30, 37, 42) qui restent.
Parce que chez moi, non.
Lorsque j'exécute pas à pas les 2 sub successivement, il :
_____ exécute Degrouper() sans problème (et les groupes sont bien dégroupés)
_____ bloque sur le if en indiquant "L'élément portant ce nom est introuvable"
De plus, ma feuille étant protégé par mot de passe (que je connais) il faut que je trouve la ligne de code à ajouter pour la débloquer avant de commencer à dégrouper.
J'édite mon message.
Après avoir fait tourner tes 2 subs (et ou ca plante a la deuxième), je suis retourné sur mon fichier.
je me rends compte qu'il y a des zones de groupe (22, 30, 37, 42) qui restent.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
22 févr. 2013 à 20:10
22 févr. 2013 à 20:10
Bonjour à tous,
Ta question m'a intéressé.
Je n'ai pas réussi non plus à tester les boutons sans dégrouper.
Une proposition qui ramène l'adresse des cellules avec un radio button actif :
Selon la ligne et colonne tu peux choisir le traitement à effectuer
eric
Ta question m'a intéressé.
Je n'ai pas réussi non plus à tester les boutons sans dégrouper.
Une proposition qui ramène l'adresse des cellules avec un radio button actif :
Dim groupe As Shape, opt As Object, adr As String For Each groupe In ActiveSheet.Shapes If groupe.Type = msoGroup Then groupe.Ungroup Next groupe For Each opt In ActiveSheet.Shapes If opt.FormControlType = xlOptionButton Then adr = opt.TopLeftCell.Address If opt.ControlFormat = 1 Then MsgBox (adr & ", ligne " & Split(adr, "$")(1) & ", colonne " & Split(adr, "$")(2)) End If Next opt
Selon la ligne et colonne tu peux choisir le traitement à effectuer
eric
guigol
Messages postés
65
Date d'inscription
mardi 12 décembre 2006
Statut
Membre
Dernière intervention
30 janvier 2019
1
22 févr. 2013 à 20:33
22 févr. 2013 à 20:33
Effectivement. cela fonctionne.
Merci beaucoup.
Merci beaucoup.