Protection base de données (Excel 2013)

Résolu/Fermé
JL00700 Messages postés 90 Date d'inscription lundi 4 juin 2012 Statut Membre Dernière intervention 1 novembre 2019 - 12 févr. 2018 à 19:58
 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
A voir également:

5 réponses

via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
12 févr. 2018 à 20:28
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
0
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
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
13 févr. 2018 à 00:34
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
0
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
0
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
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
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
13 févr. 2018 à 10:38
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"


0
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
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
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
0

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

Posez votre question
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
13 févr. 2018 à 20:47
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


0
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
0