Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL pour MAC VBA sur mac faire appel aux librairies windows ?

Keilan

XLDnaute Nouveau
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"
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
 

Marc L

XLDnaute Occasionnel
Bonjour,

les API / ActiveX Windows n'existent pas sous MAC, et pour cause !
Seule solution sur MAC : émulation Windows …

_______________________________________________________________________________
Je suis Paris, Charlie, Bruxelles, …
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…