Problème pour Télécharger un fichier sur un serveur FTP

codothlo

XLDnaute Nouveau
Bonjour à tous
Je vais passer sur excel 2010 64 bits.
J'ai une macro pour uploader un fichier sur un FTP. Cette macro ne veut pas fonctionner sur la version 2010 j'ai une alerte : "le code contenu dans ce projet doit être mis à jour pour pouvoir etre utilisé sur les systemes 64 bits.Vérifiez et mettre à jour les instructions Declare puis marquez-les avec l'attribut PtrSafe."
Bon, là je séche..:confused:
Quelqu'un pourrait-il m'aider SVP; cela fait maintenant une semaine que je fouille les forum sans succes ...:(

Ci dessous mon code (version 2003)

MERCI aux bonnes volontés

Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" ( _
ByVal hInternetSession As Long, ByVal sServerName As String, _
ByVal nServerPort As Integer, ByVal sUserName As String, _
ByVal sPassword As String, ByVal lService As Long, _
ByVal lFlags As Long, ByVal lContext As Long) As Long
Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" ( _
ByVal sAgent As String, ByVal lAccessType As Long, _
ByVal sProxyName As String, _
ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias _
"FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, _
ByVal lpszDirectory As String) As Boolean
Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" ( _
ByVal hConnect As Long, _
ByVal lpszRemoteFile As String, _
ByVal lpszNewFile As String, _
ByVal fFailIfExists As Long, _
ByVal dwFlagsAndAttributes As Long, _
ByVal dwFlags As Long, _
ByRef dwContext As Long) As Boolean

Sub chargefichier()
Internet_OK = InternetOpen("", 1, "", "", 0)
If Internet_OK Then
FTP_OK = InternetConnect(Internet_OK, "ftp.ici.ici", 21, "login", "motdepasse", 1, 0, 0)
If FtpSetCurrentDirectory(FTP_OK, "/") Then

succès = FtpGetFile(FTP_OK, "Journalier.xls", "T:\XXXX\YYYY\ZZZZ\monfichier.xls", False, 0, &H0, 0)
End If
End If
If succès Then 'je travail'
End Sub
 

JNP

XLDnaute Barbatruc
Re : Problème pour Télécharger un fichier sur un serveur FTP

Bonjour le fil :),
Tu peux lire mon "petit" post ICI (in french :)) en ce qui concerne comment obtenir du code valable pour 2003, 2010 32bit ET 2010 64 bits :p...
Après, je n'ai pas testé avec l'API que tu utilises, mais lorsque j'avais fait des tests, le fait de rajouter PtrSafe et d'utiliser des LongPtr à la place des déclarations en Long avait fonctionné :rolleyes:... Ceci bien sûr avec la déclaration de l'API faite plusieurs fois, avec PtrSafe dans le 64 et sans PtrSafe pour le 32 ;)...
Bon courage :cool:
 

codothlo

XLDnaute Nouveau
Re : Problème pour Télécharger un fichier sur un serveur FTP

Bonjour et MERCI à tous..
Grace aux aides des différents acteurs, j'ai résolu le problème et voici donc la version finale, testée et valide pour excel 2010, si cela peut servir à quelqu'un d'autre...


Declare PtrSafe Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" ( _
ByVal hInternetSession As Long, ByVal sServerName As String, _
ByVal nServerPort As Integer, ByVal sUserName As String, _
ByVal sPassword As String, ByVal lService As Long, _
ByVal lFlags As Long, ByVal lContext As Long) As Long
Declare PtrSafe Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" ( _
ByVal sAgent As String, ByVal lAccessType As Long, _
ByVal sProxyName As String, _
ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Declare PtrSafe Function FtpSetCurrentDirectory Lib "wininet.dll" Alias _
"FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, _
ByVal lpszDirectory As String) As Boolean
Declare PtrSafe Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" ( _
ByVal hConnect As Long, _
ByVal lpszRemoteFile As String, _
ByVal lpszNewFile As String, _
ByVal fFailIfExists As Long, _
ByVal dwFlagsAndAttributes As Long, _
ByVal dwFlags As Long, _
ByRef dwContext As Long) As Boolean
Encore merci aux intervenants :)
 

Discussions similaires

Statistiques des forums

Discussions
312 769
Messages
2 091 935
Membres
105 113
dernier inscrit
AOUJIL