Bonjour,
Travaillant actuellement sous mac et avec excel je rencontre une difficulté.
Voilà, je cherche à automatiser le traitement d'un fichier (les traitements sont basiques, mises en pages, filtre, moyenne) puis à envoyer le fichier modifier sur un ftp.
En fouillant sur le net j'ai réussit à trouver des morceaux de codes, dont certains me semble intéressant.
Cependant, ces solutions passent toutes par "wininet.dll" qui est, si j'ai bien compris, un fichier windows.
Je souhaitais donc vous demander si vous aviez connaissance d'une solution quant à ce problème ?
Déclaration des API avec notamment le "wininet.dll"
Le morceau de code que je dois encore bosser
Travaillant actuellement sous mac et avec excel je rencontre une difficulté.
Voilà, je cherche à automatiser le traitement d'un fichier (les traitements sont basiques, mises en pages, filtre, moyenne) puis à envoyer le fichier modifier sur un ftp.
En fouillant sur le net j'ai réussit à trouver des morceaux de codes, dont certains me semble intéressant.
Cependant, ces solutions passent toutes par "wininet.dll" qui est, si j'ai bien compris, un fichier windows.
Je souhaitais donc vous demander si vous aviez connaissance d'une solution quant à ce problème ?
Déclaration des API avec notamment le "wininet.dll"
Code:
'-------------------
'Déclaration des API
'-------------------
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
Le morceau de code que je dois encore bosser
Code:
Dim HwndConnect As Long
Dim HwndOpen As Long
'Ouvre internet
HwndOpen = InternetOpen("SiteWeb", 0, vbNullString, vbNullString, 0)
'Connection au site ftp
If HwndOpen <> 0 Then
HwndConnect = InternetConnect(HwndOpen, "siteinternet", INTERNET_INVALID_PORT_NUMBER, "identifiant", "motdepasse", 1, 0, 0)
If HwndConnect <> 0 Then
MsgBox ("Connexion serveur OK")
End If
' PARTIE A VERIFIER
'positionnement du curseur dans le répertoire
FtpSetCurrentDirectory HwndConnect, "/"
'Téléchargement de test.txt
'FtpGetFile HwndConnect, "guigui.docx", "répertoire incluant le nom du fichier", _
' False, 0, &H0, 0
FtpPutFile HwndConnect, "répertoire incluant le nom du fichier", "test.docx", FTP_TRANSFER_TYPE_ASCII, 0
'Envoi du fichier test.txt en le renommant shwin.txt sur le serveur
End If
InternetCloseHandle HwndConnect 'Ferme la connection
InternetCloseHandle HwndOpen 'Ferme internet