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:

Deadpool_CC

XLDnaute Accro
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
bon j'ai trouvé plus simple mais c'est pas du md5, c'est du 'simple' SHA1 couplé avec du base 24

Merci pour tes efforts :)
J'ai récupéré les 2 codes mais je ne vois pas où les mettre, ni comment faire pour tester. Grrrr !!!
VB:
Public Function Base64_HMACSHA1(ByVal sTextToHash As String, ByVal sSharedSecretKey As String)

    Dim asc As Object, enc As Object
    Dim TextToHash() As Byte
    Dim SharedSecretKey() As Byte
    Set asc = CreateObject("System.Text.UTF8Encoding")
    Set enc = CreateObject("System.Security.Cryptography.HMACSHA1")

    TextToHash = asc.Getbytes_4(sTextToHash)
    SharedSecretKey = asc.Getbytes_4(sSharedSecretKey)
    enc.Key = SharedSecretKey

    Dim bytes() As Byte
    bytes = enc.ComputeHash_2((TextToHash))
    Base64_HMACSHA1 = EncodeBase64(bytes)
    Set asc = Nothing
    Set enc = Nothing

End Function

Private Function EncodeBase64(ByRef arrData() As Byte) As String

    Dim objXML As MSXML2.DOMDocument
    Dim objNode As MSXML2.IXMLDOMElement

    Set objXML = New MSXML2.DOMDocument

    ' byte array to base64
    Set objNode = objXML.createElement("b64")
    objNode.DataType = "bin.base64"
    objNode.nodeTypedValue = arrData
    EncodeBase64 = objNode.Text

    Set objNode = Nothing
    Set objXML = Nothing

End Function
:)
 
Dernière édition:

Discussions similaires