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 :

Rapatriement de la date de création fichier


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingé
    Inscrit en
    Juillet 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 20
    Points : 13
    Points
    13
    Par défaut Rapatriement de la date de création fichier
    Bonjour à tous,
    Petite problématique pour pouvoir rappatrier les dates de création de mes fichiers xls situé dans le répertoire blabla, vers mon fichier ouvert soit toto.xls colone 7, 8, 9 pour respectivement avoir, date de création, date de la dernière modification, date du dernier accès.

    J'ai une erreur de synthaxe sur la déclaration de "fichier" je ne comprends pas vraiment pourquoi.
    Pouvez vous m'aider?



    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
     
    Sub Chgt_donnees()
     
    Dim Compteur As Integer
    Dim Chemin_Rep As String
    Dim Objet_Fichier, Fichier
     
    Chemin_Rep = "moncheminwindows\blabla" 
    Application.FileSearch.LookIn = Chemin_Rep
    Application.FileSearch.Filename = "*.xls"
     
    If Application.FileSearch.Execute > 0 Then
        For Compteur = 1 To Application.FileSearch.FoundFiles.Count
     
        Set Objet_Fichier = CreateObject("Scripting.FileSystemObject")
        Set Fichier = Objet_Fichier.GetFile(Application.FileSearch.Found Files(Compteur))
     
        Worksheets("Feuil2").Select
        [A1].Offset(Compteur - 1, 7).Value = Fichier.DateCreated
        [A1].Offset(Compteur - 1, 8).Value = Fichier.DateLastModified
        [A1].Offset(Compteur - 1, 9).Value = Fichier.DateLastAccessed
        Next Compteur
     
    Else
    MsgBox "Pas de fichier disponible"
    End If
    End Sub
    EDIT: Existe t-il la même fonction en formule excel classique? car il existe bien AUJOURDHUI() mais ça renvois la date du jour il faudrait un truc du genre:
    DATECREATION(ANNEE();MOIS();JOUR())

  2. #2
    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

  3. #3
    Membre expérimenté Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Points : 1 482
    Points
    1 482
    Par défaut
    Bonjour
    Une proposition
    En plus tous tes fichiers en liens hypertextes
    Ouvre un nouveau classeur Excel, mets ce code dans un module, enregistre ce fichier, puis fait Alt F8, exécute le code, pointe vers le répertoire de ton choix, tu auras tout...
    Attention fait bien:
    'Nécessite d'activer la référence "Microsoft Scripting RunTime"
    'Dans l'éditeur de macros (Alt+F11):
    'Menu Outils
    'Références
    'Cochez la ligne "Microsoft Scripting RunTime".
    'Cliquez sur le bouton OK pour valider.



    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Sub AppelRépertoire()
    Dim Repert As FileDialog
    Dim Chemin As String
     
    Set Repert = Application.FileDialog(msoFileDialogFolderPicker)
    Repert.Show
    If Repert.SelectedItems.Count > 0 Then
        Chemin = Repert.SelectedItems(1)
        Set Repert = Nothing
        ListeFichiers Chemin
    End If
     
    End Sub
     
    Sub ListeFichiers(Repertoire As String)
    'Nécessite d'activer la référence "Microsoft Scripting RunTime"
            'Dans l'éditeur de macros (Alt+F11):
            'Menu Outils
            'Références
            'Cochez la ligne "Microsoft Scripting RunTime".
            'Cliquez sur le bouton OK pour valider.
    Dim Fso As Scripting.FileSystemObject
    Dim SourceFolder As Scripting.Folder, SubFolder As Scripting.Folder
    Dim FileItem As Scripting.File
    Dim i As Long
     
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = Fso.GetFolder(Repertoire)
    'Récupère le numéro de la dernière ligne vide dans la colonne A.
    i = Range("A65536").End(xlUp).Row + 1
    'Boucle sur tous les fichiers du répertoire
    For Each FileItem In SourceFolder.Files
        'Inscrit le nom du fichier dans la cellule
        Cells(i, 1) = FileItem.Name
        'Ajoute un lien hypertexte vers le fichier
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), Address:=FileItem.ParentFolder & "\" & FileItem.Name
        'Indique la date de création
        Cells(i, 2) = FileItem.DateCreated
        'Indique la date de dernier acces
        Cells(i, 3) = FileItem.DateLastAccessed
        'Indique la date de dernière modification
        Cells(i, 4) = FileItem.DateLastModified
        'Nom du répertoire
        Cells(i, 5) = FileItem.ParentFolder
        i = i + 1
    Next FileItem
    Columns("A:D").AutoFit
    '--- Appel récursif pour lister les fichier dans les sous-répertoires ---.
    For Each SubFolder In SourceFolder.subfolders
        ListeFichiers SubFolder.Path
    Next SubFolder
    Set Fso = Nothing
    Set SourceFolder = Nothing
    End Sub

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingé
    Inscrit en
    Juillet 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingé
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 20
    Points : 13
    Points
    13
    Par défaut
    Alors voilà ce que j'ai fait, en partant sur le 1er code

    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
    29
    30
    31
    32
    Sub ListFilesInFolder(strFolderName As String)
     
      ' necessite d'activer la reference Microsoft Scripting RunTime
      Static FSO As FileSystemObject
      Dim openSourceFolder As Scripting.Folder
      Dim openFile As Scripting.File
      Dim FLe As Worksheet
      Dim iRow As Long
     
      Set CLe = Workbooks("Statistiques.xls")
      Set FLe = CLe.Worksheets("Feuil2")
      Set FSO = CreateObject("Scripting.FileSystemObject")
     
      iRow = 2
      Set openSourceFolder = FSO.GetFolder(strFolderName)
      For Each openFile In openSourceFolder.Files
     
        FLe.Cells(iRow, 7) = openFile.DateCreated
        FLe.Cells(iRow, 8) = openFile.DateLastModified
        FLe.Cells(iRow, 9) = openFile.DateLastAccessed
     
        iRow = iRow + 1
      Next openFile
     
        Columns("G:I").Select
        Selection.NumberFormat = "m/d/yyyy"
     
    End Sub
     
    Private Sub test()
      ListFilesInFolder "W:\monchemin\"
    End Sub

    Peux être que ma question est passé inaperçu mais peut ton faire avec des formules excel afficher la date de création du fichier dans une cellule?

    Du genre:
    DATECREATION(ANNEE();MOIS();JOUR())

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040

Discussions similaires

  1. Journal date/heure création fichier MDC
    Par sylvie16 dans le forum Cognos
    Réponses: 3
    Dernier message: 16/02/2011, 13h12
  2. Date de création fichier ".txt"
    Par TimDe dans le forum LabVIEW
    Réponses: 1
    Dernier message: 02/12/2008, 16h29
  3. Réponses: 17
    Dernier message: 01/03/2005, 16h11
  4. Date de création d'un fichier
    Par daphne35 dans le forum Windows
    Réponses: 5
    Dernier message: 20/01/2005, 17h09
  5. Réponses: 4
    Dernier message: 16/04/2004, 08h20

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