Erreur compilation. Attendu : Sub ou Fonction (32B Vs 64B) [Résolu]

Borman

XLDnaute Nouveau
Bonjour,

Je ne comprends rien à ce type de message...:confused:

Je dois travailler sur un fichier excel qui a dû être réalisé sous excel 97 vers. 32bits.

A la maison j'ai excel 2010 en 64bits, et à l'ouverture j'ai des erreurs de compilation...

J'ai déjà remplacé "PtrSafe"... mais je ne comprends pas le reste du message d'erreur

Vous pouvez m'aider à corriger le script SVP ?

Private Declare PtrSafe FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare PtrSafe SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare PtrSafe DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long

Private Sub UserForm_Initialize()
On Error Resume Next
Dim hWnd As Long, Style As Long
hWnd = FindWindow(vbNullString, Me.Caption)
Style = GetWindowLong(hWnd, -16) And Not &HC00000
SetWindowLong hWnd, -16, Style
DrawMenuBar hWnd
End Sub
 

Pièces jointes

  • Erreur_compilation.jpg
    Erreur_compilation.jpg
    21.9 KB · Affichages: 71
  • Erreur_compilation.jpg
    Erreur_compilation.jpg
    21.9 KB · Affichages: 91
  • Erreur_compilation.jpg
    Erreur_compilation.jpg
    21.9 KB · Affichages: 92
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Erreur compilation. Attendu : Sub ou Fonction (32B Vs 64B)

Bonjour.

Je n'ai pas de système 64bits, mais pour assurer la compatibilité, on m'a un jour instruit d'avoir à insérer le mot clé PtrSafe entre Declare et le suivant, pas de remplacer celui ci. S'agit il d'une Sub ou d'une Function ?
 

Dranreb

XLDnaute Barbatruc
Re : Erreur compilation. Attendu : Sub ou Fonction (32B Vs 64B)

Cela confirme donc bien qu'il faut toujours encore préciser s'il s'agit d'un Sub ou d'un Function derrière le mot clé PtrSafe, qui ne serait un peu qu'une espèce d'adverbe du mot Declare qui signifierait en quelque sorte "adressablement" (c'est à dire sur 64bits et non 32 pour les paramètres Long susceptibles de représenter une adresse)
Le message d'erreur de compilation est pourtant extrêmement clair !
Le nom de la fonction vient trop tôt: il faut d'abord mettre "Function" devant, donc après "PtrSafe" !
 
Dernière édition:

Borman

XLDnaute Nouveau
Re : Erreur compilation. Attendu : Sub ou Fonction (32B Vs 64B)

Bonjour et merci à tous.

En effet, il ne fallait pas remplacer... mais compléter la fonction. "Private Declare PtrSafe Function FindWindow..."
De fait, plus de message d'erreur.

Encore merci à tous et bonne journée !
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 379
Messages
2 087 762
Membres
103 661
dernier inscrit
fcleves