Comment protéger des boutons de contrôles dans une feuille

Bonjour,

J'essaye de protéger des boutons de commande dans une feuille par protéger la feuille avec un mot de passe, mais cela ne rend pas inactif mon bouton.

Si quelqu'un a une solution, je suis preneuse.

En vous remerciant.

Sandrine

Bonjour,

Merci de joindre un petit classeur !...

De plus, on ne sait pas si tu parles de contrôles de formulaire (bouton) ou de contrôles ActiveX (commandbutton).

Cdlt.

Voici mon fichier :

23test.xlsm (142.83 Ko)

Bonjour, Salut Jean-Eric !

La protection les protège contre la modification qu'ils pourraient subir, si elle devait les rendre inactifs, ils ne serviraient plus à grand chose !

Si tu dois à certains moment rendre tes boutons inactifs, pour des ActiveX, c'est la propriété Enabled que tu passes à False, ou à True pour les réactiver :

Worksheets("Feuil1").OLEObjects("CommandButton1").Object.Enabled = False

par exemple.

Et pour les Shapes, tu désaffectes la macro rattachée :

Worksheets("Feuil1").Shapes("MonBouton").OnAction = ""

il faudra lui réaffecter la procédure pour qu'il puisse à nouveau l'exécuter.

Cordialement.

Merci de votre réponse, n'aurai t'il pas un moyen plus simple comme quand on protège notre feuille avec un mot de passe ?

Bonjour,

pas clair du tout ça...

Tu cherches à protéger tes boutons (empêcher leur suppression) ou (dé)protéger tes feuilles avec les boutons comme l'indique ton code ?

Pour rendre inactif un bouton c'est .enabled. Mais bon, s'il est invisible ça sera difficile de cliquer dessus quoiqu'il en soit...

Sinon tu peux aussi utiliser un seul bouton bascule :

Private Sub ToggleButton1_Click()
    With ToggleButton1
        .Caption = IIf(ToggleButton1.Value, "Déprotéger", "Protéger")
        .BackColor = IIf(ToggleButton1.Value, vbGreen, vbRed)
        If .Value Then PROTEGER Else ENLEVER
    End With
End Sub

eric

edit : salut MFerrand

Merci Eric, je n'avais pas pensée a ce bouton et je vais l'utiliser.

C'est tout a fait cela, je veux pouvoir être la seule a déprotéger les cellules.

Avec le bouton bascule est il possible sans passer par Enabled de lui mettre un mot de passe comme quand on protège la feuille ?

J'aurai aussi, si ce n'est pas trop demandé une autre question concernant ce fichier, je cherche sans résultat concret lorsque je fais une insertion de ligne que mes mfc se recopient automatiquement dans celle-ci.

??? Si tu n'ajoutes rien au code tout le monde pourra se servir du bouton.

Il faut demander un mot de passe en plus.

Mais si c'est pour ça tu peux définir ton ident comme autorisé à modifier sans déprotéger la feuille.

Sélectionner toute la feuille (ou une plage restreinte pour certains utilisateurs par exemple) puis :

'Révision / Modifications / Permettre la modification des plages',

'Nouvelle...', (contrôler que tu as =1:1048576 dans Fait référence aux cellules)

'Autorisations d'accès...', 'Ajouter...', mettre ton ident et 'Vérifier les noms', tout valider.

Bon, c'est à faire sur chaque feuille concernée, mais après tu n'es plus interrompue quand tu travailles sur le fichier.

eric

Je vais essayer en espérant avoir tout bien compris.

Je viens de tester, c'est pas mal, mais le problème reste toujours le même sur le bouton est-il possible suite au mot de passe que j'ai mis sur les cellules dont je ne veux pas que l'on touche en faire de même sur ce bouton ?

Si tu t'autorises des plages le bouton n'est plus nécessaire en fait puisque la protection n'existe plus pour toi.

Sinon, au plus simple tu ajoutes :

if inputbox("Mot de passe")<> "mon_pw" then exit sub

Et si tu veux que le mot de passe saisi ne soit pas visible il faut faire un userform avec un textbox dont tu mets la propriété .PasswordChar = True

eric

Bonjour Eric,

Je te remercie pour tes précieux conseils et le mot de passe avec userform me plait bien.

Par contre, je craint n'avoir pas tout compris pour sa réalisation.

Dans un userform , je mets un textbox et le bouton bascule et c'est là que je suis un peu perdu pour le code du mot de passe.

Merci de ton aide et dans l'attente de te lire un bon dimanche bien ensoleillé.

Sandrine

Je viens de réussir par userform de créer un mot de passe, il est visible dans mon code vba et je ne vois pas comment le rendre invisible mais cela n'est pas très grave.

J'ai encore besoin de conseil sur autre sujet donc je vais ouvrir une autre demande.

Merci beaucoup à tout le monde pour vos précieux conseils qui nous font avancer tout en apprenant

Bonjour,

sélectionne ton textbox, F4 pour afficher la fenêtre Propriétés, dedans tu cherches la propriété et tu la changes.

Dans le code tu ne peux rien y faire, à part mettre un mot de passe à vba. Mais bon, les protections à ce niveau ne tiennent pas 1 min

eric

J'ai mis un Astérix dans PassWordChar est ce que c'est cela ?

oui, très bien.

Excuse-moi pour le True, un mauvais souvenir

Pas Grave en tout les cas merci beaucoup pour ton aide

Bonne journée

Bonjour Sandrine, le forum,

tu a écrit :

J'ai mis un Astérix dans PassWordChar est ce que c'est cela ?

non, pas tout à fait, c'est : « J'ai mis un astérisque dans PassWordChar est-ce que c'est cela ? »

(sinon, on pourrait se demander où t'as mis Obélix et Idéfix ! )

dhany

hello Dany,

Un point pour toi

Rechercher des sujets similaires à "comment proteger boutons controles feuille"