for i = 1 to xx
.Controls("CckB_"& i).OleObject=False
Next i
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.@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 .
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
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A4")) Is Nothing Then Me.[C6:C13] = False
End Sub
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.J'ai l'impression de t'avoir froisser et j'en suis désolé, ce n'était pas dans mes intentions.
Oui parce que ces CheckBoxes ne sont pas cadrées dans les cellules C6, D6, et E6.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.