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,
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.
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 Gaz hilarant,

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 des fraises avec de la bonne crème chantilly !

soan
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
@Lionel



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
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
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
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