Protéger mon programme Excel
Résolu/Fermé
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
-
15 juil. 2015 à 14:46
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 janvier 2023 - 20 juil. 2015 à 21:37
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 janvier 2023 - 20 juil. 2015 à 21:37
A voir également:
- Protéger mon programme Excel
- Liste déroulante excel - Guide
- Formule excel - Guide
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Proteger cellule excel - Guide
- Programme demarrage windows 10 - Guide
5 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 janvier 2023
1 761
15 juil. 2015 à 15:07
15 juil. 2015 à 15:07
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
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
57
15 juil. 2015 à 16:37
15 juil. 2015 à 16:37
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é.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 janvier 2023
1 761
15 juil. 2015 à 19:38
15 juil. 2015 à 19:38
Re,
L'utilisateur aura toujours la possibilité d'interdire l'exécution des macros, et donc ....
L'utilisateur aura toujours la possibilité d'interdire l'exécution des macros, et donc ....
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
15 juil. 2015 à 20:02
15 juil. 2015 à 20:02
Re
Donc mettre les contrôle invisible par défaut, et la macro à l'ouverture les rend visible.
Comme ca, si on contourne la macro, tout est invisible.
Donc mettre les contrôle invisible par défaut, et la macro à l'ouverture les rend visible.
Comme ca, si on contourne la macro, tout est invisible.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 janvier 2023
1 761
15 juil. 2015 à 20:06
15 juil. 2015 à 20:06
Re
Autrement, tu peux créer un Add-in Com ou une DLL ActiveX avec VB6
Add-in Com
DLL ActiveX
Autrement, tu peux créer un Add-in Com ou une DLL ActiveX avec VB6
Add-in Com
DLL ActiveX
Kuartz
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
57
17 juil. 2015 à 08:56
17 juil. 2015 à 08:56
OK merci de votre aide, je vais me pencher sur tout ça.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7870
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 janvier 2023
723
18 juil. 2015 à 08:29
18 juil. 2015 à 08:29
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
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 janvier 2023
1 761
Modifié par Patrice33740 le 20/07/2015 à 21:40
Modifié par Patrice33740 le 20/07/2015 à 21:40
Le classeur ne s'affiche pas mais il est ouvert, il suffit de passer par le VBE pour modifier le code (si besoin, après avoir exécuté la macro de GéGé)
PS : les lois du Copyright me semblent suffisantes pour assurer une protection légitime .
PS : les lois du Copyright me semblent suffisantes pour assurer une protection légitime .
Modifié par Kuartz le 15/07/2015 à 15:27
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.
15 juil. 2015 à 15:47
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.
15 juil. 2015 à 15:55
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.
15 juil. 2015 à 15:57
15 juil. 2015 à 16:14
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.