Forum Clubic

Protection feuille Excel par mot de passe

Tout d’abord bonjour,
voila j’aurais voulu savoir si il était possible de protéger l’accès à une feuille de mon classeur Excel par un mot de passe. C’est à dire que lorsque que l’utilisateur clique sur la feuille, un mot de passe lui est demandé avant qu’il puisse voir cette feuille. Si celui ci est rentré correctement il y aura accès sinon l’accès lui sera refusé.
Merci beaucoup pour votre réponse.

Par defaut Excel ne permet pas d’empecher la lecture. il peut emepcher la modification, c’est tout.

Mais le probleme peut etre contourné de 2 façons:

*Si le fichier est stocké sur un disque dur en NTFS (minimum, sur une partition unix/linux c’est aussi possible) seul les utilisateurs autorisé pourront le lire, mais cela ne demandera pas de mot de passe à l’ouverture

  • Utiliser une macro qui se lance à l’ouverture du fichier.
    Tu rends la feuille invisible par defaut et la macro se chargera de l’afficher ou non selon le mot de passe. (Là il faudra utiliser la protection Excel contre les modifications pour que la personne ne puisse pas contourner trop facilement le truc)

un petit exemple tout simple:



Private Sub Workbook_Open()

'Masque directement la feuille si cette derniere est visible
If Sheets("Feuil1").Visible = True Then Sheets("Feuil1").Visible = False


'Rend la feuille visible si mot de passe OK
If InputBox("mot de passe", vbCritical) = "test" Then
    Sheets("Feuil1").Visible = True
End If

End Sub


à placer dans “Thisworkbook” au niveau de l’editeur VBA

Bien sur ça demande à etre un peu amelioré (le mot de passe qui apparait en clair dans le code c’est tres moyen… etc)

mais ça donne une base de depart :slight_smile:

Ce genre de protection a une grosse limite. il suffit de démarer en desactivant les macros pour passer au travers… Je prefere largement la gestion sur la NTFS…

Sinon, autre chose… dans ton code tu masque la feuille au chargement…
L’idéal est qu’elle soit masquée en quittant, comme ça, le document étant protéger contre les modifications c’est un peu plus sur… (et met le mot de passe dans une cellue de la feuille masquée…)

oui bien sur il vaut mieux que la feuille soit masquée par defaut (proprietes de la feuille depuis l’editeur VBA => visibilite)

ainsi si on desactive les macros la feuille ne s’affiche pas

Attention: il faut au moins une feuille visible (meme vide) dans un classeur

En VBA toujours, il y a une propriété veryhidden pour les feuilles:

Sheets("Feuil1").Visible = xlVeryHidden

Il n’y a que VBA pour réafficher une feuille masquée comme ça, ce qui permet de contrer les petits malins qui iraient simplement dans le menu Format/Feuille/Afficher. Par contre les grands malins ils connaissent :wink:

ouaip c’est ça le probleme, ce n’est jamais du 100% avec office :neutre:

il faudait quand meme qu’ils pensent à mettre des vrais securité dans leur truc :ane:

Ils y pensent pour Office quarante-douze :paf:
Ce sera LA version vers laquelle il faudra absolument upgrader! :sol:

:lol:

on sera tous passé à OpenOffice 15 d’ici là :MDR