Syntaxe débloquer cellule

Résolu
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   -  
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aimerais connaître la syntaxe la plus efficace pour déverrouiller des cellules.
Je m'explique :
J'ai un formulaire qui une fois Valider se verrouille entièrement, seulement dans certains cas les utilisateurs peuvent être amené à modifier ce formulaire. J'ai donc créé une macro qui permet de savoir par qui et quand le formulaire à été modifier (J'ai d'ailleurs créé un autre sujet afin d'essayer de savoir qu'est-ce qui a été modifier : https://forums.commentcamarche.net/forum/affich-28916218-question-vba-modification-fichier#p28935236 pour le moment sans succès)

Cependant j'ai un soucis, je ne trouve pas la syntaxe exacte afin de ne déverrouiller que certaines cellules de mon formulaire (les cellules de champs) j'ai essayé un petit quelque chose mais rien de bien concluant voici mon horreur :
Worksheets(1).Unprotect Password:="123test"
Range("C9,C11,C13,C15,C17,C19,F9,F11,F13,F15,F17,F19,C23,C25,C27,C29,C31,F23,F25,F27,F29,F31").Locked = False
Range("B35,B39,B43,D45,D47,B53,D55,F57,F59,B63,F65,F67,B71,F73,F75,B77,C83,F83").Locked = False
Worksheets(1).Protect Password:="123test", DrawingObjects:=True, Contents:=True, Scenarios:=True

Si quelqu'un pouvait m'aider... merci d'avance.

PS : Si quelqu'un a besoin de la macro entière pour m'aider, ou pour un usage personnel n'hésitez pas à le demander.

5 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Il faut proteger la feuille avec mot de passe et decocher la case selectionner les cellules verrouillees. Au niveau du code VBA, "jouer" sur le verrouillage/deverouillage des cellules avec unprotect avant pour dev ou ver et protect apres. Pour "faciliter", definissez un nom par plage de cellules a modifier ex:liste1 et liste2

exemple de code:

Sub Dev_Ver_liste()
'deverouillage des cellules plages
With Worksheets("feuil1")
.Unprotect Password:="123test"
.Range("liste1").Locked = False
.Range("liste2").Locked = False
.Protect Password:="123test", DrawingObjects:=True, Contents:=True, Scenarios:=True
End With

'code pour ce que vous avez a faire
'
'
'

' et verrouillage des cellules plages
With Worksheets("feuil1")
.Unprotect Password:="123test"
.Range("liste1").Locked = True
.Range("liste2").Locked = True
.Protect Password:="123test", DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End Sub

A+
0
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   28
 
Bonjour F894009,

Merci pour ta réponse mais...

J'ai 2 soucis par rapport à ta proposition:

Le premier est que je ne peux pas nommé de plage puisqu'il s'agit d'un formulaire, avec la mise en page j'ai donc une cellule par-ci, et une cellule par-là à débloquer ce qui explique cette liste interminable de cellule sans rapport entre elle.

Le second est que aucun événement ne vient signaler que l'édition du formulaire est terminé (c'est l'utilisateur qui saisie ce qu'il veut à la vitesse qu'il veut) Il n'y a pas de bouton "Modification Terminé" ou autre car je sais qu'il ne penserai pas à l'utiliser. Je voulais donc re-verrouiller ces cellules via un BeforeClose.

Mon soucis actuel est que lors de l'exécution de mon code j'ai une "error 1004 : Unable to set the locked property of the range class"

Est-ce du au fait que j'utilise une fonction "Range" alors que je ne cible de certaines cellules ?
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Je me suis fais avoir avec le mot formulaire, pour beaucoup de personne c'est un userform. Je vais faire un exemple avec un formulaire excel.

A+
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

puisqu'il s'agit d'un formulaire formulaire excel ou userform ????
0
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   28
 
Formulaire Excel... Tous ce qu'il y'a de plus simple.
Ex : En A1 "NOM" en B1 un champ vide pour que les gens saisissent leur nom.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Formulaire Excel... Tous ce qu'il y'a de plus simple. Cela ne serait pas plutot une feuille de calcul (ou onglet)

Vous pouvez faire une recopie d'ecran et la mettre a dispo ???
0
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   28
 
Ok je m'exprime comme un manche, tu as raison c'est un onglet.
Je te met une version sans les infos confidentielles pour te donner une idée
https://www.cjoint.com/?3Jyoqrq76i1
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Pas grave, nous allons y arriver. Je recupere le fichier.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Juste une question, je suppose que vous envoyez un exemplaire de la declaration quelque part en format excel, si cela est vrai pourquoi pas l'envoyer en format pdf. De cette facon il n'y qu'a proteger les cellules non saisie en les verrouillants et deverrouiller les autres, plus mot de passe de protection pour eviter les doigts baladeurs.

Ceci dit, appliquer le code que je vous ai donne a votre fichier est faisable sans probleme.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

fichier modifie, mais il me manque une info pour le protection complete. Il faudra le faire car je n'ai pas pige votre affaire d'envoi (vous envoyez ce fichier quelque part je suppose, donc le pdf c'etait pour cela, les destinataires auraient un pdf au lieu d'un xls). Mais c'est vous qui voyez.

https://www.cjoint.com/?CJyqcf4tTgw

A tester

A+
0
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   28
 
Huuum.

Merci pour votre aide, je regarde à ça demain et je vous tiendrais au courant.

Bonne fin de journée
0
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   28
 
Bonjour,

La syntaxe fonctionne parfaitement, j'ai pu faire exactement ce que je voulais.

Merci, bon week-end !
0