XL 2016 VBA data type LongPtr est-il valide pour les anciennes versions d'Office (VB6)

Dudu2

XLDnaute Barbatruc
Bonjour,

La doc Microsoft décrit le pseudo-type de donnée LongPtr: https://docs.microsoft.com/en-us/office/vba/Language/Reference/User-Interface-Help/longptr-data-type
Cette doc fait bien la différence en Office 32 bits et Office 64 bits mais à aucun moment ne fait la différence entre VBA6 et VBA7 et donc elle ne dit pas si l'utilisation de ce type de donnée LongPtr est valide pour les versions d'Office d'avant 2010 qui a introduit le VBA7.

Donc faut-il absolument écrire:
VB:
#If VBA7 Then
    Dim Handle as LongPtr
#Else
    Dim Handle as Long
#End if

Ou bien:
Code:
Dim Handle as LongPtr
Est-il accepté par toutes les versions d'Office y compris les plus anciennes d'avant Office 2010 ?

Cordialement,
D.

P.S. un test sur un "vieil" Office (2007 ou 2003 par exemple) serait un révélateur bienvenu.
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Bonjour
Sous XL2007 Win10 en mettant le code dans un module de feuille:
1599052160749.png

première ligne en rouge dans l'éditeur

au lancement de la macro test:
1599052214981.png


Macro seule:
1599052681466.png


Ma pierre à l'édifice

Cordialement
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour Efgé, merci pour ton retour. C'est une pierre angulaire qui donne une visibilité très claire sur ce pseudo-type de donnée.

Je me suis trompé sur le #If au message #1 (corrigé), mais il faut donc bien écrire:
VB:
#If VBA7 Then
    Dim Handle as LongPtr
#Else
    Dim Handle as Long
#End if
 

Statistiques des forums

Discussions
314 029
Messages
2 104 803
Membres
109 174
dernier inscrit
stephVect