Modification d'une macro pour récupération de date de modif

flosauveur69

XLDnaute Occasionnel
Bonjour,

j'ai cette macro1 qui me récupère une plage de cellules dans les classeurs qui sont dans le même répertoire que le fichier mère, j'aimerais aussi que cette macro me récupère la date de modification des classeurs et me la mette en A13 (pour le 1er classeur).

J'ai trouvé cette macro2 trouvée sur le net et un peu adaptée (correctement ou pas) et je ne vois pas comment l'intégrer, je pense qu'il faut la mettre dans la boucle pour qu'elle récupère cette date pour chaque fichier.

Merci de votre aide


macro1:
Public Sub cmdRecupere_Click()
Dim strWB As String, strFile As String

Application.ScreenUpdating = False
Application.EnableEvents = False

' Nom du classeur actuel
strWB = ThisWorkbook.Name

' Récupération du premier fichier dans le répertoire et sous repertoire
strFile = Dir(ThisWorkbook.Path & "\*.html")

' Boucle du 1er au dernier classeur dans le répertoire et sous repertoire
Do While strFile <> ""

If strFile <> strWB And Worksheets("Diél1").Columns("C").Find(strFile, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then
' Ouvrir le fichier
Workbooks.Open ThisWorkbook.Path & "\" & strFile

' Copie des données
Workbooks(strFile).Worksheets(1).Range("A11:C17").Copy
With Workbooks(strWB).Worksheets("Diél1")
.Range("A2").Insert xlDown 'insertion en ligne 2
.Range("c2:c18").ClearContents 'on ne garde que les données A2:B17
.Range("C2") = strFile
End With

' Fermeture du classeur
Workbooks(strFile).Close
End If

' Classeur suivant
strFile = Dir
Loop

Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox "Le traitement des fichiers est terminé.", vbInformation, "Traitement..."
End Sub


macro2:

If modif = True Then*
Sheets("Diél1").Range("A13").Value = Format(Date, "dd/mm/yyyy") & Format(Time, " hh/mm")*
End If*
 

flosauveur69

XLDnaute Occasionnel
Re : Modification d'une macro pour récupération de date de modif

J'ai modifié la macro de cette façon mais la date n'apparait pas, pourtant j'ai bien mis DateLastModified As String

Workbooks(strFile).Worksheets(1).Range("A11:C18").Copy
With Workbooks(strWB).Worksheets("Diél1")
.Range("A2").Insert xlDown 'insertion en ligne 2
.Range("A10") = DateLastModified
.Range("c2:c9").ClearContents 'on ne garde que les données A2:B17
.Range("C2") = strFile
End With
 

JNP

XLDnaute Barbatruc
Re : Modification d'une macro pour récupération de date de modif

Bonjour FloSauveur69 :),
J'ai l'impression que tu as un peu raté l'utilisation de la propriété...
Teste
Code:
Sub test()
Chemin = "c:/temp"
Set Dossier = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)
For Each Fichier In Dossier.Files
    If Right(Fichier.Name, 5) = ".html" Then ' liste les fichier HTML seulement
        MsgBox Fichier.Name & " : " & Fichier.DateLastModified
    End If
Next
End Sub
en modifiant Chemin.
Bon courage :cool:
Ajout : Salut Job :)
 

flosauveur69

XLDnaute Occasionnel
Re : Modification d'une macro pour récupération de date de modif

Bonjour FloSauveur69 :),
J'ai l'impression que tu as un peu raté l'utilisation de la propriété...
Teste
Code:
Sub test()
Chemin = "c:/temp"
Set Dossier = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)
For Each Fichier In Dossier.Files
    If Right(Fichier.Name, 5) = ".html" Then ' liste les fichier HTML seulement
        MsgBox Fichier.Name & " : " & Fichier.DateLastModified
    End If
Next
End Sub
en modifiant Chemin.
Bon courage :cool:
Ajout : Salut Job :)

Merci, cependant cette solution me fait ajouter une autre macro, j'aimerais seulement que lorsque ma 1ère macro s'exécute, elle récupère la date de dernière modification.
 

JNP

XLDnaute Barbatruc
Re : Modification d'une macro pour récupération de date de modif

Re :),
C'était surtout pour t'expliquer que la propriété DateLastModified appartenait à un "Scripting.FileSystemObject", pas à un WorkBook :rolleyes:.
Maintenant, il te suffit dans ta macro de créer un "Scripting.FileSystemObject" avec le même chemin que ton WorkBook pour récupérer la valeur que tu peux mettre où tu souhaites :p...
Tu peux faire plus simple en utilisant GetFile à la place de GetFolder, tu auras directement ton fichier, et non le dossier le contenant ;).
Après, c'est toi qui voit :D.
Bon courage :cool:
 

flosauveur69

XLDnaute Occasionnel
Re : Modification d'une macro pour récupération de date de modif

J'ai oublié de préciser que j'étais novice en VBA donc je ne vois comment intégrer le "Scripting.FileSystemObject" dans macro. De plus le chemin que je veux est le répertoire où se situe le classeur qui contient cette macro, par exemple:ThisWorkbook.

Merci de votre aide
 

JNP

XLDnaute Barbatruc
Re : Modification d'une macro pour récupération de date de modif

Re :),
Comme cela peut-être ;)
Code:
Chemin = ThisWorkbook.Path & "\" & strFile
Set Objet = CreateObject("Scripting.FileSystemObject")
Set Fichier = Objet.GetFile(Chemin)
.Range("A10") = Fichier.DateLastModified
Bon courage :cool:
 

flosauveur69

XLDnaute Occasionnel
Re : Modification d'une macro pour récupération de date de modif

Parfait, cela marche! J'aimerais enfin qu'il me rajoute en A9, juste le mot "Fin", j'ai donc ajouter .Range("A9).Value = "Fin" dans mon bout de macro (ci-dessous) mais la macro plante, il doit y avoir un petit souci.

Merci d'avance pour l'aide.


Chemin = ThisWorkbook.Path & "\" & strFile
Set Objet = CreateObject("Scripting.FileSystemObject")
Set Fichier = Objet.GetFile(Chemin)


Workbooks(strFile).Worksheets(1).Range("A11:C18").Copy
With Workbooks(strWB).Worksheets("Diél1")
.Range("A2").Insert xlDown 'insertion en ligne 2
.Range("A9).Value = "Fin"
.Range("B9") = Fichier.DateLastModified
.Range("c2:c10").ClearContents 'on ne garde que les données A2:B17
.Range("C2") = strFile

End With
 

ROGER2327

XLDnaute Barbatruc
Re : Modification d'une macro pour récupération de date de modif

Bonjour à tous
Écrire .Range("A9").Value = "Fin" devrait améliorer la chose...​
ROGER2327
#4354


Lundi 16 Haha 138 (Saint Vadrouille, emblème, SQ)
30 Vendémiaire An CCXIX
2010-W42-4T08:49:50Z
 

Discussions similaires

Réponses
5
Affichages
453

Statistiques des forums

Discussions
313 867
Messages
2 103 092
Membres
108 521
dernier inscrit
manouba