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,
Configuration: Windows XP Internet Explorer 6.0

18 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. 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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  4. Ferdaous
     
    rebonjour....
    Alors c fini le tour de france ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  7. 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
  8. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  9. 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
  10. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    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
  11. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  12. 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
  13. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    MAIS C'EST DES FICHIERS OU DES DOSSIERS ?
    je vais pas recommencer N fois !
    0
  14. 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
  15. 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
  16. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. 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
  17. Ferdaous
     
    merci infinimennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnntttttttttttttttttttttttt.
    ça a marché :)
    0
  18. 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
  19. 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