VBA et FTP

FaridP

XLDnaute Occasionnel
Bonjour à tous,

J'avais déjà abordé ce point il y a plusieurs mois sans réussite et j'ai eu beau chercher depuis, je n'ai toujours aucune solution...

Voici mon problème : j'ai en cellule A1 le nom d'un fichier et je souhaiterais vérifier si ce fichier existe sur un serveur FTP. Si c'est le cas, je mets "OK" en A2 et sinon "ABSENT" (pas de soucis sur cette dernière partie).

Je parviens sans problème à télécharger ou récupérer un fichier sur le FTP mais impossible de simplement vérifier s'il existe sur ce dernier.

Si je n'avais pas des centaines de fichiers à traiter, je pourrais tous les télécharger mais je ne peux pas opter pour cette "solution".

Quand je pense que c'est super simple à faire pour des fichiers situés sur un disque local ou sur un réseau, ça me rend dingue que ce soit aussi compliqué quand il s'agit d'un FTP.

Merci à tous pour votre aide et bon week-end,

Farid
 

FaridP

XLDnaute Occasionnel
Re : VBA et FTP

Re Soft',

Pour le dernier, j'ai la même erreur que le 1er en revanche pour le second j'obtiens un résultat qui me semble être l'extension du fichier avec la une partie de la date (au format inversé MM/JJ) mais cette date correspond à la date dé dépôt du fichier suivant sur le FTP.
 

FaridP

XLDnaute Occasionnel
Re : VBA et FTP

Tu parles, c'est toi qui m'as trouvé la solution.

Moi j'ai juste compté les caractères dans la cellule :)

Encore merci pour tout ce temps que tu m'as donné, ta patience et tes solutions.

Passe une bonne nuit, une bonne semaine et je te dis à très bientôt (pas pour un casse tête juste pour te saluer ;)).

Farid
 

FaridP

XLDnaute Occasionnel
Re : VBA et FTP

Salut Soft',

Je ne te relance pas sur le sujet, je vais laisser tomber mais je voulais juste te donner un complément d'info...

Bizarrement, ça marche dans 90% des cas mais pour certains fichiers, je n'ai soit rien, soit une partie de la taille mélangée à d'autres données.

Tant pis. En tout cas, merci pour tout ce que tu as fait pour moi.

Bonne journée à toi.

Farid
 

Softmama

XLDnaute Accro
Re : VBA et FTP

Bonjour,

Essaie de remplacer
Code:
If A > 0 Then Cells(i, 7) = Mid(CC, A + Len(TT) + 26, 11)

par :
VB:
Dim B as Integer, t as Integer, X as String
If A > 0 Then 
  CC = Mid(CC, A + Len(TT)) 'je coupe la partie texte à partir de quand je trouve le nom du fichier, je suppose que la taille du fichier se trouvera ensuite, représentée par un emplacement avec des ',', d'après ce que j'ai vu au préalable.
  B = Instr(CC, ",")  'Recherche de la 1ère virgule qui représente la taille du fichier
  t = B
  Do While Mid(CC, t, 1) <> " " 'Retour en arrière jusqu'au 1er caractère vide (début de la taille)
    t=t-1
  Loop
  B = t + 1: t = B
  X = ""
  Do While Mid(CC,t, 1) <> " " 'Recherche en avant de l'espace de fin (fin de la taille)
    If Mid(CC,t, 1) Like [0-9] then X = X & Mid(CC,t, 1) 'Récupération des chiffres qui composent la taille du fichier
    t = t+1
  Loop
Cells (i,7) = Val (X)  ' affichage en colonne G
 

FaridP

XLDnaute Occasionnel
Re : VBA et FTP

Bonjour Soft',

Je suis un peu gêné de te dire ça mais j'ai avancé sur mon code et je n'arrive pas à placer la partie que tu viens de m'envoyer ...

J'en suis là :
VB:
Sub gogogo()

Dim motdepassevrai As String
Dim motdepasseboite As String

motdepassevrai = "xxx"
motdepasseboite = InputBox("Veuillez saisir le Mot de Passe")


    If motdepasseboite <> motdepassevrai Then
    MsgBox ("Mot de Passe incorrect !")
    Exit Sub
End If


Set IE = New internetExplorer
Dim IP, Login, PassWord
IP = "XX.XX.XX.XX"
Login = "XXX"
PassWord = "XXX"
i = 2
Range("Enreg").ClearContents


    Do Until Sheets(1).Cells(i, 1).Value = ""
    
        If Mid(Sheets(1).Cells(i, 3).Value, 4, 2) = Mid(Range("Mois").Value, 4, 2) Then
            
        Presta = Sheets(1).Cells(i, 2).Value
                
        IE.Navigate "ftp://" & Login & ":" & PassWord & "@" & IP & Presta 'Renseigner l'Url du FTP
                
          
        Do While IE.readyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
        
        TT = Sheets(1).Cells(i, 1).Text
        CC = IE.document.body.innerText
        A = InStr(CC, TT)
        
        Sheets(1).Cells(i, 6) = IIf(A > 0, "Ok", "Absent")
             
        i = i + 1
        
        Else:
        Sheets(1).Cells(i, 6).Value = "Hors Période"
        
        i = i + 1
        
        End If
    
    Loop


MsgBox ("Traitement Terminé")
Set IE = Nothing

Sheets(2).PivotTables("Tableau croisé dynamique1").PivotCache.Refresh

End Sub
 

Softmama

XLDnaute Accro
Re : VBA et FTP

Re,

Je ne suis plus devant un ordinateur là, mais à priori, faut placer le tout avant le 1er i=i+1

Si ça marche pas, je me pencherai mieux dessus en rentrant

Ha et je viens de voir que j'ai oublié de coller un End If à la fin de ce que je t'ai envoyé.
 
Dernière édition:

FaridP

XLDnaute Occasionnel
Re : VBA et FTP

Re,

Tour fonctionne mais le résultat renvoyé est 0 à chaque fois.
Or, les fichiers existent et ont une taille supérieure à 5Mo.

C'est vraiment pas simple du tout cette histoire !

Franchement, voir comment tu te prends la tête là-dessus alors que tu as déjà solutionné mon problème, ça m'ennuie.

Là, c'est plus pour la forme et pour aller plus loin que je veux vérifier que la taille du fichier est cohérente alors je te le dis très sincèrement : ne te casse pas la tête ! :)
 

Softmama

XLDnaute Accro
Re : VBA et FTP

Re,

Ha ben erreur de ma part (je te rassure, je vois ça en 10s maxi à chaque fois, ça n'occupe pas tout mon temps...), essaie en remplaçant :
Code:
Like [0-9]

par
Code:
Like "[0-9]"

Mais ne pouvant tester le code, je te note à chaque fois de tête, et donc y a souvent des oublis / erreurs, mais à priori, on n'est plus très loin du but, alors certes je m'entête, mais c'est parce que j'ai le sentiment qu'on a déjà trouvé le plus dur.
 

FaridP

XLDnaute Occasionnel
Re : VBA et FTP

Arrête je vais devenir fou si tu me dis que tu fais en 10 secondes ce que je suis incapable de faire en plusieurs mois.

D'ailleurs quand tu écris "on a déjà trouvé le plus dur", tu veux TU as déjà trouvé le plus dur :):):).

Je teste ta modif' de suite
 

Discussions similaires

Réponses
6
Affichages
335
  • Résolu(e)
Microsoft 365 Transfert FTP
Réponses
15
Affichages
2 K

Statistiques des forums

Discussions
312 300
Messages
2 087 008
Membres
103 429
dernier inscrit
PhilippeH