Menu

Protection base de données (Excel 2013) [Résolu]

JL00700 80 Messages postés lundi 4 juin 2012Date d'inscription 14 mai 2018 Dernière intervention - 12 févr. 2018 à 19:58 - Dernière réponse :  jl00700
- 15 févr. 2018 à 08:20
Bonsoir,
J’ai bien progressé ces derniers jours sur un développement sous Excel notamment grâce à votre aide sur une formule qui m’a également posé problème.
Dans Excel 2013, je voudrais gérer une base de données alimentée à partir d’un formulaire.
Le formulaire et la base de données sont dans des feuilles distinctes.
Afin d’éviter qu’un utilisateur ne vienne perturber le fonctionnement de la base de donnée, j’ai protégé la feuille dans laquelle elle se trouve et associé un mot de pass.
J’ai développé une macro (à l’aide de l’outil « Développeur - enregistrer une macro ») car je n’ai aucune connaissance VBA. Dans celle-ci j’ai intégré « Oter la protection en début – Protection en fin).
Et là est mon problème… car lors de l’enregistrement des données, il me demande le mot de pass, ce que je ne veux pas !
Mais peut-être ai-je mal interprété le paramétrage de la protection.
Voici ce que j’ai fait (paramétrage) :
Protégé la feuille et le contenu des cellules verrouillées (coché)
Mot de pass (saisi et validé)
Autorisé les utilisateurs de cette feuille à (je n’ai rien coché)
J’espère avoir exposé correctement ma problématique mais au cas où, je reste à disposition pour toute information complémentaire.
Je vous remercie par avance de votre attention.
Cordialement
Jean
Afficher la suite 

Votre réponse

10 réponses

via55 9304 Messages postés mercredi 16 janvier 2013Date d'inscription 22 mai 2018 Dernière intervention - 12 févr. 2018 à 20:28
0
Utile
Bonsoir JL

SI le mot de passe t'est demandé c'est que tu ne l'as pas mis dans la macro sans doute
Ta ligne de macro pour protéger la feuille doit être du style :
Sheets("nomdetafeuille").Protect "tonmotdepasse"

Idem pour la ligne Unprotect

Cdlmnt
Via
Merci Via,
Voici ce que j'ai en début :
Sheets("Base").Select
ActiveSheet.Unprotect
Rows("2:2").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("2:2").Select
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With

Puis en fin :
Sheets("Base").Select
Application.CutCopyMode = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("CréOp").Select
End Sub

Espérant apporter des éléments !!!!

Encore merci de votre attention
Commenter la réponse de via55
via55 9304 Messages postés mercredi 16 janvier 2013Date d'inscription 22 mai 2018 Dernière intervention - 13 févr. 2018 à 00:34
0
Utile
Re,

Il faut si tu as comme mdp toto :
ActiveSheet.Unprotect "toto"
et
ActiveSheet.Protect Password="toto", DrawingObjects:=True, Contents:=True, Scenarios:=True

Cdlmnt
Via
Bonjour Via,
J'ai bien transposé les consignes... ERREUR mot de pass invalide.
Je crains que mes manips précédentes aient occasionné des incohérences qq part et mon mot de pass
N’est plus reconnu.
Je vais donc recréer ma feuille et réessayer.
Je te tiens au courant dans la journée de demain.
Encore merci de ta patience ainsi que de ton aide.
Cordialement
Jean
PHILOU10120 4973 Messages postés lundi 16 avril 2012Date d'inscription 23 mai 2018 Dernière intervention - 13 févr. 2018 à 10:10
Bonjour Via55 et JL00700

l'écriture ne serait pas celle-ci

ActiveSheet.Unprotect Password:= "toto"

Je ne suis pas spécialiste des macro, mais j'ai regardé une qui fonctionne et il y a :=

si cela peu aider
Commenter la réponse de via55
via55 9304 Messages postés mercredi 16 janvier 2013Date d'inscription 22 mai 2018 Dernière intervention - 13 févr. 2018 à 10:38
0
Utile
Bonjour Philou ☺

Merci de rectifier effectivement j'ai zappé les 2 points à la frappe vu l'heure tardive sans doute !
C'est bien ActiveSheet.Protect Password:="toto", DrawingObjects:=True, Contents:=True, Scenarios:=True qu'il faut écrire
Par contre dans la ligne Unprotect comme il n'y a pas de critères de validation qui suivent Password: est inutile et on peut écrire simplement ActiveSheet.Unprotect "toto"


Commenter la réponse de via55
0
Utile
Re Bj Via55, Philou
Effectivement il y a un problème...
La première exécution de la macro fonctionne et l'opération est bien créée dans la Base.
Lors de la seconde exécution de la macro, plantage erreur1004.
Lorsque je regarde la macro, la ligne apparaît ainsi :
ActiveSheet.Unprotect "toto" (surlignée en jaune avec une flèche en regard.
J'ai l'impression que la première exécution n'a pas recréé le Mdp correctement car si je veux ôter la protection manuellement en passant par l'onglet Révision, même là mon Mdp n'est pas reconnu !!!
J'ai reconstitué 2 fois ma Base et ma macro (j'ai même poussé la pertinence à mettre "toto" en mot de pass...) rien à faire !
Bien entendu, j'ai pris en compte la remarque de Philou concernant les :=
Si vous avez une idée... je suis preneur.
Merci par avance
Amicalement
Jean
via55 9304 Messages postés mercredi 16 janvier 2013Date d'inscription 22 mai 2018 Dernière intervention - 13 févr. 2018 à 15:20
Re,

Tu as du faire une erreur dans l'écriture du mdp dans la ligne avec Protect mais sans ton fichier on ne peut pas savoir
Petit exemple qui fonctionne :
https://mon-partage.fr/f/zrLET3uF/

Cdlmnt
Commenter la réponse de jl00700
PHILOU10120 4973 Messages postés lundi 16 avril 2012Date d'inscription 23 mai 2018 Dernière intervention - 13 févr. 2018 à 20:47
0
Utile
Bonjour JL00700

Un fichier avec une macro pour mettre la protection
et une pour ôter la protection avec contrôle et la possibilité de 3 essais

https://www.cjoint.com/c/HBntUiKdCZx

le mot de passe est "toto"

C'est un essai je répète je ne suis pas spécialiste des macros avec une j'en ai fais une autre


Bonjour PHILOU, VIA55,
Avec toutes mes excuses pour la réponse tardive, absent hier je n'avais pas pu tester... ce que j'ai fait ce matin et BINGO, cela marche grâce à vous.
Encore un grand merci et qui sait, peut-être à bientôt dans une autre problématique.
Amicalement
Jean
Commenter la réponse de PHILOU10120