Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:

Usine à gaz

XLDnaute Barbatruc
Re-Bonjour,
J'ai quand même une question pour nos ténors :

Pour le fichier test, j'ai mis : "[a1] = Environ("COMPUTERNAME")"
Toutefois,, pour que celui qui ouvre le classeur ne le voit pas, ce serait super le nom de l'ordinateur n'apparaisse pas dans le code, n'y ailleurs
Est-ce possible ?

lionel
 
Dernière édition:

Deadpool_CC

XLDnaute Accro
Bonjour,
pour que le nom de l'ordi soit pas lisible, intègre une fonction de hashage MD5
ensuite compare le MD5 de ta lecture ordinateur à l'ouverture par rapport à la valeur MD5 que tu aurra mis en dur dans ton code à la palce du nom de ton ordi.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Gaz hilarant, (réponse au post #1)

ton fichier optimisé en retour.

code VBA (11 lignes) :

VB:
Option Explicit

Private Sub Workbook_Open()
  Const chn As String * 14 = " le bon ordi !"
  Dim PC$: PC = Environ("COMPUTERNAME")
  If PC = "PC Lionel" Then
    [A1] = PC: MsgBox "Bravo : C'est" & chn
  Else
    [A1] = Empty: MsgBox "NON : C'est pas" & chn
  End If
End Sub

si ton sujet est résolu, marque mon post comme solution
envoie-moi de bonnes fraises à la crème chantilly !

soan
 

Pièces jointes

  • ouvert sur ordi bon.xlsm
    18.8 KB · Affichages: 1

Usine à gaz

XLDnaute Barbatruc
Bonjour Deadpool_CC
Merci pour l'info.
Je ne connais pas cette fonction.
Je vais faire des recherches.
lionel
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Bonjour soan et merci pour ton code
Effectivement, c'est bien plus "Pro" - Bravo.

Pour le fichier test, j'ai mis : "[a1] = Environ("COMPUTERNAME")"
Toutefois,, pour que celui qui ouvre le classeur ne le voit pas, ce serait super le nom de l'ordinateur n'apparaisse pas dans le code, n'y ailleurs
Est-ce possible ?
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@Lionel

Pour le fichier test, j'ai mis : "[a1] = Environ("COMPUTERNAME")"
Toutefois,, pour que celui qui ouvre le classeur ne le voit pas, ce serait super de pouvoir cacher le nom de l'ordinateur dans le code
Est-ce possible ?

1) déjà, commencer par ne pas afficher le nom du PC en [A1] !
➯ en cellule A1, ne rien afficher du tout !

2) pour que le nom ne soit pas visible dans le code VBA :

a) mettre un mot de passe sur ton projet VBA ; ainsi,
c'est tout ton code qui sera à l'abri des espions !

b) choisir un password crypté, et mettre un module de décryptage ;
je suis sûr que job75 (salut) pourra te faire ça très bien !



code VBA (10 lignes) :

VB:
Option Explicit

Private Sub Workbook_Open()
  Const chn As String * 14 = " le bon ordi !"
  If Environ("COMPUTERNAME") = "PC Lionel" Then
    MsgBox "Bravo : C'est" & chn
  Else
    MsgBox "NON : C'est pas" & chn
  End If
End Sub

soan
 

Pièces jointes

  • ouvert sur ordi bon.xlsm
    18.7 KB · Affichages: 1

Usine à gaz

XLDnaute Barbatruc
re-soan

1) déjà, commencer par ne pas afficher le nom du PC en [A1] ! : J'ai affiché juste pour le test
➯ en cellule A1, ne rien afficher du tout !

2) pour que le nom ne soit pas visible dans le code VBA :

a) mettre un mot de passe sur ton projet VBA ; ainsi,
c'est tout ton code qui sera à l'abri des espions ! : je fais ça aussi

b) choisir un password crypté, et mettre un module de décryptage : je sais et je fais ça aussi
je suis sûr que @job75 (salut) pourra te faire ça très bien !

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

Deadpool_CC

XLDnaute Accro
Obliger à activer VBA
Protège tout et masque tout sauf une feuille qui explique que VBA doit être activer.
et sur cette feuille un bouton qui permet de demaquer et déprotéger les feuilles utiles du classeur (et masquer celle d'accueil.
à la sauvegarde/fermeture ... tu fait l'inverse pour ne laisser visible que la feuille d'accueil
 

Usine à gaz

XLDnaute Barbatruc
Merci Deadpool_CC
Je fais déjà tout çà lol

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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…