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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.