J'ai liée une macro à une case à cocher.
Je souhaite qu'en début de macro, à savoir quand je clique sur la case à cocher, la cellule liée à cette case à cocher soit activée (=déplacement automatique sur cette cellule).
Un grand merci pour votre aide
40 affichages, pas de proposition ! Peut-être avez-vous oublié le classeur exemple qui nous permettrait de savoir entre autres, s'il s'agit d'une case à cocher de formulaire ou activex ?
En cas de case à cocher de formulaire, si vous la liez à cette macro, celle-ci fera l'affaire.
VB:
Sub CaseCaseCase()
Dim shp As Shape
'
' Sortir si l'appelant n'est pas de type 'String'
If TypeName(Application.Caller) <> "String" Then Exit Sub
'
' Tenter de récupérer le shape conteneur du contrôle par son nom
On Error Resume Next
Set shp = ActiveSheet.Shapes(Application.Caller)
On Error GoTo 0
'
' S'il est trouvé et qu'il s'agit d'un contrôle xlCheckBox
If Not shp Is Nothing And shp.FormControlType = xlCheckBox Then
'
' Si sa propriété LinkedCell est valorisée
If shp.ControlFormat.LinkedCell <> "" Then
'
' Alors sélectionner la cellule correspondante
ActiveSheet.Range(shp.ControlFormat.LinkedCell).Select
End If
End Sub
Quant à moi, je n'irai pas plus loin pour la résolution.
40 affichages, pas de proposition ! Peut-être avez-vous oublié le classeur exemple qui nous permettrait de savoir entre autres, s'il s'agit d'une case à cocher de formulaire ou activex ?
En cas de case à cocher de formulaire, si vous la liez à cette macro, celle-ci fera l'affaire.
VB:
Sub CaseCaseCase()
Dim shp As Shape
'
' Sortir si l'appelant n'est pas de type 'String'
If TypeName(Application.Caller) <> "String" Then Exit Sub
'
' Tenter de récupérer le shape conteneur du contrôle par son nom
On Error Resume Next
Set shp = ActiveSheet.Shapes(Application.Caller)
On Error GoTo 0
'
' S'il est trouvé et qu'il s'agit d'un contrôle xlCheckBox
If Not shp Is Nothing And shp.FormControlType = xlCheckBox Then
'
' Si sa propriété LinkedCell est valorisée
If shp.ControlFormat.LinkedCell <> "" Then
'
' Alors sélectionner la cellule correspondante
ActiveSheet.Range(shp.ControlFormat.LinkedCell).Select
End If
End Sub
Quant à moi, je n'irai pas plus loin pour la résolution.