IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Récupération de fichier sur un ftp en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Récupération de fichier sur un ftp en VBA
    Bonjour,

    Je dois récupérer des fichiers sur un ftp avec excel sous vba. J'ai déjà adapté une bonne partie de code que j'ai trouvé sur internet mais j'ai encore quelques soucis.

    En effet, la fonction FtpGetFile utilisée à la fin du code me renvoie toujours "Faux" dans succés2. J'ai essayé toute les combinaison possibles, d'autre chemin pour enregistrer le fichier et de modifier les autorisations du dossier de réception mais c'est toujours le même souci.

    La variable succés1 qui correspond à la ligne où j'utilise la fonction FtpSetCurrentDirectory me renvoie bien vrai et HwndConnect est à 13369500 ce qui montre que ça fonctionne bien jusque là (?)

    Une idée vers quoi je dois me tourner ?

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    '-------------------
    '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 FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As Long
     
    'réception d'un fichier
     
    Private Sub Commande27_Click()
     
    Dim HwndConnect As Long
    Dim HwndOpen As Long
     
    'Ouvre internet
    HwndOpen = InternetOpen("SiteWeb", 0, vbNullString, vbNullString, 0)
    'Connection au site ftp
    HwndConnect = InternetConnect(HwndOpen, XXX, 21, XXX, XXX, 1, 0, 0)
    'répertoire
    succés1 = FtpSetCurrentDirectory(HwndConnect, "/")
    'Téléchargement
    succés2 = FtpGetFile(HwndConnect, "0006046356_valuereport_20020101010005_2101.csv", "C:/0006046356_valuereport_20020101010005_2101.csv", False, 0, 2, 0)
    InternetCloseHandle HwndConnect 'Ferme la connection
    InternetCloseHandle HwndOpen 'Ferme internet
     
    End Sub
    Merci !

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    parmi les tutoriels de ce forum :   Envoi/réception de fichier sur un serveur FTP   …

    ___________________________________________________________________________________________________________
    Je suis Paris, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse

    C'est exactement sur ce tutoriel que j'ai récupéré le code. Je l'ai peut être trop modifié ?

    Cordialement,
    TM

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous,

    En utilisant le code de la discussion suivante, j'ai le même souci.

    https://www.developpez.net/forums/d1...sftp-code-vba/

    J'ai cependant utilisé la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Debug.Print "FtpGetFile error "; Err.LastDllError
    pour voir ce qui n'allait pas et j'obtiens "FtpGetFile error 5 "

    Je ne trouve rien d'intéressant sur internet à propos de ce message d'erreur, quelqu'un l'a déjà rencontré ?

    Merci,
    Crdlt,
    TM

Discussions similaires

  1. [AC-2016] Récupération de fichier sur SFTP - code VBA
    Par lartiste_973 dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/09/2016, 19h32
  2. [FTP] Récupération de fichier sur un serveur distant
    Par valouche dans le forum Langage
    Réponses: 15
    Dernier message: 06/03/2008, 11h30
  3. [FTP] Récupération taille fichier sur ftp
    Par Kerod dans le forum Langage
    Réponses: 4
    Dernier message: 18/04/2006, 04h18
  4. Upload de fichiers sur un ftp
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 10
    Dernier message: 20/06/2004, 12h55
  5. [] [Réseau] Transfert fichier sur un FTP
    Par CYFL dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/02/2003, 18h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo