Protéger un classeur qui contient des formules ?

Bonjour,

Je me permets de poster de solliciter une aide pour un problème de macro excel (encore des soucis.. )

En effet, mon classeur contient plusieurs onglets qui disposent chacun d'un tableau identique qui contient parfois des colonnes avec des formules. En fait, la feuille doit être protégée afin qu'elle ne puisse pas etre saisissable sauf sur 3 colonnes. Par ailleurs, certaines colonnes contiennent une formule dedans.

Sachant que je n'y arrive pas à faire un classeur "dynamique" avec la macro (unprotected puis protected à la fin), donc j'ai essayé de faire "manuellement" (outils> protection> protéger la feuille). J'utilise un Selection.FillDown pour étendre la formule, mais voici le message d'erreur que j'obtiens : "la cellule ou le graphique est protégé en lecture seule"

Voici le "bout de code" où j'ai ce soucis :

If i = 31 Then
    Cells(i, 14) = "=RC[+5]-RC[-1]"
End if 
    rang = "N31:N" & i
    Range(rang).Select
    Selection.FillDown

i est une variable qui est la premiere ligne à traiter

N pour la colonne N

31 est le numéro de ligne où l'on commence (je ne sais pas si je suis clair..)

Par conséquent, est il possible de protéger un classeur qui contient des formules (afin que les utilisateurs ne saisissent pas dedans) mais qui doit etre également dynamique (les utilisateurs peuvent saisir dans certaines colonnes et il y aura un calcul dans d'autres colonnes) ??

Merci d'avance pour vos réponses !

Bonjour

pour proteger/deproteger par macro c'est cela:

ActiveSheet.Unprotect "motdepasse"
ActiveSheet.Protect "motdepasse"

pour proteger certaine cellule et pas d'autre, tu selectionne tes cellule a ne pas proteger et click droit/format de cellule/decoche verouiller. ensuite tu protege ta feuille et celle ci ne seront pas verouillée

cordialement

Bonjour,

Merci de la réponse rapide.

Cependant, j'avais dit que le fait de protéger puis de déprotéger la feuille n'était pas possible pour moi car cela protège également le filldown d'où l'erreur.

Merci quand meme

Re

et la deuxieme solution de mon precedent message, ne te convient pas non plus?

sinon, peux tu envoyer ton fichier?

Cordialement

salut le forum

Pas besoin de fichier, il suffit de permettre à la macro d'écrire

Sub a()
ActiveSheet.Protect Password:="chrisd", UserInterFaceOnly:=True
i = 1
If i = 31 Then
    Cells(i, 14) = "=RC[+5]-RC[-1]"
End If
    rang = "N31:N" & i
    Range(rang).Select
    Selection.FillDown
End Sub

C'est la ligne

qui permet les droits à la macro.

Mytå

Merci pour vos réponses.

maguetlolo, j'aurais bien voulu t'envoyer mon fichier excel mais le soucis c'est qu'il s'agit en realité de requête qui sont faites en excel.. par conséquent, tu ne pourras donc pas voir mon tableau Je pourrais t'envoyer juste ma macro mais je ne sais pas si cela serait intéressant ?!

Mytå, ce que tu me proposes ici ne serait-il pas le fait de proteger directement la feuille? Parce que en realité, le bout de code que j'ai copié n'est qu'une seule petite partie de ma macro. J'ai voulu déprotéger, mettre le code puis enfin protéger la feuille mais cela ne marche pas car les données restituées sont en dur et non dynamique (enfin je ne sais pas si je suis clair ?)

Rechercher des sujets similaires à "proteger classeur qui contient formules"