Protéger mon programme Excel
Résolu
Kuartz
Messages postés
852
Date d'inscription
Statut
Membre
Dernière intervention
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Après avoir élaboré un long et fonctionnel programme excel grâce au VBA, je souhaiterais pouvoir le protéger de manière sûre.
On peut facilement craquer un mot de passe dans les propriétés de VBA Project et encore plus un mot de passe sur un fichier excel. Mon but en fait serait que le fichier ne soit plus utilisable au bout d'un certain temps. Je voudrais imaginer un code qui se renouvelle tous les 3 mois et que moi seule connaisse. Peut-être même directement intégré au code.
Avez-vous des idées? Des suggestions?
Merci d'avance.
Cordialement.
Après avoir élaboré un long et fonctionnel programme excel grâce au VBA, je souhaiterais pouvoir le protéger de manière sûre.
On peut facilement craquer un mot de passe dans les propriétés de VBA Project et encore plus un mot de passe sur un fichier excel. Mon but en fait serait que le fichier ne soit plus utilisable au bout d'un certain temps. Je voudrais imaginer un code qui se renouvelle tous les 3 mois et que moi seule connaisse. Peut-être même directement intégré au code.
Avez-vous des idées? Des suggestions?
Merci d'avance.
Cordialement.
A voir également:
- Protéger mon programme Excel
- Proteger cellule excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
5 réponses
Bonjour,
Aucune protection n'est vraiment efficace !!!
Peut-être que rendre le programme très difficile à lire peut décourager certains. Voici un exemple en hommage à Ti (Thierry Pourtier) :
Aucune protection n'est vraiment efficace !!!
Peut-être que rendre le programme très difficile à lire peut décourager certains. Voici un exemple en hommage à Ti (Thierry Pourtier) :
Private Function iiiijqiiiijl%(iiiijjiiiijp() As Byte, iiiipiiiiipq&) iiiijqiiiijl = iiiijjiiiijp(iiiipiiiiipq) iiiipiiiiipq = iiiipiiiiipq + 1 End Function Private Function iiiipliiiipj$(iiiijjiiiijp() As Byte, iiiipiiiiipq&, Optional ByVal iiiippiiiqii& = -1) Dim iiiqiqiiiqil& If iiiippiiiqii = -1 Then iiiqiqiiiqil = iiiipiiiiipq: iiiippiiiqii = 0 Do While iiiijjiiiijp(iiiqiqiiiqil) <> 0 And iiiqiqiiiqil < UBound(iiiijjiiiijp) iiiqiqiiiqil = iiiqiqiiiqil + 1 iiiippiiiqii = iiiippiiiqii + 1 Loop End If If iiiippiiiqii > 0 Then iiiipliiiipj = iiijlqiiijll(iiiijjiiiijp, iiiipiiiiipq, iiiippiiiqii) If Right$(iiiipliiiipj, 1) = Chr(0) Then iiiipliiiipj = Left$(iiiipliiiipj, Len(iiiipliiiipj) - 1) End Function
Sinon simplement :
A l'ouverture du fichier et basta. La personne qui ne sait pas va se planter de mot de passe et tout sera effacé.
Sub Macro11() If InputBox("Mot de passe?", "MDP") = "abcd" Then Exit Sub Dim VBComp As Object Dim VBComps As Object Set VBComps = ActiveWorkbook.VBProject.VBComponents For Each VBComp In VBComps Select Case VBComp.Type Case 100 With VBComp.CodeModule .DeleteLines 1, .CountOfLines End With Case Else VBComps.Remove VBComp End Select Next VBComp End Sub
A l'ouverture du fichier et basta. La personne qui ne sait pas va se planter de mot de passe et tout sera effacé.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
L'utilisateur aura toujours la possibilité d'interdire l'exécution des macros, et donc ....
Pour éviter cela:
Mettre dans ThisWorkBook:
Voir ceci:
https://codes-sources.commentcamarche.net/source/53948-protection-vbaproject
L'utilisateur aura toujours la possibilité d'interdire l'exécution des macros, et donc ....
Pour éviter cela:
Mettre dans ThisWorkBook:
Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean) 'on rétabli à la fermeture ThisWorkbook.IsAddin = True End Sub Private Sub Workbook_Open() 'empêcher l'affichage d'un classeur s'il est ouvert alors que l'exécution 'des macros est désactivée dans les options de sécurité ThisWorkbook.IsAddin = False End Sub
Voir ceci:
https://codes-sources.commentcamarche.net/source/53948-protection-vbaproject
Merci pour cet exemple mais bon, le code est selon moi toujours lisible. Donc ce n'est pas exactement ce que je cherche...
Merci quand même de l'info. Si il y a d'autres idées je suis preneur.
La sécurité est a plusieurs niveau.
Primo, qui a accès à ton fichier ?
Distribué à des clients ou Public sur un réseau ?
Dans le premier cas, on ne veut pas donner un fichier excel.
Dans le deuxième cas, on peut gérer les droits et restreindre qui a accès au fichier.
Il peut y avoir un mot de passe pour l'ouverture du fichier, et un autre pour protéger le code.
Quel est l'importance des données ?
Un mot de passe peut être cracké, mais ce n'est pas à la porté de l'utilisateur lambada usuel. La vérité est que si quelqu'un veut vraiment ouvrir un fichier, il peut y arriver, mais il doit y mettre le temps et l'effort.
Si votre fichier est d'une importance cruciale, alors peut-etre que Excel n'était pas le bon logiciel à priori.
Les données du fichier n'ont aucune importance. Tout ce que je souhaite, c'est que le code VBA ne marche pas si on ne remet pas le mot de passe au bout d'un certain temps. (Je souhaite quand même fournir un mdp que les utilisateur puissent jouïr de mon travail tant que je suis là). Le but est que si je pars, les gens ne puissent plus utiliser mes travaux.
https://www.commentcamarche.net/faq/37104-vba-excel-mot-de-passe-et-utilisateurs
J'imagine qu'il serait possible de géré une date d'expiration pour les mots de passe.
Si vous partez, pouvez-vous supprimer le fichier ?
Je te joint un lien sur un autre forum sur l'auto destruction du fichier.
https://www.excel-downloads.com/threads/auto-suppression.100449/
Autre sujet : coté propriété intellectuelle, un programme développé durant les heures de travail devrait habituellement appartenir à l'employeur, alors que si c'est développé à la maison, c'est a vous. Donc il est fortement conseillé de faire son développement à la maison.
https://fr.wikipedia.org/wiki/Droit_de_l%27informatique_en_France
Extrait : Les fichiers informatiques constitués par un employé sur son lieu de travail sont présumés avoir un caractère professionnel depuis une décision de la Cour de cassation du 18 octobre 200610. L'employeur pourra donc y accéder librement, sauf si le salarié a clairement identifié ces fichiers comme personnels.