PB version Excel 64 bits
Bonjour à tous,
J'ai réalisé un fichier qui fonctionne sur Excel 32 et 64 bits.
tout va bien sauf ce bout de code qui me permet de lire et d'écrire dans un fichier .ini
il fonctionne en 32 bits mais pas en 64 bits j'ai le message suivant et je ne trouve pas quoi faire.
voici le code :
'Les fonction pour Lire et Ecrire dans le fichier INI
Public Declare PtrSafe Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As LongPtr, ByVal lpFileName As String) As LongPtr
Public Declare PtrSafe Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongPtr
'pour l'aide
Declare PtrSafe Function HtmlHelp Lib "HHCtrl.ocx" Alias "HtmlHelpA" (ByVal hwndCaller As LongPtr, ByVal pszFile As String, ByVal uCommand As LongPtr, dwData As Any) As LongPtr
Function LireINI(EnTete As String, Variable As String, Path As String) As String
Dim Retour As String
Dim fichier As String
fichier = Path
Retour = String(255, Chr(0))
LireINI = Left$(Retour, GetPrivateProfileString(EnTete, ByVal Variable, "", Retour, Len(Retour), fichier))
RtnLireIni = LireINI
End Function
Function EcrireINI(EnTete As String, Variable As String, Valeur As String, Path As String) As String
Dim fichier As String
Dim writeini
fichier = Path
writeini = WritePrivateProfileString(EnTete, Variable, Valeur, fichier)
End Function
quelqu'un aurait il une idée car je n'ai plus que ça à corriger.
Par avance merci pour votre aide et passez une bonne journée.
Daniel
Bonjour Danval
Remplacer les déclarations dans ton code (et supprimer HtmlHelp)
Private Declare PtrSafe Function SetPrivateProfileString Lib "kernel32.dll" _
Alias "WritePrivateProfileStringA" (ByVal lpSection As String, _
ByVal lpSetting As String, _
ByVal lpValue As String, _
ByVal lpFileName As String) As Long
Private Declare PtrSafe Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpSectName As String, ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpRetString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
#Else
Private Declare Function SetPrivateProfileString Lib "kernel32.dll" _
Alias "WritePrivateProfileStringA" (ByVal lpSection As String, _
ByVal lpSetting As String, _
ByVal lpValue As String, _
ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpSectName As String, ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpRetString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
#End If
bon je comprend pas j'ai essayé et tjrs des erreurs.
tu as mis juste une partie du code?
il y a un else et end if et j'ai pas le if.
c'est bon j'ai trouvé
un grand merci
- Messages
- 4'095
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonjour,
Votre fonction GetPrivateProfileString est définie en LongPtr
La "Variable" de votre fonction LireINI est définie en String. Il y a bien incompatibilité.