Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Tonino7

XLDnaute Occasionnel
Bonjour à tous,

pour les plus tordus d'entre vous... y'a-t-il des possibilités techniques de cacher une partie du code VBA... par mot de passe par exemple.
En gros, je vais devoir fournir le mot de passe VBA à d'autres personnes au boulot... mais je ne souhaiterais pas dévoiler l'intégralité de mon programme sur lequel j'ai planché pendant des mois.

Je suis preneur de toute idée

merci
 

jeanpierre

Nous a quitté
Repose en paix
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Bonjour Tonino7,

Laisser accessible une partie de code et pas une autre n'est pas possible, c'est tout ou rien.

Néanmoins, tu peux peut-être ruser un peu et cela vaut ce que ça vaut....

La partie à cacher tu la descends très, très bas dans ton module au point que la poignée d'ascenseur soit quasiment imperceptible et au besoin très très à droite également. Tu fermes ton fichier en étant revenu en haut de module.

A part ce bricolage je ne vois rien d'autre.

Bonne fin d'après-midi.

Jean-Pierre
 

Tonino7

XLDnaute Occasionnel
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Merci Jean-Pierre... on va essayer de faire comme ça.

Sinon, question subsidiaire du meme style que la première:

existe-t-il une possibilité de cacher un mot de passe à l'intérieur du code vba ou de le crypter :

exemple:

retour = InputBox("Type the password hereunder:", "Password required", "")
If retour = DOUDOU Then.......

Je souhaiterais que le DOUDOU n'apparaisse pas dans le code ou soit remplacé par des ***.(le fait qu'il n'apparaisse pas à la saisie, ça je connais. Mais là, je parle du code vba)

Merci :)
 

jeanpierre

Nous a quitté
Repose en paix
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Re,

Malheureusement non.

VBA ne reconnaîtra, comme mot de passe, que ce qui est écrit en DUR dans le code.

La question est de savoir pourquoi tu dois fournir ce MDP à certaines personnes. Si le code est bien fait elles n'ont pas besoin d'y accéder.

Jean-Pierre
 

Tonino7

XLDnaute Occasionnel
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

ok merci. Et bien, ce sont des collègues et nous travaillons sur les memes fichiers. Donc ils vont forcément me demander le code à un moment pour comprendre ce que j'ai fait, par simple curiosité intellectuelle... et je me vois mal refuser..
Ca me fait chi** mais bon tant pis. Je rajouterai peut etre une petite macro d'auto-destruction des feuilles en fonction de la date d'utilisation ou du username... je ne vois que ça comme protection en ayant fourni les mdp...
 

jeanpierre

Nous a quitté
Repose en paix
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Re,

Faire comme j'ai fait avec mes collègues, refuser et leur expliquer que la protection est nécessaire pour le bon fonctionnement et que le moindre accès au code risque de mettre en péril le bon fonctionnement. Expliquer également que le code n'apportera pas grand chose en fonction de leur connaissance.

Par contre ne pas refuser de les aider s'ils veulent réaliser de petites choses en VBA. Généralement ils sont preneur.

Jean-Pierre
 

MJ13

XLDnaute Barbatruc
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Bonjour Tonino, JP

Sinon NoviceAG avait proposé un code pour écrire le mot de passe dans le registre (voir une de ces propositions dans le salon).
 

job75

XLDnaute Barbatruc
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Bonjour le fil,

Voyez aussi ce code :

Code:
ThisWorkbook.Names.Add "mdp", "tatata"
ThisWorkbook.Names("mdp").Visible = False
MsgBox [mdp] 'vérification

Le mot de passe est entré dans un nom défini (menu Insertion-Nom) du classeur, qui est masqué.

Après utilisation, ce code est bien sûr supprimé.

Peu de gens savent qu'on peut masquer un nom, et à quoi servent les crochets.

A+
 

Tibo

XLDnaute Barbatruc
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Salut Job,

Je fais partie de ceux qui ne savent pas qu'on peut masquer un nom :eek::p...

La manip que tu donnes passe par du VBA

Peux-t-on, à ta connaissance, faire la même chose en direct (via les menus d'Excel) ?

A te (re)lire

@+
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Bonjour à tous,

pour répondre à cette question subsidiaire
Merci Jean-Pierre... on va essayer de faire comme ça.

Sinon, question subsidiaire du meme style que la première:

existe-t-il une possibilité de cacher un mot de passe à l'intérieur du code vba ou de le crypter :

exemple:

retour = InputBox("Type the password hereunder:", "Password required", "")
If retour = DOUDOU Then.......

Je souhaiterais que le DOUDOU n'apparaisse pas dans le code ou soit remplacé par des ***.(le fait qu'il n'apparaisse pas à la saisie, ça je connais. Mais là, je parle du code vba)

Merci :)
voir fichier joint
il est possible de retrouver le mdp en faisant le cheminement inverse( voir la ligne de code)mais ça en décourage plus d'un et on peut toujours compliquer cela

à+
Philippe
 

Pièces jointes

  • 111.xls
    23 KB · Affichages: 398
  • 111.xls
    23 KB · Affichages: 446
  • 111.xls
    23 KB · Affichages: 449

jeanpierre

Nous a quitté
Repose en paix
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Re, Bonsoir Job, Tibo, Philippe, camarchepas,

Job, j'avais entendu parler de cette possibilité mais je n'ai jamais trouvé le comment. Merci donc.

Philippe, pas mal l'astuce.

camarcheopas, j'ai bien pensé aussi à une macro complémentaire que l'on peut certe crypter mais il faut l'installer sur tous les postes ce qui n'est pas forcément possible. De toutes façons, si les utilisateurs sont curieux ils le seront là aussi.

Crypter directement la macro mais cela devient dangereux si elle est accessible car il y aura toujours des bricolos.

Pas simple...

Bonne soirée.

Jean-Pierre
 

jeanpierre

Nous a quitté
Repose en paix
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Re,

De toutes façons, crypter ne peut pas concerner les process de calculs, les références aux feuilles, aux cellules etc... donc bien inutile.

Jean-Piierre
 

job75

XLDnaute Barbatruc
Re : Cacher une partie du code VBA ! (pour les plus avertis d'entre vous)

Salut Tibo :)

Salut Job,

Je fais partie de ceux qui ne savent pas qu'on peut masquer un nom :eek::p...

La manip que tu donnes passe par du VBA

Peux-t-on, à ta connaissance, faire la même chose en direct (via les menus d'Excel) ?

A te (re)lire

@+

Non il n'y a pas de commande intégrée qui fasse ça.

Il faut donc utiliser VBA ou la macro-commande Excel 4.0 :

Code:
=DEFINIR.NOM([COLOR="red"]nom_texte[/COLOR]; [COLOR="red"]réfère_à[/COLOR]; type_macro; raccourci_texte; [COLOR="Red"]masqué[/COLOR]; catégorie; local)

Pour ce qu'on veut faire, seuls les arguments en rouge sont nécessaires.

A exécuter dans une feuille macro Excel 4.0 bien sûr.

A+