Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
VBA : Différencier les versions Excel 365, 2016 et 2019
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 !
Bonjour,
Mon 1er. post...
Auriez-vous vous une astuce pour déterminer la version Excel utilisée sous Windows (10) ?
Application.Version retourne la même valeur, soit 16.0, pour les 3 versions énumérées.
Merci par avance.
Cdlt.
Bonsoir Staple1600,
De mémoire pour Excel 2016, c'était 7.01, comme pour Excel 365 (ma version).
J'en déduit que cela doit la même chose pour 2019.
Sinon , j'avais commencé à me poser la question, et cherché un peu.
J'ai lu un article (que je recherche) et de mémoire, c'était à priori très difficile de trouver une solution viable.
Cdlt.
Sub En_Attendant_L_Ami_Ricoré()
Dim m$, vNu
With Application
m = "Version: " & .Version & vbCrLf
m = m & "Build: " & .Build & vbCrLf
m = m & "Code Produit: " & .ProductCode & vbCrLf
m = m & "Chemin Librairies: " & vbCrLf & .LibraryPath & vbCrLf
End With
MsgBox m, 64, "Infos"
vNu = Split(Split(Application.LibraryPath, "\")(2))(2)
MsgBox "Excel, c'est quoi ton numéro?" & vbCrLf & "C'est le: " & vNu, 48, ";-)"
End Sub
Pas mieux pour le moment (suis en train d'explorer la voie qui passe par la Registry)
PS: Espérons que tu retrouves l'article qui éclairera nos lanternes 😉
PS: Comme il s'agit de titiller le registre de Windows, j'ai sécurisé le code VBA ici soumis.
(Mais il suffira de deux clics dans VBE pour tester, mais là on pourra pas me tenir pour responsable si jamais survenait un fâcheux aléa comme Windows sait en avoir le secret 😉 )
Bonjour Jean-Marie,
Je recherche encore le lien que j'avais consulté !...
#4 :
Je joins un fichier (y.c. ta procédure) que j'utilise. Les résultats ne sont pas satisfaisants.
#5 :
Pour le registre, le souci est de trouver une clé commune aux 3 versions, qui retournerait 2016, 2019 ou 365 !...
* ta procédure nécessite à mon humble avis des droits d'administarteur...
Bonjour le fil, Jean-Marie,,
J'ai retrouvé le lien : Vérifiez la version de l’application Excel
Le fichier joint comporte 2 modules : KenPuls et JeanEric
La fonction de KenPuls [AppVersion()] ne fonctionne pas pour mon cas. La clé LicensingNext n'existe pas dans le registre Windows.
HKEY_CURRENT_USER\Software\Microsoft\Office\xx.0\Common\Licensing\LicensingNext"
J'ai donc modifié la fonction [AppVersion_2()] avec un chemin différent :
HKEY_CURRENT_USER\Software\Microsoft\Office\xx.0\Common\Licensing\OlsToken
Lorsque j'exécute la procédure Check_2(), le résultat est Excel 365 (o365homepremretail).
Donc, je suis satisfait , mais !...
Bon, maintenant, qu'en est il pour vous ?
Pouvez-vous tester la chose (exécuter Check_1 et Check_2) et faire un retour ?
J'ai testé Check1 et Check2
(sur XL2K10 et XL2k13) => OK
Tu peux tester Check_3 (j'ai pas XL 2016 ou supérieur sous la main) 😉
VB:
Private Function zAppVersion()
Select Case Val(Application.Evaluate("INFO(""VERSION"")"))
Case 16
'?
Case 15
zAppVersion = 2013
Case 14
zAppVersion = 2010
Case Is = 12
zAppVersion = 2007
Case Else
'Too old to bother with
zAppVersion = 0
End Select
End Function
Sub Check_3()
MsgBox "You are running Excel " & CStr(zAppVersion), vbInformation, "Test"
End Sub
Bonsoir,
@JM
La fonction plante à la 1ère. ligne. La fonction INFO() ne comprend pas VERSION.
Pensais-tu à l'argument RELEASE ?
Sinon, peux tu me dire si dans le registre (Regedit) les suivantes existent pour Excel 2010 et 2013 ?
HKEY_CURRENT_USER\Software\Microsoft\Office\xx.0\Common\Licensing\LastKnownC2RProductReleaseId
HKEY_CURRENT_USER\Software\Microsoft\Office\xx.0\Common\Licensing\OlsToken
Re,
Je suis en version anglaise. J'ai donc écrit une c******e !...
En remplaçant Version par Release, ta fonction me retourne 16 (l'équivalent de Application.Version) Informations()
Cdlt.
Bonjour le fil, JM
Check renvoie Excel 2016 et Check_2 me renvoie Excel 365 (résultat attendu).
Elle devrait retourner l'équivalenl suivant la version de l'application (Excel 2007, … , Excel 2019).
Des personnes intéressées pour tester Check_2 et faire un retour ?
Pour info, la fonction ne modifie pas le registre Windows. Elle lit simplement une valeur déterminée dans le registre.
Dans le fichier joint, la version Excel est affichée dans une cellule (aucune manipulation).
Cdlt.
Bonjour à tous,
A près une série de tests effectués par JM et Chris, que je remercie chaleureusement, je joins la fonction App_Version() dans le fichier joint.
Elle permet donc de retourner la version d'Excel utilisée, en différenciant les versions 365, 2016 et 2019.
J'ai cependant encore un doute avec la lecture du registre pour l'utilisateur qui ne dispose pas des droits d'administrateur (!?).
Je vais poursuivre les tests, pour déceler d'éventuels bugs.
Cordialement.
VB:
Public Function AppVersion() As Long
Dim registryObject As Object
Dim rootDirectory As String
Dim keyPath As String
Dim arrEntryNames As Variant
Dim arrValueTypes As Variant
Dim x As Long
Select Case Val(Application.Version)
Case Is = 16
'Check for existence of Licensing key
keyPath = "Software\Microsoft\Office\" & CStr(Application.Version) & "\Common\Licensing\OlsToken"
rootDirectory = "."
Set registryObject = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & rootDirectory & "\root\default:StdRegProv")
registryObject.EnumValues &H80000001, keyPath, arrEntryNames, arrValueTypes
On Error GoTo ErrorExit
For x = 0 To UBound(arrEntryNames)
If InStr(arrEntryNames(x), "365") > 0 Then
AppVersion = 365
Exit Function
End If
If InStr(arrEntryNames(x), "2019") > 0 Then
AppVersion = 2019
Exit Function
End If
Next x
Case Is = 15
AppVersion = 2013
Case Is = 14
AppVersion = 2010
Case Is = 12
AppVersion = 2007
Case Else
'Too old to bother with
AppVersion = 0
End Select
Exit Function
ErrorExit:
'Version 16, but no licensing key. Must be Office 2016
AppVersion = 2016
End Function
- 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