IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Recuperer la date de modification et la taille d'un fichier Dans excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 0
    Points
    0
    Par défaut Recuperer la date de modification et la taille d'un fichier Dans excel
    Bonjour;

    J'utilise actuellement une macro dans Excel pour charger une liste des fichiers dans un Dossier (et sous dossiers Aussi) dans une feuille. La macro récupère le non du dans une colonne et génère le lien hypertexte vers ce fichier dans la deuxième colonne.

    Je cherche à ajouter une troisième colonne qui récupère la taille du fichier et une quatrième qui récupère sa date de modification.

    Voici le code que j'utilise dans un module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    Public nb As Long
    Sub Bouton1_Cliquer()
    Dim chemin As String
        nb = 0
        chemin = "C:\Bibliotheque\Modèles\"
        Lister chemin
    End Sub
     
    Public Function Lister(chemin As String)
    Dim fs, Rep As Variant, NewRep As String, Nomfich As String
        Set fs = CreateObject("Scripting.FileSystemObject")
        Lister = fs.GetFolder(chemin).Files.Count
        Nomfich = Dir(chemin & "\*.*")
     
        Do While Nomfich <> ""
            nb = nb + 1
            Cells(nb, 1) = Nomfich 'liste dans la feuille de calculs active
            Cells(nb, 2).Hyperlinks.Add Cells(nb, 2), chemin & "\" & Nomfich
            Nomfich = Dir()
        Loop
        'Pour chaque sous-répertoire, appel récursif de Lister
        For Each Rep In fs.GetFolder(chemin).SubFolders
            NewRep = Lister(Rep.Path)
        Next Rep
    End Function
    Merci d'avance de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je te conseil la lecture de ce tuto : http://warin.developpez.com/access/fichiers/

    De plus, tu mélanges du FSO avec de vieilles instructions comme DIR.

    Utilises tout avec la même bibliothèque, et avec FSO, tu peux parcourir les fichiers d'un répertoire et récupérer toutes les propriétés que tu souhaites.

    Philippe

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Bonjour Philippe et merci pour ta réponse rapide!

    A vrai dire je suis "très débutant" en VBA.
    Le script que j'utilise, je l'ai juste chopé sur internet il y a quelque temps!

    Peux tu STP me le corriger, et m'expliquer d'avantage sur les fonctions que je dois utiliser pour récupérer les donnes que je cherche?

    Merci

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Dans le site que tu m'as donner j'ai trouvé les deux fonctions suivantes:

    DateLastModified : Date de dernière modification
    Size : Taille en octet du fichier

    Peux tu me montrer comment les insérer dans mon code.

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello,
    en reprenant l'exemple du tuto indiqué par Philippe ( I-D la gestion des fichiers), pour récupérer une des propriétés d'un fichier , il suffit de faire <objet fichier>.<propriété>

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub LirePropFichier()
    On Error GoTo err
    Dim oFSO As Scripting.FileSystemObject
    Dim oFl As Scripting.File
     
    'Instanciation du FSO
    Set oFSO = New Scripting.FileSystemObject
    'Instanciation de l'objet File
    Set oFl = oFSO.GetFile("F:\temp\essai.xml")
    MsgBox (" Fichier : " & oFl.Name & " - Taille : " & oFl.Size & _
             " - Dernière modification : " & oFl.DateLastModified)
    fin:
     Exit Sub
     
     
    err:
            Select Case err.Number
                Case 53: MsgBox "Le fichier est introuvable"
                Case Else: MsgBox "Erreur inconnue"
            End Select
     
        Resume fin
    End Sub
    Attention ne pas oublier de rajouter la librairie Microsoft Scripting Runtime dans les Références de Visual Basic (outils/références).

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Bonjour Jurassic-pork

    J'ai essaiyer t'ingerer ton code dans le mien; mais ça me donne une erreur 53!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Public nb As Long
    Sub Bouton1_Cliquer()
    Dim chemin As String
        nb = 0
        chemin = "N:\Bibliotheque\Modèles\500-599 Prod&Meth"
        Lister chemin
    End Sub
     
    Public Function Lister(chemin As String)
    Dim fs, fl, Rep, f As Variant, NewRep As String, Nomfich As String
        Set fs = CreateObject("Scripting.FileSystemObject")
            Lister = fs.GetFolder(chemin).Files.Count
            Nomfich = Dir(chemin & "\*.*")
            fl = fs.GetFile(Lister & Nomfich)
     
        Do While Nomfich <> ""
            nb = nb + 1
            Cells(nb, 1) = Nomfich 'liste dans la feuille de calculs active
            Cells(nb, 2).Hyperlinks.Add Cells(nb, 2), chemin & "\" & Nomfich
            'Cells(nb, 3) =
            'Cells(nb, 4) =
            Nomfich = Dir()
        Loop
        'Pour chaque sous-répertoire, appel récursif de Lister
        For Each Rep In fs.GetFolder(chemin).SubFolders
            NewRep = Lister(Rep.Path)
        Next Rep
    End Function
    J'ai attaché le fichier excel que j'utilise.

    ça marche pour le non et lien hypertexte et pas pour la date de modification et la taille.

    (pour l'utiliser il suffit juste de remplacer le chemin du dossier par le chemin du dossier voulu)

    Merci de jeter un coup d’œil et de me dire qu'est ce que vous en penser

    Liste_Fichiers.xlsm

  7. #7
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir Liste des propriétés de fichiers en l'adaptant à ton cas via objFolder.GetDetailsOf(strFileName, xyz)Taille : 1 et Date modif : 3 dans la procédure Private Sub ListeProprietesFichier_GetDetailsOf(sFichier As String, k As Long).

    Autrement dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                With ShFichiers
                    .Cells(k, 2) = objFolder.GetDetailsOf(strFileName, 1)
                    .Cells(k, 3) = objFolder.GetDetailsOf(strFileName, 3)
                End With
    Images attachées Images attachées  

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Bonjour;

    Probleme resolu!

    je laisse le fichier pour ceux qui veulent l'exploiter!Liste_Fichiers [Resolu].xlsm

  9. #9
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, pourquoi multiposter ? cela n'encourage personne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/05/2016, 08h01
  2. Réponses: 2
    Dernier message: 24/10/2012, 23h04
  3. Recuperer la date de modification d'un fichier
    Par deniss4444 dans le forum Débuter
    Réponses: 5
    Dernier message: 27/04/2009, 22h39
  4. date de modif d'un doc html par fichier .js externe
    Par gandalf25 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/04/2008, 21h14
  5. Recuperer la date de modification d'une table
    Par kevain_09 dans le forum VBA Access
    Réponses: 8
    Dernier message: 19/06/2007, 07h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo