XL 2019 Cocher décocher une plage de cellules et non la fenêtre en un click gauche

Madoka

XLDnaute Nouveau
Bonjour,

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,
 

Dudu2

XLDnaute Barbatruc
Et aussi, tester sur le nom des Shapes "Check Box" ou "CheckBox" ce n'est pas très déterminant car ces noms peuvent être modifiés et ne représentent pas le type de Shape.

Aussi ai-je modifié les Posts et le fichier pour avoir un code sûr à 100%.
 

Eric C

XLDnaute Barbatruc
Re le fil

@Dudu2 - Merci beaucoup pour le code. Il est vrai que je n'ai pas été précis dans ma demande. Le code que je désirais modifier pour qu'il s'exécute dans un Range et non dans la feuille entière est celui mentionné au post #7. Je ne parvenais pas (et je ne suis toujours pas parvenu) à lui fixer une sélection de cellules.
Encore merci et bonne journée à toutes & à tous
@+ Eric c
 

ChTi160

XLDnaute Barbatruc
Bonjour le Fil
moi je n'ai rien construit j'ai juste adapté ce qui était proposé;
pourquoi ne pas nommer les Controls concernés et Bouclé sur ces Contrlos pour les mettre a False
es Controls Nommées "CckB_1 à CckB_xx"
puis :
VB:
for i = 1 to xx
.Controls("CckB_"& i).OleObject=False
Next i
je n'ai pas testé , c'est juste une idée Lol
je croyais qu'une solution avait été donnée par Chris ou je ne sais plus qui ! lol
Bonne Journée
Jean marie
 

Eric C

XLDnaute Barbatruc
Re le fil

Bonjour Dudu2, bonjour Jean-Marie

@jean-marie : Cette solution, je l'avais envisagée mais si le User nomme dès la création .... Pas bon ...

@Dudu2 : Dans cette phrase, il faut lire que je ne suis toujours pas parvenu (enfin depuis hier pas beaucoup de temps libre...) à inclure un Range dans le code de mon post #7. TON code, lui fonctionne comme il se doit ;).

Bonne après-midi à toutes & à tous

Ma signature.gif
 

Pièces jointes

  • Signature_Eric.gif
    Signature_Eric.gif
    15.9 KB · Affichages: 14

Dudu2

XLDnaute Barbatruc
@Dudu2 : Dans cette phrase, il faut lire que je ne suis toujours pas parvenu (enfin depuis hier pas beaucoup de temps libre...) à inclure un Range dans le code de mon post #7. TON code, lui fonctionne comme il se doit ;).
C'est ça que je ne comprends pas. Si tu utilises le code de mon Post #14 tu ne peux pas ne pas y arriver.
Faut-il que je transpose moi-même ce code dans celui de ton Post #7 ?
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A4")) Is Nothing Then Call ClearActiveXControlCheckBoxesInRange(Me.[C6:E13])
End Sub

'---------------------------
'Manip sur Contrôles ActiveX
'---------------------------
Sub ClearActiveXControlCheckBoxesInRange(Rng As Range)
    Dim Shp As Shape
 
    For Each Shp In ActiveSheet.Shapes
        'La Shape est un ActiveX Control
        If Shp.Type = msoOLEControlObject Then
            'La Shape est une CheckBox
            If TypeName(Shp.OLEFormat.Object.Object) = "CheckBox" Then
                'La Shape est dans le Range demandé
                If Not Intersect(Rng, Shp.TopLeftCell) Is Nothing Then
                    Shp.OLEFormat.Object.Object.Value = False
                End If
            End If
        End If
    Next
End Sub
 

ChTi160

XLDnaute Barbatruc
Re
une autre proposition
j'ai mis des Control ActivX "CheckBox" dans la Colonne "C" chaque CheckBox a une propriété "LinkedCell" dans laquelle j'ai mis comme référence la Cellule en rapport avec chaque ChecBox
CheckBox1--> C6 à CheckBox8--> C13
Puis j'ai mis :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A4")) Is Nothing Then Me.[C6:C13] = False
End Sub
peut-être n'ai-je pas compris Lol
Jean marie
 

Pièces jointes

  • CheckBox-1.gif
    CheckBox-1.gif
    90.9 KB · Affichages: 16

Eric C

XLDnaute Barbatruc
Re le fil

@jean-marie : Une façon aussi de voir les choses, Merci à toi.
@Dudu2 : Ton code est parfait et très tard hier, je l'avais adapté aux CheckBoxs présents dans ma feuille. Petit Hic... que je ne comprends pas : les cellules C,D&E 6 ne sont pas prises en compte ???? Il me faut "Ranger"("C5:E13") pour que ces cellules soient considérées.
Ce que j'ai voulu dire est que dans mon code, post#7, je pensais pouvoir remplacer ou intégrer, d'une façon ou d'une autre, le "ActiveSheet" par un Range("C6:E13"), c'est tout... et je n'y suis toujours pas parvenu sans ton intervention.
J'ai l'impression de t'avoir froisser et j'en suis désolé, ce n'était pas dans mes intentions.
Je joints mon fichier avec ton code pour le Range qui ne "range" pas correctement.
Bonne soirée
@+ Eric c
 

Pièces jointes

  • RAZ CheckBox.xlsm
    91.4 KB · Affichages: 2

Dudu2

XLDnaute Barbatruc
J'ai l'impression de t'avoir froisser et j'en suis désolé, ce n'était pas dans mes intentions.
Nullement, je ne suis pas en papier. Mais je ne comprenais pas pourquoi tu n'y arrivais pas alors que la solution était là depuis un certain temps.
Petit Hic... que je ne comprends pas : les cellules C,D&E 6 ne sont pas prises en compte ???? Il me faut "Ranger"("C5:E13") pour que ces cellules soient considérées.
Oui parce que ces CheckBoxes ne sont pas cadrées dans les cellules C6, D6, et E6.
Leur coin haut gauche (Shp.TopLeftCell) est en C5, D5, E5.
Et probablement toutes les autres sont affectées par le même phénomène.
Il faudrait les sélectionner toutes et les décaler de sorte qu'elles cadrent bien avec ce que tu penses être leurs cellules d'appartenance.
 

Eric C

XLDnaute Barbatruc
Ok, alors tout va bien.

Ce n'est pas que je n'y arrivais pas c'est que je n'ai pas pris assez de temps pour ce sujet. J'y suis venu, reparti, pas lu les posts (ou trop vite). La prochaine fois, je ferai cela quand j'aurais le temps pour moi.
Ok pour le cadrage des shapes. J'avais simplement cliqué dans la cellule pour voir qu'elle faisait partie de la cellule C6....
Bonne soirée à toi
Eric
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 548
Messages
2 089 503
Membres
104 193
dernier inscrit
Leo60