Un logiciel de transfert FTP (sous VBA Excel)



Pour mettre à jour un site Internet, on utilise généralement un transfert de fichier par protocole FTP (pour File Transfer Protocol).
De nombreux logiciels commerciaux (souvent gratuits) permettent ce transfert ; sous Windows XP, on peut utiliser directement l'explorateur Windows ; mais on peut aussi utiliser un script écrit sous DOS (cliquez ici), ou bien une macro VBA avec l'aide des fonctions API.
L'avantage est que la programmation permet d'automatiser et de personnaliser le transfert.
Cet avantage est particulièrement marqué quand une série de pages html sont générées par une macro VBA. Il suffit alors d'ajouter quelques lignes de code pour que les pages soient directement publiées sur le Web.

Le fichier Excel proposé au téléchargement (fichier zip, cliquez ici) contient plusieurs macros qui permettent
- de sélectionner des fichiers sur le disque local puis de les envoyer sur le serveur FTP
- ou bien de sélectioner un répertoire sur le disque local puis de transférer sur le serveur FTP tous les fichiers de ce répertoire répondant à certains critères (date de dernière modification, type de fichier)
- et d'explorer les fichiers et répertoires situés sur le serveur FTP.

Le fichier Excel comprend trois onglets.
Les deux premiers permettent de saisir les paramètres relatifs
- au transfert FTP (adresse du serveur, numéro du port; nom du répertoire devant recevoir les fichiers, login et mot de passe)
- et aux fichiers à transférer (adresse du répertoire local, âge maximum des fichiers à transférer, extension des fichiers à transférer).
La saisie de ces données est facultative, elle ne sert qu'à mémoriser les données que l'on doit utiliser fréquemment.
Les deux onglets sont munis de boutons qui permettent de lancer la macro de transfert. Cette macro demande d'abord les données relatives aux fichiers à transférer et au serveur FTP (en proposant le cas échéant les valeurs par défaut), puis lance le transfert.
Le troisième onglet permet l'exploration d'un répertoire localisé sur le serveur Web. La macro demande les informations concernant le serveur FTP et l'adresse du répertoire à explorer et affiche dans la page Excel la liste des fichiers et sous-répertoires, avec leur taille et leur date de dernière modification.

Cliquez ici pour télécharger le fichier Excel zippé

Le fonctionnement du logiciel est basé sur l'exploitation des possibilités offertes par certaines fonctions Windows via les API :
InternetOpen permet d'établir une connexion Internet (exemple)
InternetConnect permet la connexion avec le site FTP (en utilisant login et mot de passe)
FtpSetCurrentDirectory sélectionne sur le site Web le répertoire choisi
FtpPutFile se charge du transfert effectif du fichier (exemple). On aurait pu aussi utiliser FtpGetFile pour télécharger un fichier depuis le serveur ftp.
FtpFindFirstFile et InternetFindNextFile permettent l'exploration des fichiers contenus dans un répertoire localisé sur le site Web (et retournent toutes les données concernant ces fichiers, nom, taille, type, dates...).

Enfin, on utilise également SHBrowseForFolder et SHGetPathFromIDList pour afficher une boite de dialogue contenant l'arborescence des répertoires locaux (exemple).

Les macros sont réparties sur trois modules, le premier contient toutes les déclarations de fonctions API (et de types d'objets personnalisés), le second contient la macro de transfert de fichiers et la troisième contient la macro permettant d'explorer un répertoire distant.

Les macros sont assez faciles à comprendre et peuvent être adaptées en fonction des besoins.

Cliquez ici pour télécharger le fichier Excel zippé

Cliquez ici pour télécharger une macro simple d'upload par ftp






- Les API
- Les correspondances entre macros VBA, macros Excel 4, fonctions de feuilles de calcul et API.