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,
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%.
@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
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
@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 .
@Dudu2 : Dans cette phrase, il faut lire queje 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
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
@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
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.
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