Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Comment puis je faire pour que ma cellule A4, qui en un click gauche, décoche toutes le coches de la plage de cellule C6 à E13 ?
Je vous remercie par avance,
Mes cases a cocher sont comme sur la 1e image.
J'ai d'autre coches qui sont sur la même feuille.
En gros, l'idéal est que :
- les coches du quotidien a son propre bouton réinitialiser cad décocher => C6 à E13
- les coches du hebdomadaire a son propre bouton réinitialiser cad décocher => C7 à C44
J'ai cru voir chez une personne qu'il avait juste à cliquer dans une cellule pour réinitialiser et ses coches ont été décoché
Bonsoir le forum
Bonsoir Madoka, Dudu2, Jean-Marie
J'ai cherché, cherché, en vain... J'y arriverai un jour 😡🙂.....
Donc, la seule chose que je pouvais proposer était l'effacement des coches (ActivesX) de toutes les CheckBox DE LA FEUILLE via :
VB:
PrivateSub Worksheet_SelectionChange(ByVal Target As Range)Dim c AsObjectIfNot Intersect(Target, Range("A4"))IsNothingThenForEach c In ActiveSheet.OLEObjects
If InStr(1, c.Name,"CheckBox")>0Then
c.Object.Value =FalseEndIfNextEndIfEndSub
Je ne parviens pas à sélectionner qu'un Range("C6:E13") dans la procédure ... , toutes les CheckBoxs de la feuilles (For Each c In ActiveSheet.) sont concernées par le code ????
Pour effacer les CheckBoxes dans un certain Range:
Edit: code corrigé 07/04/2022 13h25 pour mettre xlOff à la place de False Edit: code corrigé 07/04/2022 14h08 pour identifier correctement une CheckBox Form Control
VB:
Sub ClrFromControl()Call ClearFormControlCheckBoxesInRange(ActiveSheet.[F3:F5])EndSub'---------------------------------'Manip sur Contrôles de formulaire'---------------------------------Sub ClearFormControlCheckBoxesInRange(Rng As Range)Dim Shp As Shape
ForEach Shp In ActiveSheet.Shapes
'La Shape est un Form ControlIf Shp.Type = msoFormControl Then'La Shape est une CheckBoxIf Shp.FormControlType = xlCheckBox Then'La Shape est dans le Range demandéIfNot Intersect(Rng, Shp.TopLeftCell)IsNothingThen
Shp.OLEFormat.Object.Value = xlOff
EndIfEndIfEndIfNextEndSub
Et le fichier fourni par @ChTi160 ! avec le code de RAZ par Range.
Edit: fichier corrigé 07/04/2022 13h25 pour mettre xlOff à la place de False Edit: code corrigé 07/04/2022 14h08 pour identifier correctement une CheckBox Form Control
Bonsoir le forum @Dudu2 : Je vais regarder ton fichier mais il me semble tout comme celui de Jean-Marie, qu'il utilise des contrôles de formulaires et non des contrôles ActiveX. Je vais essayer de voir si je peux transposer cela.
Bonne soirée et Grand merci.
@+ Eric c
Bonjour,
Je n'en sais absolument rien car l'auteur du sujet n'a pas daigné poster un fichier.
Je me suis donc basé sur le fichier indiqué par @ChTi160 sur lequel les CheckBoxes sont des Contrôles de Formulaire (sélectionnables par clic gauche et non pas par le Mode Création).
Non, décidément, je ne parviens pas à imposer un Range ("C6:E13") pour, dans le cas présent, réinitialiser MES CheckBoxs issus de contrôles ActiveX.
Le code s'exécute sur tous les contrôles CheckBoxs présents sur la feuille...
Je continuerai ce soir.
Je ne sais pas de quoi tu parles.
Le seul fichier que je connaisse est celui du Post #9 et le RAZ par plage que j'y ai développé / installé fonctionne parfaitement.
Maintenant, s'il y a un autre fichier candidat à ce RAZ par plage il serait plus qu'utile de le partager.
Et si dans ce fichier virtuel, il s'agit de Contrôles ActiveX, le code, testé virtuellement évidemment, est le suivant: Edit: code corrigé 07/04/2022 14h08 pour identifier correctement une CheckBox Active X Control
VB:
Sub ClrActiveXControl()Call ClearActiveXControlCheckBoxesInRange(ActiveSheet.[D3:D5])EndSub'---------------------------'Manip sur Contrôles ActiveX'---------------------------Sub ClearActiveXControlCheckBoxesInRange(Rng As Range)Dim Shp As Shape
ForEach Shp In ActiveSheet.Shapes
'La Shape est un ActiveX ControlIf Shp.Type = msoOLEControlObject Then'La Shape est une CheckBoxIf TypeName(Shp.OLEFormat.Object.Object)="CheckBox"Then'La Shape est dans le Range demandéIfNot Intersect(Rng, Shp.TopLeftCell)IsNothingThen
Shp.OLEFormat.Object.Object.Value =FalseEndIfEndIfEndIfNextEndSub
D'ailleurs pour les Contrôles de Formulaire, je viens de remarquer que les Check Boxes ne prennent pas comme valeurs True ou False mais xlOn (1) et xlOff (-4146), même si étrangement True et False sont acceptés en affectation et sont interprétés comme xlOn et xlOff.
Mais on ne peut évidemment pas faire une opération booléenne sur ces valeurs, par ex = Not (valeur).
J'ai corrigé le code du Post #8 et le fichier du Post #9.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD