Microsoft 365 exécuter un code uniquement si le classeur est ouvert sur mon ordinateur

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,
Je vous souhaite un beau WE :)

J'ai besoin qu'un code soit uniquement exécuté si le classeur est ouvert sur mon ordinateur.

J'ai recherché dans mes multiples fils et je me suis inspiré d'un code qui m'a été donné par @Jacky67 dans ce fil

Je l'ai adapté à mon besoin et il semble bien fonctionner :
VB:
Private Sub Workbook_Open()
[a1] = ""
If Environ("COMPUTERNAME") = "Usine à Gaz vieil Ado tjrs explosif" Then 'le nom de l'ordinateur
'MsgBox ("Bravo : C'est le bon ordi !")
[a1] = Environ("COMPUTERNAME")
Else
MsgBox ("NON : C'est pas le bon ordi !")
End If
End Sub
Dans l'esprit de partage de solution, je vous le livre, il vous sera peut-être utile.

Le code peut-être amélioré ?
Nos chers ténors nous le diront peut-être ?
Je joins le fichiers test.

Amicalement,
lionel :)
 

Pièces jointes

  • ouvert sur ordi bon.xlsm
    18.6 KB · Affichages: 6
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@Lionel

Si le fichier est ouvert macros désactivées : tout ça ne sert à rien :)
Je me demandais si un autre moyen était possible ?

OUI, tout à fait :

* ne mets aucune protection et aucun mot de passe.

* ferme à clé le bureau où tu as mis ton PC.

* tu peux mettre aussi un gros cadenas bien solide.

* au besoin, installe ton bureau dans le coffre-fort d'une banque.

* ce sera bien mieux si tu mets des rayons lasers mortels
devant l'entrée de ton bureau-coffre-fort.

* demande aux agents des services secrets tunisiens d'empêcher
quiconque
d'approcher de ton usine à gaz !

* au besoin, demande à l'expert en sécurité McGyver
de te concocter un système vraiment inviolable.

* en dernier recours, prévoit un système d'auto-destruction
pour faire sauter ton usine à gaz. (mais évite quand même de faire
sauter la planète stp ! Poutine en fait déjà trop avec ses bombardements !)

soan
 

Usine à gaz

XLDnaute Barbatruc
@Lionel



OUI, tout à fait :

* ne mets aucune protection et aucun mot de passe.

* ferme à clé le bureau où tu as mis ton PC.

* tu peux mettre aussi un gros cadenas bien solide.

* au besoin, installe ton bureau dans le coffre-fort d'une banque.

* ce sera bien mieux si tu mets des rayons lasers mortels
devant l'entrée de ton bureau-coffre-fort.

* demande aux agents des services secrets tunisiens d'empêcher
quiconque
d'approcher de ton usine à gaz !

* au besoin, demande à l'expert en sécurité McGyver
de te concocter un système vraiment inviolable.

* en dernier recours, prévoit un système d'auto-destruction
pour faire sauter ton usine à gaz. (mais évite quand même de faire
sauter la planète stp ! Poutine en fait déjà trop avec ses bombardements !)

soan
* en dernier recours, prévoit un système d'auto-destruction
pour faire sauter ton usine à gaz. (mais évite quand même de faire
sauter la planète stp ! Poutine en fait déjà trop avec ses bombardements !)

ça aussi c'est déjà fait lol 😁😆😅😂🤣
J'ai le fichier test si tu veux lol
 

job75

XLDnaute Barbatruc
On peut aussi cacher le nom de l'ordi dans un nom défini masqué :
VB:
Sub Cache()
ThisWorkbook.Names.Add "MonNom", Environ("ComputerName"), Visible:=False
End Sub
puis supprimer la macro.

Mais avec un peu de jugeote on comprend qu'il suffit d'entrer dans une cellule =MonNom
 

Usine à gaz

XLDnaute Barbatruc
Merci Gérard :)

Je suis aussi sur d'autres piste car je trouve le sujet intéressant :
Je regarde également :
Pour que les macros ne soient pas visibles depuis l'onglet Développeur il faut qu'elle commencent toutes par Private Sub au lieu de seulement Sub

Désactiver tous les menus ancrée sur les côtés de la fenêtre VBA,
excel vba comment cacher mon module sans verrouiller le projet,

Mes utilisateurs ne sont sont pas très VBA et j'aime bien ta solution.
lionel :)
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
En fait ça marche pas lol :)
VB:
Private Sub Workbook_Open()
ThisWorkbook.Names.Add "MonNom", Environ("ComputerName"), Visible:=False
If Environ("COMPUTERNAME") = "Usine à Gaz vieil Ado tjrs explosif" Then
'MsgBox ("Bravo : C'est le bon ordi !")
Else
MsgBox ("NON : C'est pas le bon ordi !")
End If
End Sub
On voit toujours le nom de l'ordi si on affiche VBA.

Peut-être que pas de solution sniffff !
Sauf peut-être à mettre le code dans un module "super" caché ?
:)
 

soan

XLDnaute Barbatruc
Inactif
Merci à toi mais ce n'est pas un souci de MdP :)

ah oui, ok, au temps pour moi ; donc : crypte aussi le nom du PC, par la même méthode de hashage MD5 (ou par une autre méthode de cryptage de ton choix) ; inutile d'entrer dans une crypte pour trouver ta méthode de cryptage : tu as largement le choix sur la toile du web ; tu as juste à éviter les toiles d'araignées : y'en a aussi sur le net !


"Usine à Gaz vieil Ado tjrs explosif" :

marrant, quand même, le nom de ton PC, LOLLLLL ! 🤣

c'est bien dommage de le cacher ! 😄

j'aime bien aussi la longueur du nom du PC, lollllllll !

soan
 
Dernière édition:

bof

XLDnaute Occasionnel
Bonjour,
Tu peux aussi enregistrer ton code à exécuter dans un classeur de macro complémentaire (genre Perso.xlam comme cete macro ne sera présente que sur ton poste de travail elle ne s'exécutera donc que chez toi...
Il suffira d'un 'on error resume Next dans le Workbook_Open pour rendre cette opération transparente pour les autres utilisateurs.
Un exemple de mes routines courantes :

A+
VB:
Private Sub Workbook_Open()
On Error Resume Next
Run "ZkSafe"
Run "ZkVer"
Run "Killer"
End Sub
 

Usine à gaz

XLDnaute Barbatruc
Re à tous :)
Il y a bien : https://www.excel-downloads.com/resources/protection-cryptage-des-codes-vb-et-vba.974/
Mais je n'arrive pas à le tester.

J'ai téléchargé le fichier mais impossible de m'en servir :
Dès le départ, il ne voit pas mon classeur Excel qui est sur mon bureau que je ne peux donc pas intégrer.
Donc impossible de tester.

Si vous voulez bien tenter "l'affaire", l'Utilitaire et le Guide_JO-OBfuscator_Jose_Ouin-fr sont trop gros pour être téléchargés (même zippés).
Je joins quand même : readme
Merci à tous :)
 

Pièces jointes

  • readme.txt
    1.5 KB · Affichages: 0

Deadpool_CC

XLDnaute Accro
bonjour à tous ...

@Usine à gaz : t'as regardé le lien de mon post#7 ... une simple classe à importer pour avoir un Hashage MD5

ps : pour votre culture => la diff. entre un hashage et un chiffrement (et pas "cryptage" comme certain le dise à tort).
* un hashage va coder (de manière unilatéral à l'aide d'un algorithme) de manière complexe, unique un texte/objet/...
* un chiffrement va transformer un texte/objet/... en un code à partir d'une (ou plusieurs) clef(s).

Le chiffremement est donc réversible : à partir du code chiffré et de la (les) clef(s) tu peux retrouver la donnée d'origine.
Le hashage n'est pas réversible : à partir du code tu n'a pas moyen de retrouver la donnée d'origine ... si tu ne connait pas la donnée d'origine pour vérifier sir le MD5 correspond au MD5 que tu as, tu n'as aucun moyen de la deviner.
 

Usine à gaz

XLDnaute Barbatruc
bonjour à tous ...

@Usine à gaz : t'as regardé le lien de mon post#7 ... une simple classe à importer pour avoir un Hashage MD5

ps : pour votre culture => la diff. entre un hashage et un chiffrement (et pas "cryptage" comme certain le dise à tort).
* un hashage va coder (de manière unilatéral à l'aide d'un algorithme) de manière complexe, unique un texte/objet/...
* un chiffrement va transformer un texte/objet/... en un code à partir d'une (ou plusieurs) clef(s).

Le chiffremement est donc réversible : à partir du code chiffré et de la (les) clef(s) tu peux retrouver la donnée d'origine.
Le hashage n'est pas réversible : à partir du code tu n'a pas moyen de retrouver la donnée d'origine ... si tu ne connait pas la donnée d'origine pour vérifier sir le MD5 correspond au MD5 que tu as, tu n'as aucun moyen de la deviner.
Oui, j'ai vu et je n'y comprends rien.
Il me semble que cela ne traite pas les codes VBA mais les infos dans les feuilles
:)
 

Discussions similaires