XL 2016 Liste des fichiers sur Ftp

johnpeter

XLDnaute Nouveau
Bonjour à tous, Je reviens vers vous car depuis des semaines je cherche le moyen de lister sur une feuil avec leurs caractéristiques les fichiers que je gère avec FileZilla. C'est très important car chaque fois que je fais une modification sur un fichier je voudrais installer sur les autres postes une macro permettant chaque matin de comparer et de télécharger les nouveaux. Je sais envoyer les fichiers sur le Ftp par macro mais impossible de trouver comment lister. Un immense merci d'avance
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

Test OK (sur le ftp de test du code ci-dessous glané sur le net après deux, trois minutes sur G..gle)
(j'ai juste adapté pour avoir le résulat dans la feuille active en colonne A)
(testé sur W10 avec Excel 2013)
VB:
Option Explicit

' Requires references to Microsoft Shell Controls and Automation
Public Sub Example_Bis()
    Dim myFolderItem As FolderItem
    Dim i&
    i = 1
    For Each myFolderItem In ftpList("speedtest.tele2.net/upload", "anonymous", "anonymous") ' username: anonymous, password: anonymous
        'Debug.Print myFolderItem.Name, myFolderItem.IsFolder ' demo
        Cells(i, 1) = myFolderItem.Name
        i = i + 1
    Next
End Sub

' Returns a FolderItems collection from the FTP server
Private Function ftpList(strFTPlocation As String, Optional strUser As String, Optional strPassword As String) As FolderItems
    Dim myShell As New Shell
    Dim strConnect As String
    
    If strUser <> "" Then strConnect = strUser & ":" & strPassword & "@"
    Set ftpList = myShell.Namespace("FTP://" & strConnect & strFTPlocation).Items '("ftp://user:password@ftp.site.com")
End Function
 

johnpeter

XLDnaute Nouveau
Bonjour et Merci, j'ai honte ! J'ai tellement cherché sur les forums... Par contre si je me débrouille pas trop mal en vba je suis absolument nul en ce qui concerne Microsoft. J'ai bien activé "Microsoft Shell Controls and Automation" (il faudra que je trouve une macro qui l'active sur les PC) J'ai modifié votre code : For Each myFolderItem In ftpList("speedtest.monsite.com/web/top_20/upload", "monsite_monsite", "monpass") et si votre exemple fonctionne bien le mien ne donne rien ! (j'ai mis mon site parceque nous somme en public sinon je vous aurai donné le réel bien volontiers)
 

Staple1600

XLDnaute Barbatruc
Re

Tout ce que je peux dire, c'est qu'avec le serveur FTP dans l'exemple que j'ai posté, le code VBA fonctionne
Je ne vois pas pourquoi tu as laissé speedtest dans ta modif
Imaginons que l'URL de ton serveur réél est: ftp://monserveurftp.com/mondossier
alors la syntaxe sera:
For Each myFolderItem In ftpList("monserveurftp.com/mondossier", "login", "motdepasse")

Sinon tester en suivant la même logique explicitée ci-dessous
(En résumé, configure ton serveur FTP avec un accès anonyme)
 

Staple1600

XLDnaute Barbatruc
Re

Quel fichier tu veux envoyer?
Et pourquoi faire?
La question était: Je sais envoyer les fichiers sur le Ftp par macro mais impossible de trouver comment les lister
Et cette question n'en est plus une depuis la publication du message#6 ;)

PS1: Nous sommes sur un forum, entre autres pour le partage des connaissances entre tous les membres.
Pas pour faire du peer-to peer (en tout cas je n'en fais point)

PS2: Puisque je suis membre du forum, j'essaie de suivre la charte du forum.
Notamment au niveau des données confidentielles. (cf RGPD)
Donc logiquement, si tu ne publies pas un fichier "sensible" sur un forum pour respecter sa charte, tu ne l'envoies pas non plus par mail au premier gugusse qui passe par là et dont tu ignores tout ;)

NB: le premier gugusse qui passe, c'est de moi qu'il s'agit ;)
Je voudrais pas fâcher les autres
 

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane