VBA: calculer la taille de fichier (en octets, ko, Mo et Go)



Dans cette article, vous trouverez les explications comment retrouver la taille de fichier via VBA. Cette fonctionnalité peut être utile pour afficher la taille de(s) fichier(s) à l'utilisateur, pour vérifier si un fichier est complète ou endommagé ou par exemple pour vérifier si l'espace de stockage est suffisamment grand que pour accueillir un fichier particulier…

Fonction VBA de base: FileLen()

VBA contient déjà à la base une fonction qui remplit cette fonction. Il s'agit de la fonction FileLen. Cette fonction utilise un argument – le chemin complet du fichier à vérifier – et retourne comme résultat la taille du fichier en octets.

L'utilisation de base ressemblera donc à ceci:

x = FileLen("C:\MonDossier\MonFichier.pdf")

Attention: si le fichier n'existe pas, la fonction retourne une erreur. Vous pouvez donc combiner cette fonction avec la vérification si le fichier existe. Vous obtiendrez alors un code VBA comme celui-ci:

Comme la taille en octets n'est pas très utilisée, on peut facilement convertir le résultat en d'autres unités plus utilisées.

Taille de fichier en ko, Mo ou Go

Pour se faciliter le travail, on peut utiliser les fonctions VBA qui suivent.

 

Pour plus de flexibilité, on peut créer les fonctions suivantes qui utilisent le nom de fichier comme argument:

Et si vous voulez afficher le résultat à l'utilisateur, il est peut-être souhaitable d'ajouter les unités au résultats. Attention, le résultat devient alors une chaîne de caractères (et n'est donc plus considéré comme un numéro) et vous ne pourrez pas l'utiliser pour des calculs ou comparaisons…

Conclusion

Voilà, vous savez  maintenant comment retrouver la taille d'un fichier en VBA et la transformer en une unité de votre choix. Si vous voulez en savoir plus sur les conversion des unités informatiques, vous pouvez consulter la page de Wikipédia dédié à Octet.

 

1 0



Partagez cette page...
Share on FacebookShare on Google+Share on LinkedInTweet about this on TwitterShare on RedditShare on TumblrDigg thisEmail this to someone

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.