Forum Clubic

Proteger feuille excel et procedures associées ecrites sous VBA

bonjour à tous et à toutes

j’ai créé un fichier excel avec des boutons de commande (donc des procédures VBA derriere ces boutons). Je dois diffuser ce fichier à certaines personnes. Aussi comment puis je faire pour protéger la feuille excel et les boutons de commandes?Je dois permettre aux personnes d’utiliser ce fichier excel mais je souhaite en protéger le contenu, est ce possible déjà?

merci pour votre aide

Pour tes feuilles, tu as Outils > Protection > protéger la feuille.
Pour ton code, en VBA, tu te positionnes sur ton projet (fenêtre de gauche), tu fais clic droit > Propriétés et tu vas dans l’onglet Protection

salut

je vais essayer ça ce soir. merci pour l’aide et je te tiens au courant si ça marche.

a+

bonsoir

j’ai essayé ce que tu m’as dit sauf que chaque fois que j’appuie sur les boutons de commande j’ai la fenetre debogage qui apparait, je passe directement sur la fenetre visual basic. La protection seule sur VBA ne fonctionne pas non plus les utilisateurs peuvent modifier le code comme ils veulent donc ça ne me convient pas. As tu une autre solution ? le but etant que les utilisateurs ne puissent pas changer le code sous VBA, qu’ils puissent appuyer sur les boutons de commande créés sur une feuille Excel pour faire leur calcul.
Voilà désolée de te répondre si tardivement mais je viens de passer une semaine sans internet, j’ai du reconfigurer windows xp finalement.
merci

Tu n’as pas dû faire la manoeuvre correctement, parce que une fois le projet protégé, et le classeur enregistré, tu ne peux plus accéder à la partie VBA sans avoir tapé le mot de passe

edit : il faut sortir d’excel pour que la protection prenne effet
Edité le 18/09/2008 à 20:05

bonsoir

effectivement j’ai 2 versions d’excel , une sur mon ordi et une au boulot. Sur celle du boulot ça ne marche pas mais sur mon ordi la manip pour protéger vba fonctionne parfaitement c’est super. Question supp maintenant: peux tu me dire pourquoi en protégeant ma feuille excel sur laquelle j’ai à la fois les boutons de commande et un tableau (dans lequel j’ai à la fois des cellules protégées et d’autres non) lorsque je veux executer un bouton de commande j’ai une fenetre “erreur d’execution” qui apparait. Si je ne protege pas ma feuille j’ai pas ce souci mais en la protégeant ça bug. As tu une idée de ce que je dois faire exactement pour protéger cette feuille et pouvoir executer mes boutons de commande sans souci?
merci en tout cas pour vba t’es extra

Pas de raison que tes bontons de commande soient bloqués
Par contre, pas question que le code appelé modifie la structure de la feuille, puisqu’elle est protégée.
Ce ne serait pas un problème de ce genre ?

Quel est le code de la ligne sur laquelle tu arrives quand tu cliques sur le “debug” du message d’erreur ?

bonjour

j’ai créé 2 boutons : un bouton raz et un bouton qui met de la couleur dans une cellule (j’ai créé un fichier excel tout simple pour essayer de résoudre mon pb)
.Voici le code:
Private Sub CommandButton1_Click() —> bouton couleur
Feuil2.Range(“b7”).Interior.ColorIndex = 10
End Sub

Private Sub CommandButton2_Click() —> bouton raz
Feuil2.Range(“b7”).Interior.ColorIndex = 0
End Sub

Lorsque je protège ma feuille voici le message qui apparait lorsque j’execute la raz ou la couleur : “erreur d’execution 1004 / impossible de definir la propriete colorindex de la classe interior”. Si ma feuille n’est pas protégée il n’y a aucun message d’erreur.

voilà si tu as des suggestions
merci

C’est toi qui as choisi de protéger ta feuille, donc ensuite, normal que la macro se plie à ton choix

La seule solution est d’autoriser aux utilisateurs la modification de format de cellule, la macro ne te remontera plus d’erreur.
NB :
1- tu peux très bien autoriser le changement de format de cellule, tout en conservant le verrouillage pour le reste (format colonne, valeurs, suppression/ajout de lignes …)
2- tu peux demander à la macro de procéder au déverrouillage temporaire, effectuer ta modif de format, et reverrouiller derrière.
Je sais que ça fonctionne si tu n’as pas mis de mot de passe de protection, dans le cas contraire je n’ai jamais essayé