Macro sur case à cocher ne fonctionnant qu'une fois

Jack11

XLDnaute Nouveau
Bonsoir,

J'ai crée une macro avec l'aide d'excel 2007 (sans la coder moi même car je n'y connais pas grand chose...) qui permet de décocher toutes les cases à cocher, qu'elles soient cochées ou non.

Le problème est qu'elle ne fonctionne qu'une fois, après elle m'indique :

"Erreur d'éxécution '1004':

Impossible de définir la propriété Value de la classe DrawingObjects.

Voici la macro :
Sub Macro1()
'
' Macro1 Macro
'

'
ActiveSheet.Shapes.Range(Array("Check Box 1", "Check Box 2", "Check Box 3", _
"Check Box 4")).Select
With Selection
.Value = xlOff
.LinkedCell = ""
.Display3DShading = False
End With
Range("A1").Select
End Sub

Ce qui est en orange est ce qui est surligné en jaune quand je clique sur débogage.

Avez-vous une solution ?
 

Pièces jointes

  • test1.xlsm
    16.2 KB · Affichages: 51
  • test1.xlsm
    16.2 KB · Affichages: 56
  • test1.xlsm
    16.2 KB · Affichages: 55
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Macro sur case à cocher ne fonctionnant qu'une fois

Bonjour,

pas ouvert ton fichier, pas 2007 sous le coude, essaye peut être ceci :
Code:
Dim s As Shape
For Each s In ActiveSheet.Shapes
    If s.Name Like "Check Box*" Then s.OLEFormat.Object.Value = xlOff
Next s

perso suis plutôt pour l'utilisation des contrôles activex (ceux de la la boîte à outils controles)....

bonne journée
@+
 

Jack11

XLDnaute Nouveau
Re : Macro sur case à cocher ne fonctionnant qu'une fois

Merci pour vos réponse,

J'ai essayé vos 2 macros, malheureusement, celà ne fonctionne pas pour mon cas.

J'ai en effet omis une information qui fait que la 1ère macro décoche toutes les cases comme la seconde sauf que la seconde ne fonctionne pas sous mon vrai classeur (j'ai remplacé Feuil1 par le nom de ma feuille mais ça ne marche pas :confused:)

En fait, je voudrais que la macro décoche toutes les cases que j'ai sélectionné, pas toutes celles du classeur. Encore désolé pour la mésentente...
 

laetitia90

XLDnaute Barbatruc
Re : Macro sur case à cocher ne fonctionnant qu'une fois

re, comme je comprends.. pas sur???

Code:
Dim i As CheckBox
 With Sheets("essai")
  For Each i In .CheckBoxes(Array("Check Box 1", "Check Box 2", "Check Box 3"))
  i = xlOff
  Next
End With

en utilisant with pour le name de la feuille
 

Jack11

XLDnaute Nouveau
Re : Macro sur case à cocher ne fonctionnant qu'une fois

Merci pour ta macro, elle fonctionne très bien, par contre j'aimerais savoir le maximum de "Check Box" car pour "ma" macro, le maximum été de 16, donc j'avais du enchainer plusieurs macro.

Ps : j'en ai 191 a mettre.
 
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : Macro sur case à cocher ne fonctionnant qu'une fois

re,:):)

la il faudait en dire un peu plus !!! tu veus dans l'array en mettre 191 ..Box comment sont t'il numerotées

si tu en disais un peu plus ces "bêtes" la...... chiant a coder il vaut mieux les active x
comme le dit si bien l'ami Pierrot :):) l ideal sans passer:rolleyes::rolleyes:

attention a l'usine a gaz!!!!!!
 

Jack11

XLDnaute Nouveau
Re : Macro sur case à cocher ne fonctionnant qu'une fois

Voilà les numéro des box que j'ai mis dans un doc car ça prend beaucoup de place :

Regarde la pièce jointe Check Box.docx

Pour ce qui est de les remplacer par des activeX, je me vois mal remplacer mes 191 X 2 Check Box (oui, j'ai 2 colonne de 191). Pour vous donner plus de précisions, ces Check Box sont liées a des formules qui sont liées avec une mise en forme conditionnelle ainsi qu'a d'autres formules. Je n'ai pour le moment aucune macro qui touche à ces Check Box.

Et si j'avais le courage de les remplacer, je ne connait pas les avantages et les inconvénient niveau programmation et utilisation par des novice (j'ai jamais testé, faudra que j'essaye un jour).
 

laetitia90

XLDnaute Barbatruc
Re : Macro sur case à cocher ne fonctionnant qu'une fois

re,:):)

essai comme cela

Code:
Dim i As CheckBox, x as variant
 Application.ScreenUpdating = False
 With Sheets("essai")
  For Each i In .CheckBoxes
  x = Split(i.Name, " ")(2)
  If x > 1224 And x < 1523 Then i = xlOff
  Next
End With

aprés pour sans passer.... il faudrait savoir ce que tu veus faire exactement comme dit plus haut ton fichier va être trés "lourd" a gerer plus c'est simple mieux c'est ...

plus le temps de rester si tu pouvais en dire plus sur ton projet il y a bien quelqu' un ou (une) qui pourra t'aider
 

Jack11

XLDnaute Nouveau
Re : Macro sur case à cocher ne fonctionnant qu'une fois

Merci beaucoup, cela fonctionne parfaitement ^^

C'est en fait pour faire un double-simulateur dans lequel on choisi la race puis les compétences (case à cocher) qu'on veut, qui influe sur le lvl, ainsi que sur ses capacités, ses attaques-défenses, ses PV... Comme il est doublé pour pouvoir comparer 2 types de up différent, il me fallait réinitialiser que la partie gauche ou que la droite si on voulait la refaire.

Encore merci pour l'aide que vous m'avez fourni :D
 

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 457
Membres
103 217
dernier inscrit
LoshR7