Générer un GUID (Global Unique ID) sous EXCEL MAC et WINDOWS et compatible OpenOffice

  • Initiateur de la discussion Initiateur de la discussion lucf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lucf

XLDnaute Nouveau
Bonjour,
je souhaite générer un GUID en VBA Excel sur différentes plates formes et si possible aussi sous Open Office (Windows, Mac et Linux).

La génération du GUID sous Windows fonctionne (voir code ci-dessous) via une DLL.

Questions:
- Quelle fonction MAC appeller sous EXCEL MAC pour obtenir la même chose ?
- Comment faire pour étendre cela à OpenOffice (Windows, Mac et Linux) avec un code VBA ?


Option Explicit

' ------------------------------------------------------
' Génération de GUID
' Source: Create GUID
' ------------------------------------------------------
Private Declare Function CoCreateGuid Lib "OLE32.DLL" (pGuid As GUID) As Long

Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type

Public Function CreateGUID() As String
Dim os As String
os = Application.OperatingSystem

If Left(os, Len("Windows")) = "Windows" Then ' La création des GUID n'est accessible que sous Windows
Dim G As GUID
With G
If (CoCreateGuid(G) = 0) Then
CreateGUID = _
String$(8 - Len(Hex$(.Data1)), "0") & Hex$(.Data1) & _
String$(4 - Len(Hex$(.Data2)), "0") & Hex$(.Data2) & _
String$(4 - Len(Hex$(.Data3)), "0") & Hex$(.Data3) & _
IIf((.Data4(0) < &H10), "0", "") & Hex$(.Data4(0)) & _
IIf((.Data4(1) < &H10), "0", "") & Hex$(.Data4(1)) & _
IIf((.Data4(2) < &H10), "0", "") & Hex$(.Data4(2)) & _
IIf((.Data4(3) < &H10), "0", "") & Hex$(.Data4(3)) & _
IIf((.Data4(4) < &H10), "0", "") & Hex$(.Data4(4)) & _
IIf((.Data4(5) < &H10), "0", "") & Hex$(.Data4(5)) & _
IIf((.Data4(6) < &H10), "0", "") & Hex$(.Data4(6)) & _
IIf((.Data4(7) < &H10), "0", "") & Hex$(.Data4(7))
End If
End With
Else ' Faire un appel différent pour un autre OS
CreateGUID = ""
End If
End Function


Public Sub afficheGUID()
Dim gu As String

gu = CreateGUID
MsgBox ("OS: " & Application.OperatingSystem & " GUID: " & gu)
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour