telechargement ftp via vba

cyril_25

XLDnaute Nouveau
Bonjour à tous,

J'ai récuperé du code pour telecharger un fichier en FTP depuis vba, mais cela ne fonctionne pas. Quelqu'un peut-il me donner une macro OK ou me dire quels compléments et références doivent etre installés ???

merci

Cyril
 

cyril_25

XLDnaute Nouveau
Re : telechargement ftp via vba

Voila le code :

Option Explicit
Public Login As String, Mdp As String, NumFic As String
'Déclaration des API Windows pour permettre la récupération du fichier sur le serveur FTP
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

Private 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

Private 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
Private Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias _
"FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, _
ByVal lpszDirectory As String) As Boolean

Private 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

Private Declare Function FtpPutFile Lib "wininet.dll" Alias _
"FtpPutFileA" (ByVal hConnect As Long, ByVal lpszLocalFile As String, _
ByVal lpszNewRemoteFile As String, ByVal dwFlags As Long, _
ByVal dwContext As Long) As Boolean


Public Sub ImportFTP(FicELO As String)
On Error GoTo Err_Sub
' Marco développé par : Shwin - Forum des développeurs - Voir le profil: shwin
' Source : Access - Les Sources - Club d'entraide des développeurs francophones
Dim HwndConnect As Long
Dim HwndOpen As Long, MyFile
' On récupère l'adresse IP dans les CGR
Dim SiteFTP
' Définir l'adresse IP - ICI
SiteFTP = "192.1.2.192" ' Lance l'ouverture du site ftp
HwndOpen = InternetOpen("ftp://" & SiteFTP & "/SDCA", 0, vbNullString, vbNullString, 0)
'Connection au site ftp
HwndConnect = InternetConnect(HwndOpen, SiteFTP, 21, "utilisateur", "mot_de_passe", 1, 0, 0)
'positionnement du curseur dans le répertoire
'FtpSetCurrentDirectory HwndConnect, "/travail"
' Téléchargement du fichier ELO
Dim rep
rep = FtpGetFile(HwndConnect, FicELO, VPathFileName, False, 0, &H0, 0)
' Vérifier que le fichier a bien été téléchargé
If rep = False Then
InternetCloseHandle HwndConnect 'Ferme la connection
InternetCloseHandle HwndOpen 'Ferme internet
MsgBox "Impossible d'importer le fichier : " & FicELO & vbCrLf _
& "Arrêt de la macro !"
End
End If
' Ferme le handle de connection puis celui d'Internet
InternetCloseHandle HwndConnect
InternetCloseHandle HwndOpen

Exit Sub

Err_Sub:
MsgBox "Une erreur c'est produite, arrêt de la macro"
InternetCloseHandle HwndConnect 'Ferme la connection
InternetCloseHandle HwndOpen 'Ferme internet
FlgErr = True
End
End Sub

Mais il semble que je n'arrive pas à me connecter...

Cyril
 

cyril_25

XLDnaute Nouveau
Re : telechargement ftp via vba

J'ai ce code qui marche tres bien en http, mais pas en FTP !!!!

Merci de votre aide!

Sub recupererImageWeb_winHttp()

'source :ALL HTML - Discussions sauvegarde d'une image

'activer la reference Microsoft winHttp Services ,version 5.1

Dim b() As Byte

Dim h As Long

Dim oWinHttp1 As WinHttp.winHttpRequest

h = FreeFile

Open "C:\monImage.gif" For Binary As #h

Set oWinHttp1 = New WinHttp.winHttpRequest

oWinHttp1.Open "GET", "http://www.excel-downloads.com/templates/xld/images/logoessais.gif", False

oWinHttp1.Send

oWinHttp1.waitForResponse (30)

b() = oWinHttp1.responseBody

Set oWinHttp1 = Nothing

Put #h, 1, b()

Close #h

End Sub


Cyril
 

Discussions similaires

Réponses
2
Affichages
554

Statistiques des forums

Discussions
311 732
Messages
2 081 997
Membres
101 861
dernier inscrit
Jerem28630