Forcer le positionnement des cases à cocher dans une colonne

Bonjour à tous,
Je vous expose le contexte. J'ai une série de cases à cocher sur 20 lignes dans la colonne J. Ces cases servent à afficher ou masquer des pages dans un système de menu général. Jusque là, tout va bien.
Je rencontre un problème de positionnement des cases à cocher lorsque je masque/affiche les 4 colonnes de mon menu général car (quelquefois) elles ne restent pas dans la colonne J malgré que les cases soient en mode 'Déplacer et dimensionner avec les cellules".
Pensez-vous qu'il serait possible, soit de figer chaque checkbox à sa cellule (ou sa colonne), ou de les masquer/afficher à chaque manipulation des boutons masquer/afficher les colonnes ?
Je joins un exemple dans ce post (XL 2010).
Merci pour votre aide.

46exemple-v1.xlsm (38.19 Ko)

Bonjour toutes et tous

@tester, juste en modifiant la cellule J1 au lieu de A1

'MASQUER LE MENU
Sub MasqueMenu()
    With ActiveSheet
        .Range("J:M").EntireColumn.Hidden = True
        Application.Goto .Range("j1")
    End With
End Sub

crdlt,

André

Bonjour Andre13, le forum,
Merci pour cette proposition, mais je ne vois pas comment cela agit sur la ou les checkbox car les checkbox sont au coeur du problème ?

Re,

Avez-vous tester ? j'ai cliqué plus d'une 50 aines de fois et le résultat était convaincant, bizarre

cela ne placer plus sur la colonne N, lors du clic sur le bouton masquer

bonne journée, peut-être un Excelien trouvera une parade

crdlt,

André

Andre13,
La macro que vous avez proposé sélectionne la cellule J1 en fin de traitement alors que je souhaite me positionner en A1 pour scroller la feuille.
Idéalement, il faudrait agir sur les checkbox pour qu'elles restent dans la colonne J1.
Bonne journée.

Bonsoir,
J'ai trouvé une solution en agissant directement avec les boutons :

'AFFICHER LE MENU
Sub AfficheMenu()
Dim Obj As OLEObject
    With ActiveSheet
        .Range("J:M").EntireColumn.Hidden = False
        Application.Goto .Range("A1"), Scroll:=True
    For Each Obj In Feuil1.OLEObjects 'boucle sur les objets de la Feuil1           
    If TypeOf Obj.Object Is MSForms.CheckBox Then 'verifie s'il s'agit d'un Checkbox
    .OLEObjects.Visible = True
    End If
    Next Obj
    End With
End Sub

'MASQUE LE MENU
Sub MasqueMenu()
Dim Obj As OLEObject
    With ActiveSheet           
    For Each Obj In Feuil1.OLEObjects 'boucle sur les objets de la Feuil1   
    If TypeOf Obj.Object Is MSForms.CheckBox Then 'verifie s'il s'agit d'un Checkbox
    .OLEObjects.Visible = False
    End If
    Next Obj
        .Range("J:M").EntireColumn.Hidden = True
        Application.Goto .Range("A1")
    End With
End Sub

En espérant que ce code soit utile.
Tchotcho31270

Bonjour toutes et tous

Félicitation ^^ bien trouvé

bonne fin de soirée

crdlt,

André

Rechercher des sujets similaires à "forcer positionnement cases cocher colonne"