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 :

Récupère la date de sauvegarde de fichiers


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 123
    Par défaut Récupère la date de sauvegarde de fichiers
    Bonjour

    J'ai des tâches planifiées qui mettent à jour des fichiers la nuit. Des fois ça plante, et il me faut trouver le fichier qui a planté.

    Mon idée serait, depuis un fichier excel, lister tous mes fichiers qui doivent se rafraichir la nuit et affichier dans la cellule d'à côté la date de dernière mise à jour.

    Est-ce possible via VBA excel, ou faut-il se contenter de l'explorateur Windows, guère pratique ?

    bonne soirée

  2. #2
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Bonjour,

    Voici une macro te permettant de lister les fichiers dans un répertoire:
    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
     Sub ListerFichier()
        Dim Chemin As String, Fichier As String
        Dim i As Integer
     
        Range("A:A").ClearContents
        'Définit le répertoire contenant les fichiers
        MsgBox "Vous devez sélectionner un fichier dans le répertoire à lister."
        Fichier = Application.GetOpenFilename
        Chemin = Left(Fichier, InStrRev(Fichier, "\"))
     
        'Boucle sur tous les fichiers du répertoire.
        Fichier = Dir(Chemin & "*.*")
        Do While Len(Fichier) > 0
            i = i + 1
            'écrit le résultat dans le tableau.
            Cells(i, 1) = Fichier
            Fichier = Dir()
        Loop
    End Sub
    Et voici une macro qui te permet d'obtenir les propriétés d'un fichier:
    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
    Private Sub ListeProprietesFichier_getDetailsOf(Fichier As String)
        'source:
        'http://www.microsoft.com/resources/documentation/windows/2000/server/
        'scriptguide/en-us/sas_fil_lunl.mspx
        '
        'Nécessite d'activer la référence Microsoft Shell Controls and Automation
        '
        Dim Fso As Object, oFichier As Object
        Dim objShell As Shell32.Shell
        Dim objFolder As Shell32.Folder
        Dim strFileName As Shell32.FolderItem
        Dim Chemin As String, NomFich As String, Resultat As String
        Dim i As Byte
     
        '-----
        Set Fso = CreateObject("Scripting.FileSystemObject")
        Set oFichier = Fso.GetFile(Fichier)
        Chemin = Fso.GetParentFolderName(oFichier)
        NomFich = Fso.GetFileName(oFichier)
        '-----
     
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.Namespace(Chemin)
        Set strFileName = objFolder.Items.Item(NomFich)
     
        For i = 0 To 34
            'Cet exemple n'affiche pas les propriétés vides
            If objFolder.GetDetailsOf(strFileName, i) <> "" Then _
            Resultat = Resultat & objFolder.GetDetailsOf(objFolder.Items, i) _
            & ":  " & objFolder.GetDetailsOf(strFileName, i) & vbLf
        Next
     
        MsgBox Resultat
    End Sub
    Avec ces deux macro et un peu d'adaptation, il sera possible de faire ce que tu veux!

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Il me semble que le problème est à prendre dans l'autre sens ...

    C'est dans ton application de sauvegarde, qu'il faut agir.

    Il faut qu'elle génère tout simplement un fichier log ou un fichier txt, ainsi rempli :
    A chaque fichier trouvé dans la liste à sauvegarder : inscription du fichier dans le fichier log puis sauvegarde
    A la fin de chaque sauvegarde terminée : un "drapeau" (un X par ezxemple)

    Le lendemain : examen du fichier log.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 123
    Par défaut
    Bonjour et merci pour vos réponses.

    Cela m' a pris 6 mois pour re-venir là dessus, mais j'avais besoin d'acquérir de l'expérience.

    Donc finalement, j'ai opté pour ceci

    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
    Sub resultat()
     
    Dim t1 As Date
    Dim chemin As String
    Dim v_tb As Range
    Dim i As Integer
    Dim j As Integer
     
    'Récupération des dates de mises à jour des fichiers pdf
    'chemin vers les dossiers et fichiers dans la boucle
    '--------------------------------------------------------
     
    chemin = "\\Z:\GL\Automatique\"
     
    Sheets("results").Select
     
    Set v_tb = Range("a4").CurrentRegion
     
    'la ligne 1 du tableau contient le nom des fichiers que l'on trouve dans chaque répertoire
    ' la colonne 1 contient le nom des répertoires
     
    For i = 2 To v_tb.Rows.Count
        For j = 2 To v_tb.Columns.Count
     
    t1 = FileDateTime(chemin & v_tb.Cells(i, 1) & "\" & v_tb.Cells(1, j) & """")
        v_tb.Cells(i, j) = DateValue(t1)
     
        Next
    Next
    End sub
    @+

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

Discussions similaires

  1. Sauvegarder un fichier avec la date et l'heure
    Par Papoux dans le forum VBScript
    Réponses: 6
    Dernier message: 14/07/2014, 23h56
  2. Réponses: 19
    Dernier message: 08/07/2014, 14h02
  3. Concatener la date au du nom fichier
    Par peppena dans le forum Linux
    Réponses: 5
    Dernier message: 09/02/2009, 12h53
  4. Date de sauvegarde d'un fichier
    Par FEF dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/02/2005, 09h04
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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