IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Office 2013 Lib "user32"


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Février 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Office 2013 Lib "user32"
    Bonjour à tous

    Lors du passage de Office 2003 à Office 2013, dans une macro Excel, les 3 lignes suivantes se mettent maintenant en rouge.
    (C'est une partie de routine récupérée sur un forum, qui fonctionnait très bien et dont je remercie l'auteur !)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
     
     
    Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
     
     
    Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
    Est-ce que c'est possible de remodeler cette routine ? Quelqu'un aurait la gentillesse de m'éclairer ?
    Merci d'avance
    Mick

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Pour une solution VB6 en particulier, je ne sais pas. Ceci dit la raison c'est probablement que depuis Office 2010, Office est disponible en versions 32 et 64 bits, et, en VBA, les déclarations des fonctions API doivent être modifiées. Dans un Office à 64 bits, les appels à l'API qui doivent être modifiés, sont affichés en rouge.

    Avec un parc hétéroclite d'Office 32 et 64 bits et pour garder la compatibilité des macros avec les deux versions; en VBA, cela prendrait quelque chose qui ressemblerait à cela, en utilisant une constante de compilation condittionnelle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #if VBA7 then
        'La macro est utilisée avec un OFFICE à 64 bits
         Public Declare Function PTRSAFE GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
         Public Declare Function PTRSAFE  GetDC Lib "user32" (ByVal hwnd As Long) As Long
         Public Declare Function  PTRSAFE  GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
    #Else
         Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
         Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
         Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
    #End if
    Il y a bien aussi cet article:
    http://arkham46.developpez.com/artic...ice/vba64bits/
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Février 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Toujours en erreur
    Bonjour Clément

    Désolé, mais toutes les lignes de déclarations proposées se mettent en en rouge.

    C'est peut-être du à la version Office 2013 !

    Je me passerai donc de cette routine récupérée sur un forum, il y a un certain temps !

    Merci de t’être penché sur ce problème.

    Mick

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo