XL 2016 Transferer un fichier à un serveur STFP sécurisé VBA

  • Initiateur de la discussion Initiateur de la discussion r.ouhia
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

r.ouhia

XLDnaute Nouveau
Bonjour à tous,

Pouvez vous svp m'aider, je veuxautomatiser un transfert d'un fichier excel depuis le pc vers un serveur SFTP sécurisé.

A savoir que la macro doit être avec code VBA sous excel.

Merci par avance de votre aide.

PS: j'ai chérché sur le forum et je n'ai pas trouvé une réponse.
 
Bonjour à tous

Si j'ai bien compris, essaie cela :

VB:
Public fichier As String
Public nb As Integer

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 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 FtpSetCurrentDirectory Lib "wininet.dll" Alias _
     "FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, _
     ByVal lpszDirectory As String) As Boolean
Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" ( _
     ByVal hFtpSession As Long, _
     ByVal lpszLocalFile As String, _
     ByVal lpszRemoteFile As String, _
     ByVal dwFlags As Long, _
     ByVal dwContext As Long) As Boolean
Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer


Sub ftp()
'transfère des fichiers du disque local vers un serveur ftp (upload, mode passif)

'PARAMETRES************************

login = "1234"
mot_passe = "5678"
rép = "/www/repertoire"
bin_asc = &H2    '(&H1 ascii, &H2 binaire)
mode = &H8000000 '(&H8000000 mode passif, 0 mode actif)
'**********************************

'lancer le transfert
internet_ok = InternetOpen("PutFtpFile", 1, "", "", 0)
    If internet_ok = 0 Then
       MsgBox "connection internet impossible"
       Exit Sub
    End If
ftp_ok = InternetConnect(internet_ok, "ftp.xxxxxxx.com", 21, login, mot_passe, 1, mode, 0)
    If ftp_ok = 0 Then
       MsgBox "connection  impossible"
       Exit Sub
    End If
sélect_rép = FtpSetCurrentDirectory(ftp_ok, rép)
    If sélect_rép = 0 Then
    MsgBox "impossible de trouver le répertoire "
    Exit Sub
    End If

'nom du fichier sans le chemin
    nomfich = fichier
    Do While InStr(nomfich, "\") > 0
        nomfich = Right(nomfich, Len(nomfich) - InStr(nomfich, "\"))
    Loop

'transférer le fichier
     succès = FtpPutFile(ftp_ok, fichier, nomfich, bin_asc, 0)
    If succès Then
        résult = nomfich & " a été transféré "
    Else
        résult = nomfich & " n'a pas pu être transféré"
    End If

'fermer les pointeurs, ménage
    InternetCloseHandle ftp_ok
    InternetCloseHandle internet_ok

End Sub

Tu dis !

Eric
 
Possible, le serveur sur lequel je suis est apparemment non sécurisé....

J'ai trouvé ceci :


à fouiller, je n'ai pas de temps pour tester.

A+

Eric
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour