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 :

Envoi d'un fichier CSV via FTP


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2016
    Messages : 12
    Par défaut Envoi d'un fichier CSV via FTP
    Bonjour à toutes et à tous,

    Je cherche à envoyer un fichier fichier.csv via FTP dans un repertoire \XXX\

    Après plusieurs recherches j'ai trouvé le code suivant :

    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
     
    Public Sub SendFileViaFTP()
        Dim vPath As String
        Dim vFile As String
        Dim vFTPServ As String
        Dim fNum As Long
     
        vPath = ThisWorkbook.Path
        vFile = "Adresse fichier.csv"
        vFTPServ = "Adresse IP" à renseigner
     
        'Mounting file command for ftp.exe
        fNum = FreeFile()
        Open vPath & "\FtpComm.txt" For Output As #fNum
        Print #1, "Login mdp"       ' your login and password"
        Print #1, "dir\xxx\"    'change to dir on server
        Print #1, "bin"    ' bin or ascii file type to send
        Print #1, "put " & vPath & "\" & vFile & " " & vFile    ' upload local filename to server file
        Print #1, "close"    ' Close connection
        Print #1, "quit"    ' Quit FTP program Close
     
        Shell "ftp -n -i -g -s:" & vPath & "\FtpComm.txt " & vFTPServ, vbNormalNoFocus
     
        SetAttr vPath & "\FtpComm.txt", vbNormal
        Kill vPath & "\FtpComm.txt"
    End Sub
    Ce code ne fonctionne pas, pourriez-vous m'aider ?

    Merci d'avance,

  2. #2
    Expert éminent
    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
    Par défaut

    Bonjour,

    en dehors des exemples dans ce forum voir aussi le tutoriel Envoi/réception de fichier sur un serveur FTP

    ___________________________________________________________________________________________________________
    Je suis Paris, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2016
    Messages : 12
    Par défaut
    Voici le code que je viens de tester à l'aide du lien,
    Ma requête se met correctement à jour et est envoyée par mail, par contre le fichier jour.xlsx n'est pas déposé en FTP dans le répertoire \EDI

    Pourriez-vous m'aider ?
    Merci

    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
    Private Sub Workbook_Open()
    If ActiveWorkbook.Name = "MACRO.xlsm" Then
     
    Application.DisplayAlerts = False
    BackgroundQuery = False
    RefreshAll
     
    'Copie d'aujourd'hui sur l'onglet EDI
    Sheets("BDD_06550_METALU").Range("A1:W100000").SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("EDI").Range("A1")
     
     
     
    For Each feuille In ActiveWorkbook.Sheets
    feuille.Copy
    With ActiveWorkbook
    .Title = feuille.Name
    .Subject = fEDI- 'Téleuille.Name
    .SaveAs échargement de test.txt
    'FtpGetFile HwndConnect, "JOUR.csv", "chemin\JOUR.csv", False, 0, &H0, 0
     
    FtpPutFile HwndConnect, "chemin\JOUR.csv", "JOUR.csv", &H0, 0
    'Envoi du fichier test.txt en le renommant shwin.txt sur le serveur
     
    InternetCloseHandle HwndConnect 'Ferme la connection
    InternetCloseHandle HwndOpen 'Ferme internet
    End Sub

  4. #4
    Expert éminent
    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
    Par défaut

    Rien d'autre si ce n'est de ne pas oublier comme pourtant codé dans le lien la déclaration d'autorisation
    d'accès au dossier en FTP car je doute qu'il eut été paramétré "portes ouvertes" ! …

    Se renseigner auprès du responsable réseau gérant ce dossier.

    ___________________________________________________________________________________________________________
    Copier / Coller n'est pas coder …

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Août 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2016
    Messages : 12
    Par défaut
    Oui effectivement il manque la déclaration des API, mais si j'utilise le code décrit dans le lient j'ai le message suivant qui apparait :

    Nom : Capture.PNG
Affichages : 433
Taille : 4,5 Ko

    En effet j'ai un système 64 bits.
    Quelles modifications sont apportées ?
    Merci pour votre aide précieuse

  6. #6
    Expert éminent
    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
    Par défaut

    Je n'évoquais pas du tout la déclaration des API !
    Aucune idée si cela peut fonctionner en 64 bits; voir donc les exemples dans les discussions de ce forum …

    Développer avec Office 64 bits

    Declaring API functions in 64 bit Office

    Voir aussi la documentation officielle de Microsoft.

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/01/2008, 13h52
  2. ourir un fichier CSV via Access
    Par pioupiouafr008 dans le forum VBA Access
    Réponses: 1
    Dernier message: 01/08/2007, 09h54
  3. [FTP] upload de fichier local via ftp
    Par fraizz dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2007, 17h32
  4. Réponses: 7
    Dernier message: 30/05/2006, 14h08
  5. Script d'envoie d'un fichier excel via un formulaire
    Par Morphine.Nw dans le forum ASP
    Réponses: 4
    Dernier message: 26/01/2006, 13h08

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