Pb avec Datelastmodified

p.pat27

XLDnaute Junior
bonjour a tous

J'ai un problème avec la fonction Datelastemodified.
Je recherche dans un répertoire la date du plus récent fichier et la rammene dans une cellule excel. Jusque là tout va bien !!
Par contre cela ne donne pas toujours la bonne date
ex: si dans le rep il y a deux fichier avec les dates suivantes: 07/04/2010 et 15/03/2007; cela me rammene la date 15/03/2007 et pas 07/04/2010 ????:confused:
Je pense que le systéme compare d'abord les jours, puis les mois, puis les années !! j'ai essayé avec le système "anglais" mais idem !!
Comment faire pour qu'il me rammene la bone date (la plus récente!) ??

Merci d'avance car je pédale dans le vide !!!


'recherche la date de la dernière fiche et la noter dans la colonne I
Sub RechDate()

Dim i, n As Long, Chemin, reponse As String, FS As FileSearch, FSO, fold, fich

Set FSO = CreateObject("Scripting.FileSystemObject")
reponse = InputBox("Commencer à partir de la ligne ??")
n = Range("A65536").End(xlUp).Row
If reponse < 8 Then reponse = 8
ActiveWorkbook.Save

For i = reponse To n
If Range("A" & i).Value = "" Then
Else
Chemin = "\\frhofps0\frho_shared\Srv Developpement\Fiches techniques PF\" & Range("A" & i).Hyperlinks(1).Address
Set fold = FSO.getfolder(Chemin)
Chemin = fold.Path
Set FS = Application.FileSearch
With FS
.NewSearch
.LookIn = Chemin
.Filename = Range("A" & i).Value & " "
.SearchSubFolders = False
If .Execute(msoSortByLastModified, msoSortOrderDescending) > 0 Then
Set fich = FSO.getfile(.FoundFiles(.FoundFiles.Count))
Range("I" & i).Value = CDate(fich.datelastmodified)
Else
Range("I" & i).Value = ""
End If
End With
End If
Range("A3").Value = n - i
Next i

Set fich = Nothing
Set fold = Nothing
Set FSO = Nothing
End Sub
 

C@thy

XLDnaute Barbatruc
Re : Pb avec Datelastmodified

Bonjour les p'tits loups...

j'ai un peu le même problème que sur ce fil...
par contre je ne comprends rien à
If .Execute(msoSortByLastModified, msoSortOrderDescending) > 0 Then
Set fich = FSO.getfile(.FoundFiles(1))


je cherche à ouvrir tous les fichiers du répertoire un par un le + récent en 1er

voici mon code
(pas super, mais bon...)

Set Dossier = CreateObject("Scripting.FileSystemObject").getfolder(chemin)
i = 0
For Each Fichier In Dossier.Files
ReDim Preserve DateModif(i) ' pour les dates
DateModif(i) = Fichier.DateLastModified
i = i + 1
Next
Call tridate(DateModif, 0, UBound(DateModif, 1))
For f = 0 To UBound(DateModif, 1)
For Each Fichier In Dossier.Files 'on parcourt les différents fichiers
fic = Fichier.Name
If Fichier.DateLastModified = DateModif(i) Then
Documents.Open filename:=fic, _
ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, _
PasswordDocument:="", PasswordTemplate:="", Revert:=False, _
WritePasswordDocument:="", WritePasswordTemplate:="", Format:= _
wdOpenFormatAuto, XMLTransform:=""


Sub tridate(a, gauc, droi)
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
Temp = a(g): a(g) = a(d): a(d) = Temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tridate(a, g, droi)
If gauc < d Then Call tridate(a, gauc, d)
End Sub

et sur
If Fichier.DateLastModified = DateModif(i) Then
j'ai : l'indice n'appartient pas à la sélection....

je m'y prends mal, c'est sûr,
mais c pas facile...

un peu d'aide me serait d'un grand secours.
je remercie celles et ceux qui pourraient m'aider.

Bibises

C@thy
 

C@thy

XLDnaute Barbatruc
Re : Pb avec Datelastmodified

j'ai oublié de dire :

ma routine de tri trie dans l'ordre croissant (miam!)

après je fais :

For f = UBound(DateModif, 1) To 0 Step -1
For Each Fichier In Dossier.Files 'on parcourt les différents fichiers
fic = Fichier.Name
Dim DLF As Date
DLF = Fichier.DateLastModified
If DLF = DateModif(f) Then
Documents.Open filename:=fic, AddToRecentFiles:=False
(j'ai mis documents car je travaille sous Word)

Bises

C@thy
 

YANN-56

XLDnaute Barbatruc
Re : Pb avec Datelastmodified

Bonjour C@thy, tototiti, p.pat27, et à ceux qui passeront par ici,

C@thy:
Voici un exemple qui va te dresser la liste de tes documents Word
contenus dans un dossier, en les classant par ordre de dernière modification.

J'utilise la ListView2 pour faire ce tri... La Listview1 peut être évitée.

J'ai trouvé cette solution assez fiable et pas trop complexe.

A noter l'avantage de faire certains choix, mais on pourrait s'en passer
et automatiser l'ouverture des Documents.

Regarde et dis-moi.

Amicalement

Yann
 

Pièces jointes

  • CATH_DOCS.xls
    28.5 KB · Affichages: 67
Dernière édition:

C@thy

XLDnaute Barbatruc
Re : Pb avec Datelastmodified

Bonjour tout le monde,

merci Yves,Yann et le Morbihan!!!

Il y a une fâcheuse procédure sur mon PC qui détourne certaines notifications d'XLD vers ma boîte courriers indésirables...
et je ne l'avais pas vu hier (vendredi j'étais déjà partie!).

Ta procédure est pas mal du tout ;-), je pense qu'elle va pouvoir m'aider.

Je te remercie vivement pour ce travail, qui, en plus, me donne des idées pour un autre projet avec un USF, c'est ce qu'on appelle faire d'une pierre deux coups.

Merci Yves, et bravo pour ce bon boulot.

Bises et bonne journée

C@thy
 

Discussions similaires

Réponses
2
Affichages
335
Réponses
5
Affichages
259

Statistiques des forums

Discussions
312 677
Messages
2 090 820
Membres
104 676
dernier inscrit
akram1619