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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 😉
 
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,

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
18
Affichages
795
Réponses
11
Affichages
804
Réponses
4
Affichages
146
Retour