Problème de déclaration d'API compatible 64bit et 32 bit
Bonjour,
J'ai un petit soucis avec un code en VBA. Il doit pouvoir fonctionner via VBA 7 et via les versions antérieures.
Il s'agit de récupérer les dimensions de l'écran via une API. Au moment de la déclaration de l'API, j'ai fait une déclaration conditionnée par la version de VBA utilisée, mais Excel n'arrive pas à compiler le code : j'ai une erreur me disant qu'il faut mettre à jour le code pour qu'il fonctionne sur un système 64bit, ce qui est précisément ce que j'essaie de faire...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| Option Explicit
'Déclaration de l'API
#If VBA7 Then
Private Declare PtrSafe Function GetSystemMetrics Lib "USER32" (ByVal nIndex As Long) As Long
#Else
Private Declare Function GetSystemMetrics Lib "USER32" (ByVal nIndex As Long) As Long
#End If
'####################################################
'####################################################
Function Taille_Ecran()
'----------Commentaire----------------------------------------------------
'
'Permet de récupérer la tailler de l'écran de l'utilisateur. En sortie, une liste de 5 paramètres :
'Sortie (1): Largeur
'Sortie (2): Hauteur
'Sortie (3): rapport
'Sortie (4): Activation scroll (vrai ou faux)
'Sortie (5) : Erreur : vrai ou faux
'----------Déclaration des variables locales---------------------------------
Dim Largeur As Integer
Dim Hauteur As Integer
Dim Rapport_HL As Double
Dim Activation_Scroll As Boolean
Dim Erreur_Recup_Donnee As Boolean
Dim Tableau_Sortie() As Variant
'----------Initialisation des variables locales--------------------------------
Erreur_Recup_Donnee = False
Activation_Scroll = False
ReDim Tableau_Sortie(5)
'----------Code-----------------------------------------------------------
On Error GoTo Gestion_erreur
Largeur = GetSystemMetrics(0)
Hauteur = GetSystemMetrics(1)
Rapport_HL = Largeur / Hauteur
Tableau_Sortie(1) = Largeur
Tableau_Sortie(2) = Hauteur
Tableau_Sortie(3) = Rapport_HL
Tableau_Sortie(4) = Activation_Scroll
Tableau_Sortie(5) = False
Taille_Ecran = Tableau_Sortie()
Exit Function
Gestion_erreur:
Tableau_Sortie(1) = 0
Tableau_Sortie(2) = 0
Tableau_Sortie(3) = 0
Tableau_Sortie(4) = False
Tableau_Sortie(5) = True
Taille_Ecran = Tableau_Sortie()
End Function |
Si quelqu'un à une idée de ce qui cloche, je suis preneur ! Merci d'avance.