Rechercher : dans
Par :

Protection de fichier Excel par VBA

Dernière réponse le 2 déc 2007 à 12:54:13 jouv, le 25 nov 2007 à 11:06:55 
 Signaler ce message aux modérateurs

Dans mon travail, je suis amené à enseigner une base de donnée sur excel. cette base est souvent corrompu par des utilisateurs indélicats : Je souhaiterai creer 3 types acces à cette base
pour les personne ne connaissant pas de mots de passe : la possibilité de consulter et de copier les données mais pas la possibité d'enregistrer
pour les personnes connaissant un mot passe qui leur permettent de consulter et de copier les données et le renseigner sur le feuille "base de donnée" les colonnes E, G, M,N. et enregistrer
Pour les personnes utilisant un autre mot et passe : aucun limitation action
Je pense que cela est possible grace VBA mais je n'ai malheureusemen tpas de connaissance dans ce dommaine
Merci d'avance de votre aide cela va me simplifier la vie

1

néné, le 25 nov 2007 à 11:31:19

Bonjour

Tu peux enregistré ton fichier Excel en lecture seul

voici comment procéder

Fait "Fichier" puis "Enregister sous" puis "Outils" puis "Options générales"

Coche "Lecture seule recommandée"

mais ton "mot de passe protégeant ton document" puis ok



lorsque tu va lancer le document , si le mot de passe n'est pas renseigné alors ton fichier sera en lecture seule




Utilsfr
http://utilsfr.new.fr
Applications, Utilitaires, Macros, Fonctions, Formulaires, Graphiques Excel

Répondre à néné

2

néné, le 25 nov 2007 à 11:39:17

Je me suis trompé

ne coche pas lecture seule

mais juste un mot de passe pour l'accés a l'écriture

Répondre à néné

3

jouv, le 25 nov 2007 à 11:49:44

Merci de ton conseil
j'ai déja utilisé cette solution. Mais cela n'est pas suffissant car les données non protégé en écriture peuvent l'être modifie par tous

Répondre à jouv

4

néné, le 25 nov 2007 à 18:21:28

Voici 2 macros


Private Sub Worksheet_Change(ByVal Target As Range) 'macro événementiel
interdiresaisie Target, Range("a1:a10,c1:c20,g1")'Plage autorisée a adapter
End Sub


Sub interdiresaisie(lacellule As Range, plageautorisée As Range)
If Intersect(lacellule, plageautorisée) Is Nothing Then
MsgBox "Non autorisé a modifier"
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub



Protege ensuite ton project VBA
ALT+F11
puis Outils puis PropriétéS de VBAPROJECT PUIS ONGLET PROTECTION

COCHE "verrouiller le project pour affichage

saisi les mots de passe puis ok

relance le fichier

Répondre à néné

5

d.volz@free.fr, le 2 déc 2007 à 10:43:56

Merci de ton aide,je le mets en application cette semaine

Répondre à d.volz@free.fr

6

 gbinforme, le 2 déc 2007 à 12:54:13

Bonjour

je le mets en application cette semaine

Tu vas perdre ton temps car une protection ainsi conçue doit résister quelques minutes à ceux qui vont être frustrés par tes protections.

Il suffit d'avoir une sauvegarde de la base et faire une initialisation en cas de dégradation par des utilisateurs indélicats.
toujours zen

Répondre à gbinforme
Collection CommentÇaMarche.net