[COLOR=blue]Dim[/COLOR] Titres()
[COLOR=blue]Dim[/COLOR] chemin [COLOR=blue]As[/COLOR] [COLOR=blue]String[/COLOR]
[COLOR=blue]Sub[/COLOR] ListeDay()
[COLOR=blue]Dim[/COLOR] i [COLOR=blue]As[/COLOR] [COLOR=blue]Integer[/COLOR]
[COLOR=blue]Dim[/COLOR] Dossier [COLOR=blue]As[/COLOR] [COLOR=blue]Object[/COLOR], Fichier [COLOR=blue]As[/COLOR] [COLOR=blue]Object[/COLOR]
[COLOR=green]'La ligne ci-dessous est à décommenter pour WORD[/COLOR]
ChangeFileOpenDirectory chemin
i = 0
[COLOR=blue]Set[/COLOR] Dossier = CreateObject([I]"Scripting.FileSystemObject"[/I]).getfolder(chemin)
[COLOR=blue]ReDim[/COLOR] Titres(1 To Dossier.Files.Count, 1 To 2)
[COLOR=blue]For[/COLOR] [COLOR=blue]Each[/COLOR] Fichier [COLOR=blue]In[/COLOR] Dossier.Files
[COLOR=blue]If[/COLOR] Right(Fichier.Name, 4) = [I]".doc"[/I] [COLOR=blue]And[/COLOR] LCase(Left(Fichier.Name, 9)) <> [I]"prompteur"[/I] [COLOR=blue]Then[/COLOR] [COLOR=green]' liste les fichier DOC seulement[/COLOR]
i = i + 1
Titres(i, 1) = Fichier.Name
Titres(i, 2) = Fichier.DateLastModified
[COLOR=blue]End[/COLOR] [COLOR=blue]If[/COLOR]
[COLOR=blue]Next[/COLOR]
[COLOR=green]'Trier le tableau sur la deuxiè[COLOR=blue]me[/COLOR] colonnes (dates)[/COLOR]
Array2dSortColumns Titres, 2
[COLOR=blue]End[/COLOR] [COLOR=blue]Sub[/COLOR]
[COLOR=blue]Sub[/COLOR] Array2dSortColumns([COLOR=blue]ByRef[/COLOR] avValues [COLOR=blue]As[/COLOR] [COLOR=blue]Variant[/COLOR], lByColumn [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], [COLOR=blue]Optional[/COLOR] bSortDescending [COLOR=blue]As[/COLOR] [COLOR=blue]Boolean[/COLOR] = [COLOR=blue]False[/COLOR])
[COLOR=green]'By Andrew Baker[/COLOR]
[COLOR=blue]Dim[/COLOR] alOrder() [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], lNumRows [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], lThisCol [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], lNumRow [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], lNumCols [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], lStartRow [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], lStartCol [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR]
[COLOR=blue]Dim[/COLOR] lOffset1 [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], lOffset2 [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], lThisRow [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], lThisRow2 [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], lThisPointer [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR], lPointer [COLOR=blue]As[/COLOR] [COLOR=blue]Long[/COLOR]
[COLOR=blue]Dim[/COLOR] avOutput() [COLOR=blue]As[/COLOR] [COLOR=blue]Variant[/COLOR]
lNumRows = [COLOR=blue]UBound[/COLOR](avValues)
lNumCols = [COLOR=blue]UBound[/COLOR](avValues, 2)
lStartRow = LBound(avValues)
lStartCol = LBound(avValues, 2)
[COLOR=blue]ReDim[/COLOR] alOrder(lStartRow To lNumRows)
[COLOR=blue]For[/COLOR] lNumRow = lStartRow To lNumRows
alOrder(lNumRow) = lNumRow
[COLOR=blue]Next[/COLOR]
[COLOR=blue]If[/COLOR] bSortDescending [COLOR=blue]Then[/COLOR]
lOffset1 = 1
lOffset2 = 0
[COLOR=blue]Else[/COLOR]
lOffset1 = 0
lOffset2 = 1
[COLOR=blue]End[/COLOR] [COLOR=blue]If[/COLOR]
[COLOR=blue]For[/COLOR] lThisRow = lStartRow To lNumRows - 1
[COLOR=blue]For[/COLOR] lThisRow2 = lNumRows - 1 To lThisRow [COLOR=blue]Step[/COLOR] -1
[COLOR=blue]If[/COLOR] (avValues(alOrder(lThisRow2 + lOffset1), lByColumn) > avValues(alOrder(lThisRow2 + lOffset2), lByColumn)) [COLOR=blue]Then[/COLOR]
[COLOR=green]'Swap the position pointers[/COLOR]
lThisPointer = alOrder(lThisRow2 + lOffset1)
alOrder(lThisRow2 + lOffset1) = alOrder(lThisRow2 + lOffset2)
alOrder(lThisRow2 + lOffset2) = lThisPointer
[COLOR=blue]End[/COLOR] [COLOR=blue]If[/COLOR]
[COLOR=blue]Next[/COLOR]
[COLOR=blue]Next[/COLOR]
[COLOR=green]'---Swap all the items[/COLOR]
[COLOR=blue]ReDim[/COLOR] avOutput(lStartRow To lNumRows, lStartCol To lNumCols)
[COLOR=blue]For[/COLOR] lThisRow = lStartRow To lNumRows
lPointer = alOrder(lThisRow)
[COLOR=blue]For[/COLOR] lThisCol = lStartCol To lNumCols
avOutput(lThisRow, lThisCol) = avValues(lPointer, lThisCol)
[COLOR=blue]Next[/COLOR]
[COLOR=blue]Next[/COLOR]
[COLOR=green]'---Copy back into avValues[/COLOR]
[COLOR=blue]On[/COLOR] [COLOR=blue]Error[/COLOR] [COLOR=blue]GoTo[/COLOR] ArrayDimmed
avValues = avOutput
[COLOR=blue]Exit[/COLOR] [COLOR=blue]Sub[/COLOR]
ArrayDimmed:
[COLOR=green]'The [COLOR=blue]input[/COLOR] parameter [COLOR=blue]is[/COLOR] [COLOR=blue]not[/COLOR] a [COLOR=blue]variant[/COLOR] array, copy the values [COLOR=blue]in[/COLOR] manually[/COLOR]
[COLOR=blue]For[/COLOR] lThisRow = lStartRow To lNumRows
[COLOR=blue]For[/COLOR] lThisCol = lStartCol To lNumCols
avValues(lThisRow, lThisCol) = avOutput(lThisRow, lThisCol)
[COLOR=blue]Next[/COLOR]
[COLOR=blue]Next[/COLOR]
[COLOR=blue]End[/COLOR] [COLOR=blue]Sub[/COLOR]