Comment verrouiller à nouveau une feuille déjà verrouillée ?

V

Valou

Guest
Bonjour,
Dans un classeur, je possède 3 feuilles de calcul. la 1e est verrouillé de façon à ce que seules les cellules non verrouillées soient modifiables.
Une fois les données entrées, il faudrait que la feuille soit totalement verrouillée de façon à ce qu'elle ne soit plus modifiable après enregistrement. Or, après maints énervements et tentatives, je n'arrive seulement qu'à verrouiller la feuille entière, mais après enregistrement et à nouveau ouverture du fichier, le verrouillage total n'est pas pris en compte. Je suis désespérée.

En bref, ce classeur doit partir par mail vers des personnes devant entrées des données aux endroits précisés (par une protection) et qu'ensuite plus personnes ne puissent modifiés cette feuille de calcul.

MERCI PAR AVANCE A TOUS CEUX QUI M'AIDERONT
 
W

William

Guest
Bonjour,

Une petite question, pour essayer de t'aider (si je le peux...) :

Cette feuille est-elle protégé par mot de passe, ou bien est-elle simplement protégée pour prévenir les modifications accidentelle ?


A bientôt,

William
 
M

Mytå

Guest
Salut valou, William et le forum

Ajout ceci dans this workbook Valou et sa devrait aller

Tu n'as qu'a modifier la plage des cellules a verifier ici de A1 a J10

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveSheet.Unprotect
'Pour les cellules A1 a J10
For rangee = 1 To 10
For colonne = 1 To 10
If Cells(colonne, rangee).Locked = "false" Then Cells(colonne, rangee).Locked = "true"
Next colonne
Next rangee
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Mytå
 
W

William

Guest
Salut Mita, Valou et le Forum,


Dis Mita, je n'ai pas bien compris....

J'ai essayé : ActiveSheet.Unprotect , mais si je met un mot de passe pour vérouiller l'accès, la macro bug....


Comment fais-tu ?

Merci d'avance,

William


P.S. J'apprend au fur et à mesure des fils, si tu n'as pas le temps de me répondre, je reviendrais sur ce fil plus tard...

P.S. 2 Par contre, beaucoup plus urgent, comment tu fais pour la "a" de Mita ??
 
M

Mytå

Guest
Salut William et le Forum

Pour proteger avec mot de passe

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="TOTO"

ensuite pour déprotéger

ActiveSheet.Unprotect ("TOTO")

ET pour le å tu tiens enfoncé le ALT et tu fait 134 sur le pavé numerique

Bonne journée Mytå º¿º
 
V

Valou

Guest
Bonjour,

Merci de ton aide,

Pour répondre à ta question, oui, elle est déjà protégée par un mot de passe (protection de la feuille) de façon à ce que la première personne puisse entrer ses données dans les cellules non verrouillés sans pouvoir modifier ailleurs.

Mais, je voudrais qu'une fois ses données entrées, il puisse (par le biais d'un bouton) "verrouiller" toute la feuille de calcul, de façon à ce que personne d'autres ne puisse à nouveau la modifier.

En tout cas, merci, et surtout j'espère avoir été clair dans mon explication
 
V

Valou

Guest
Merci Mytå, mais j'ai déjà essayé cette version. Malheureusement, lorsque j'ouvre à nouveau ce fichier, le fichier ne reste pas verrouillé.

A l'origine, la feuille de calcul est déjà protégé par un mot de passe. Une fois les données entrées dans les cellules déverrouillés, en cliquant sur un bouton avec la fonction ActiveSheet.Protect etc..., la feuille se trouve effectivement bien verrouillée dans sa totalité. Je ferme donc le fichier (en le sauvegardant), lorsque je l'ouvre à nouveau, la feuille de calcul est protégé que de la première manière (avec le mot de passe) et peut donc à nouveau être modifié.


En tout cas je te remercie de ton aide.
 
W

William

Guest
Salut Valou

Je pense que la soluce de mytå est au poil, dans ton cas...

Cela pourrait donner, dans ThisWorbook


Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)


Sheets("date").Activate

ActiveSheet.Unprotect ("TOTO")

'Pour les cellules A1 a J10

For rangee = 1 To 10
For colonne = 1 To 10
If Cells(colonne, rangee).Locked = "false" Then Cells(colonne, rangee).Locked = "true"
Next colonne
Next rangee


ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="TOTO"

End Sub


Mais bien sûr, une fois sauvegardée, même par erreur, il serait impossible d'effectuer des modifications, sans le mot de passe (TOTO)...

Prévoit donc des copies de sauvegardes...

Merci de nous indiquer si ça fonctionne.

A Bientôt,

William
 
V

Valou

Guest
Merci William et Mytå pour votre aide

Malheureusement, je n'arrive pas à faire fonctionner la macro ci-dessus. Je n'arrive pas à l'appliquer à un bouton.

Je ne suis qu'aux balbutiements et j'arrive à m'y perdre.

Si vous pouviez m'aider, je vous en serais éternellement reconnaissante (mais non, mais non, je n'en fais pas trop), mais je souhaite vraiment que tout cela fonctionne, cela m'aiderait beaucoup.
 
W

William

Guest
Ouh là, là, je viens de comprendre....
(Enfin, j'espèrere)... :eek:)

Essaie juste de fermer ton classeur, et vérifie que tout est OK au niveau de la protection des cellules.

Si c'est le cas, un grand pas aura déjà été fait.

Il ne restera plus alors qu'à créer une macro qui fermerais le classeur. Encore que l'intérêt est peut être moindre...

Mais, "le client est Roi" alors...

si ce n'est pas le cas, merci de m'envoyer ton fichier dans ma BAL, j'essaierais de trouver une soluce...

P.S. si tu ne peux pas m'envoyer ton fichier pour des raisons de confidentialité, envoie simplement un exemplaire "anonymé" (pas de texte, ni de données)...

@+

William
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 765
Messages
2 091 892
Membres
105 084
dernier inscrit
lca.pertus