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

Macros et VBA Excel Discussion :

Problème d'ouverture de fichier avec des API


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Problème d'ouverture de fichier avec des API
    Bonjour,

    J'ai récemment livré un fichier excel 2010 qui fonctionne correctement sur l'ordinateur de la personne qui a effectué la recette. Celle-ci l'a envoyé à un collègue (ayant lui aussi excel 2010) qui ne peut pas ouvrir le fichier et qui a le message suivant :
    "erreur de compilation dans le module caché (le fichier est protégé): nom_du_module. Cette erreur se produit généralement lorsque le code est incompatible avec la version, plateforme ou architecture de cette application. Pour plus d'information cliquez sur aide"

    Le module en question contient des déclarations API, que je connais mal. Je précise que je n'ai pas créé ce fichier, mais que j'ai effectué des modifications n'ayant aucun lien avec ce module.

    Ci-dessous la programmation API :

    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    Private Declare PtrSafe Function GetSystemMetrics& _
     Lib "USER32" (ByVal nIndex&)
     Private Declare PtrSafe Function GetForegroundWindow& _
     Lib "USER32" ()
     Private Declare PtrSafe Function GetWindowRect& _
     Lib "USER32" (ByVal hWnd&, lpRect As RECT)
     Declare PtrSafe Function GetDesktopWindow Lib "USER32" () As Long
     'fonction pour mettre le curseur à un endroit voulu
     Declare Function SetCursorPos Lib "USER32" ( _
                     ByVal X As Long, _
                     ByVal Y As Long) As Long
     ' ---API permettant de déplacer la souris---
    Declare Sub mouse_event Lib "USER32" (ByVal dwFlags As Long, _
            ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, _
            ByVal dwExtraInfo As Long)
     
    ' ---Définition des constantes---
    Global Const MOUSEEVENTF_ABSOLUTE = &H8000
    Global Const MOUSEEVENTF_LEFTDOWN = &H2
    Global Const MOUSEEVENTF_LEFTUP = &H4
    Global Const MOUSEEVENTF_MIDDLEDO = &H20
    Global Const MOUSEEVENTF_MIDDLEUP = &H40
    Global Const MOUSEEVENTF_MOVE = &H1
    Global Const MOUSEEVENTF_RIGHTDOW = &H8
    Global Const MOUSEEVENTF_RIGHTUP = &H10
     
    '---Constantes Mot de Passe---
    Public Const pwIndicateurs As String = "PW1"
    Public Const pwDonnees As String = "PW2"
    Public Const pwParametres As String = "PW3"
    Public Const pwParametrage_Dotation As String = "PW4"
    Public Const pwPlan_D_Action As String = "PW5"
    Public Const pwWorkbook As String = "PW6"
    Public Const pwVba As String = "PW7"
    Public Const pwDonneesGraph As String = "PW8"
    Public Const pwSecurite As String = "PW9"
     
     
     Private Type RECT
     x1 As Long
     y1 As Long
     x2 As Long
     y2 As Long
     End Type
     
     Public Function GetScreenResolution() As String
              Dim R As RECT
              Dim hWnd As Long
              Dim RetVal As Long
              hWnd = GetDesktopWindow()
              RetVal = GetWindowRect(hWnd, R)
              GetScreenResolution = (R.x2 - R.x1) & "x" & (R.y2 - R.y1)
    End Function
     
     
     Sub Resolution()
     Dim Info As String, hWnd As Long, R As RECT
     Info = "Résolution écran:" & vbTab _
     & GetSystemMetrics(0) & " x " _
     & GetSystemMetrics(1) & vbLf
     hWnd = GetForegroundWindow
     GetWindowRect hWnd, R
     'Info = Info & "Fenêtre active:" & vbTab _
     '& (R.Right - R.Left) & " x " & R.Bottom - R.Top
     Info = Info & vbLf & "Fenêtre Excel:" & vbTab _
     & Application.Width * 4 / 3 & " x " & Application.Height * 4 / 3
     MsgBox Info
     End Sub
     
    Public Sub AutoAjust()
    Dim LargeurEcran As Long
    Dim HauteurEcran As Long
     
    LargeurEcran = GetSystemMetrics(0)
    HauteurEcran = GetSystemMetrics(1)
     
    If HauteurEcran < 850 Then
    form_Saisie.Height = 480
    form_Saisie.Width = 622
    form_Saisie.Zoom = 90
    form_Saisie.Left = 40
    form_Saisie.Top = 50
    End If
     
    End Sub
    Malheureusement, je ne connais pas l'environnement exact de l'ordinateur sur lequel le problème s'est posé (mis à part le fait que la version MS installée ne pose pas problème).

    Malgré tout, quelqu'un a-t-il une suggestion ?

    Cordialement.

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,
    Quel version Windows 64 bits ou 32
    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
    #If Win64 Then
        Private Declare PtrSafe Function GetSystemMetrics& _
         Lib "USER32" (ByVal nIndex&)
         Private Declare PtrSafe Function GetForegroundWindow& _
         Lib "USER32" ()
         Private Declare PtrSafe Function GetWindowRect& _
         Lib "USER32" (ByVal hWnd&, lpRect As RECT)
         Declare PtrSafe Function GetDesktopWindow Lib "USER32" () As Long
     #Else
        Private Declare Function GetSystemMetrics& _
        Lib "USER32" (ByVal nIndex&)
        Private Declare Function GetForegroundWindow& _
        Lib "USER32" ()
        Private Declare Function GetWindowRect& _
        Lib "USER32" (ByVal hWnd&, lpRect As RECT)
        Declare Function GetDesktopWindow Lib "USER32" () As Long
     #End If

Discussions similaires

  1. problème d'ouverture de fichier Excel avec Matlab
    Par Lize50 dans le forum MATLAB
    Réponses: 4
    Dernier message: 19/05/2010, 16h18
  2. [ API JDIC ] Ouvrir un fichier avec des paramètres
    Par macmanus dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 11/05/2007, 15h32
  3. Réponses: 6
    Dernier message: 12/04/2007, 14h22
  4. Problème de chemin de fichier avec des espaces
    Par Akronyme dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 11/12/2006, 17h12
  5. Réponses: 15
    Dernier message: 23/06/2006, 13h09

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