Protection de feuille dans macro (excel 2013)

Résolu/Fermé
atinauJ Messages postés 43 Date d'inscription jeudi 9 février 2017 Statut Membre Dernière intervention 5 mars 2017 - 16 févr. 2017 à 00:48
atinauJ Messages postés 43 Date d'inscription jeudi 9 février 2017 Statut Membre Dernière intervention 5 mars 2017 - 16 févr. 2017 à 16:09
Bonjour,

J'ai monté un fichier de facture (avec l'aide de ce forum) et je voudrais qu'il soit bien protégé.
Dans ma macro, j'ai prévu de déverrouiller les feuilles, au tout début, le temps que la macro exécute tout ce qui s'y trouve, et ça reverrouille à la fin. Le hic, c'est qu'il n'y a pas de mot de passe.
Par contre, comme ce fichier était une commande d'un client, on ne veut pas qu'il le remette à d'autres. C'est notre produit.
Lorsqu'on protège une feuille, on peut y mettre un mot de passe. Mais cette opération dans une macro exige qu'on tape le mot de passe pendant l'exécution de la macro. Je ne veux pas que le client ait à taper quoi que ce soit, je ne veux pas lui donner le mot de passe. Lui, il n'a qu'à faire ses factures et cliquer sur le bouton qui exécute la macro. Je veux donc que le mot de passe soit incorporé dans la macro. Est-ce possible ?

Et par la suite, comment l'empêcher d'aller voir l'historique de la macro ? Est-ce que ça se protège, une macro ?

Autrement dit, il ne faut pas qu'il soit capable de distribuer notre produit à d'autres et que les autres le modifient à leur guise. S'ils veulent en avoir un aussi, il devra faire appel à nos services.

merci pour votre aide et bonne journée.



7 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 16/02/2017 à 08:04
Bonjour,

'code de protection feuille sans avoir a deproteger pour ecrire dans les cellules avec du VBA
Private Sub Workbook_Open()
    For n = 1 To Worksheets.Count
        With Worksheets(n)
            .EnableAutoFilter = True        'pas de filtre
            .Protect Password:="toto", DrawingObjects:=True, Contents:=True, Scenarios:=True, userInterfaceOnly:=True
            .EnableSelection = xlNoSelection        'pas de selection cellule
        End With
    Next n
End Sub


Il faut aussi proteger le code:
explorerateur de projets
clic droit sur votre projet
propriete de VBAproject
Protection
Cocher Verrouiller le projet....
saisir mot de passe et confirmation

Et se rappeler du mot de passe
1