Renvoyer la taille d'un fichier sur excel

Ferdaous -  
 Ferdaous -
Bonjour,
Je voudrais savoir si c'est possible de créer sur une feuille excel deux colonnes: la 1ère contient un lien vers un fichier et la 2ème affiche la taille de fichier. la taille doit être automatiquement modifiée dès qu'on change de fichier.
merci d'avance pour votre aide,
A voir également:

18 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour

qu'il y a t'il dans ce que tu appelles "lien"? hypertexte, nom complet , lien avec une cellule d'un autre fichier

pour de te donner le renseignement, il faudrait le nom complet (chemin\nomfichier.extension
0
Ferdaous
 
la 1ère colonne contient des cellules avec de simples noms que je relie par un lien hypertexte à un fichier stocké dans le disque dur
dans la 2ème colonne je voudrais voir la taille de ce fichier (comme pour les pages web où on propose de télécharger des docs, on te montre le nom de ce fichier avec sa taille devant)
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Je regarde ça tout a l'heure: le tour de france passe pas loin de chez moi (aubenas) et j'aimerais voir ma baraque et mon village vus de l'hélico ( la course, m'en f.... un peu)

pour apprendre les macros tu as aussi ce site super-sympa et pédagogique:
www.info-3000.com
ce que tu demandes ici (taille fichier) demandes du langage VBA (niveau débutant averti)
0
Ferdaous
 
rebonjour....
Alors c fini le tour de france ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
hé oui, c'est fini mais j'ai pas vu my home mais le village d'à coté (pistonnés,va!) :-)...

Dans ta cellule il faudrait le nom complet du fichier par exemple:
D:\documents\excel\essai\excel_word\jolis_boutons.xls
C'est des classeurs Excel ?
0
Ferdaous
 
c des repertoires qui contiennent des fichiers excel, word,pdf...et moi je voudrais voir apparaître automatiquement la taille de ces répertoires dans les cellules de la colonne en face
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
c'est des répertoires ? bon j'allais te copier une fonction personnalisée
donc je reccommence

pour le fun la fonction fichier ci dessous

Function lire_taille(cell_hyper As Range)
lig = cell_hyper.Row
 fich = cell_hyper
    Workbooks.Open Filename:=fich
    Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set fichier = objFSO.GetFile(fich)
        lire_taille = "taille: " & Int(fichier.Size / 1024) & " Ko"
        ActiveWorkbook.Close
    Set objFSO = Nothing
End Function
0
Ferdaous
 
je te rappelle que je dois faire ça sur excel, alors ou est ce que je vais placer ce que tu viens d'écrire?
0
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
Bonjour,
Pour créer des fonctions perso, un ptit tuto ici : https://silkyroad.developpez.com/vba/fonctions/
la fonction :
Function filesize(chemin As String)

Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(chemin) Then
    Set fic = fso.GetFile(chemin)
    If (fic.Size / 1024) < 1500 Then
        filesize = Round((fic.Size / 1024), 0) & " ko"
    Else: filesize = Round(((fic.Size / 1024) / 1024), 2) & " Mo"
    End If
    
Else: filesize = "Fichier non trouvé"
End If

End Function
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
J'arrive!!!
le titre de ton message parlait bien de fichier pas de dossier, j'ai recommencé et je ne suispas une machine à pondre des macros!

dans ta liste de liens hyper le chemin doit apparaitre par ex:
D:\documents\excel\essai

voici la fonction:
Function lire_tailledossier(cell_hyper As Range)
    Dossier = cell_hyper
    Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set repertoire = objFSO.GetFolder(Dossier)
        lire_tailledossier = "taille: " & Int(repertoire.Size / 1024) & " Ko"
    Set objFSO = Nothing
End Function


comment installer
1/dans outil-macro-sécurité, tu mets à "moyen" OK

2/tu vas dans VBA par Alt+F11
insertion-module
tu copies-colles le patois VBA ci dessus

3/tu te met dans la cellule où tu veux indiquer la taille
insertion-fonction-fonction personnalisée
tu sélectionnes lire_tailledossie
et tu cliques dans la cellule-lien

si tu veux en Mo
lire_tailledossier = "taille: " & Int(repertoire.Size / (1024*1024) & " Mo"
0
Ferdaous
 
J'ai placé ton script dans visual basic editor et j'ai vu apparaitre la fonction liretaille dans la liste des fonctions excel de mon classeur. donc c bon.
J'ai la seule contrainte que la première colonne ne doit pas contenir les adresses saisies texto mais des noms liés aux fichiers par un lien hypertexte(c'est dans un souci d'assurer la portabilité de tout le bloc)
que dois-je modifier dans ton script?
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
MAIS C'EST DES FICHIERS OU DES DOSSIERS ?
je vais pas recommencer N fois !
0
Ferdaous
 
au fait, je t'ai envoyé mon dernier msg sans avoir lu les tiens
je crois que ça va marcher maintenant
merci infiniment pour ton aide
merci encore une fois...............
0
Ferdaous
 
j'ai toujours un petit problème, il faut que j'écrive littéralement l'adresse quand je fais un lien hypertexte ça ne marche pas . et moi je crains qu'en résolvant le pb d'actualisation automatique de la taille des dossiers je crée un autre pb qu'est celui d'actualisation des adresses
exple:
un fichier qui a pour adresse : c:/mesdocuments/dossier1/dossier2 a pour taille X Octets
si je change l'enplacement de tout le bloc par expl : c:/bureau/dossier1/dossier2 aura pour taille fichier non trouvé!
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
voila la fonction avec un nom différent du chemoin
par exemple texte visible "blabla"
dirigeant vers C:\mes documents

Function lire_tailledossier(cell_hyper As Range)
    dossier = cell_hyper.Hyperlinks(1).Address
    Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set repertoire = objFSO.GetFolder(dossier)
        lire_tailledossier = "taille: " & Int(repertoire.Size / 1024) & " Ko"
    Set objFSO = Nothing
End Function
0
Ferdaous
 
rebonjour,
j'a i un énorme problème cencernant le mm sujet!!!
au fait je n'arrive pas à garder à jour la feuille excel sur laquelle je travaille . une fois je ferme la feuille ma feuille se remplie de #VALEUR!
C'est dû a quoi?
Merci
0
Ferdaous
 
merci infinimennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnntttttttttttttttttttttttt.
ça a marché :)
0
Ferdaous
 
Rebonjour,
j'a i un énorme problème cencernant le mm sujet!!!
au fait je n'arrive pas à garder à jour la feuille excel sur laquelle je travaille . une fois je ferme la feuille ma feuille se remplie de #VALEUR!
C'est dû a quoi?
Merci
0
Ferdaous
 
re
eh oh s'il vous plait est ce que qlq'1 d'entre vous pourra m'aider?
merci de faire attention à mon msg
0