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
Re

Désormais, cela fonctionne en manuel.
Essaie en modifiant ton mot de passe (dans lequel tu n'utiliseras ce caractère: @"
Je dis cela à l'intuition quand je lis cela dans les commentaires du code d'origine.
myShell.Namespace("FTP://" & strConnect & strFTPlocation).Items '("ftp://user:password@ftp.site.com")
 

johnpeter

XLDnaute Nouveau
Depuis maintenant 7 h j'ai fait tous forum et tout essayé et impossible de récupérer cette liste alors que cela à première vue ne semble pas sorcier...
Si vous avez encore un peu de patience pour m'aider je vous en serai infiniment reconnaissant... il est 2 h et je vais me coucher ! Merci
 

Roland_M

XLDnaute Barbatruc
bonjour,


j'ai essayé en direct on arrive bien sur le site, enfin l'accès aux codes d'entrée !
ensuite j'ai essayé le code vba, aucun résultat !

puis j'ai vu ceci: strPassword & "@"
alors qu'il est déjà ici "04b45!173@"

il y en a un en trop, je l'ai donc supprimé !
et là ça boucle mais sans résultat non plus !?

j'ai essayé ceci tel qu'il est programmé
FTP://annonario_barros:04b45!173@barros-galerie.com/TARIFS2018
puis
FTP://annonario_barros:04b45!173@/barros-galerie.com/TARIFS2018
FTP://barros-galerie.com/TARIFS2018/annonario_barros:04b45!173@
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Roland_M
A propos du @, c'est ce que je disais dans le message#17...;)

Sauf qu'il est impératif qu'il soit dans la ligne de commande (comme l'explique le commentaire du code VBA initial)
'("ftp://user:password@ftp.site.com")
D'où ma proposition de changer le mot de passe.
 

johnpeter

XLDnaute Nouveau
Bonjour à tous, J'ai passé mon dimanche, malgré un beau temps, à chercher et faire tous les essais proposés dans les forums divers, impossible de réussir, j'ai même bidouillé avec la macro qui envoi sur ftp pour avoir la dernière date de modification d'un classeur, rien n'y fait... J'ai trop de classeurs pour les télécharger et lister les caractéristiques de chacun. Si un superman d'excel trouve la solution, même si c'est pas dans la déontologie du forum, je promet le champagne. Sourire fatigué. Merci à tous
 

johnpeter

XLDnaute Nouveau
Bonjour, bien sur et j'ai tout essayé. J'ai trouvé le post en Anglais qui t'avais donné cette procédure. Si tu la lis en entier c'est la même conversation que la notre. Lol. Sans réponse malheureusement pour le demandeur cette procédure ne marchait qu'avec l'exemple !
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

"Ca marche", c'est un peu court, camarade ;)
Ça marche suite à quelle modification ?
Qu'as tu fait entre 15h19 et 17h38 pour qu'au final le code que je te proposais dans le message#6 soit annoncé comme fonctionnel dans le message#26 ;) ?

Pour ce qui est des caractéristiques des fichiers, ça ne devrait pas être compliqué.
(en cochant la référence idoine dans VBE)
 

Staple1600

XLDnaute Barbatruc
Re

En creusant un peu, y'a du mieux (mais de nouveaux problèmes surviennent ;))
VB:
Option Explicit

' Requires references to Microsoft Shell Controls and Automation
Public Sub Example_Ter()
    Dim myFolderItem As FolderItem
    Dim i&
    i = 2
    [A1:E1] = Array("Nom Fichier", "Date modif", "Chemin", "Type", "Taille")
    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
        Cells(i, 2) = myFolderItem.ModifyDate
        Cells(i, 3) = myFolderItem.Path
        Cells(i, 4) = myFolderItem.Type
        Cells(i, 5) = myFolderItem.Size
        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
J'ai changé le mot de passe, ce qui était la bonne solution. Ensuite retour aux basics et reprise de la procédure d'origine, c'est trop idiot comme toujours, à force de chercher et modifier des caractères incorrects polluent la base. Plus toutes ces heures de fatigue à tourner en rond, je suis désolé de tous ces posts que j'aurai pu éviter. A 70 ans je continue à apprendre...
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 453
Messages
2 088 551
Membres
103 881
dernier inscrit
malbousquet