XL 2013 Sélection automatique de cellule liée à une case à cocher (VBA)

Jacques Volery

XLDnaute Nouveau
Bonjour,

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 ;)
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

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.

cordialement
 

Jacques Volery

XLDnaute Nouveau
Bonjour,

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.

cordialement
Bonjour,
Un tout grand merci à vous, ça marche !
Cordialement
 

Discussions similaires

Réponses
5
Affichages
392