Bonjour à tous,
Dans la macro ci-dessous, je vais chercher tous les fichiers d'un répertoire
avec la date de la dernière modif, je les copie sur une feuille et
j'effectue un tri sur cette feuille pour obtenir le fichier le plus récent
en A1:B1.
Je souhaiterais faire la même opération mais en évitant le passage par la
feuille "Sheets.add". et donc le faire en VBA dans un tableau (array) à 2
dimensions afin récupérer mon fichier le plus récent à l'indice TABlo(0,0).
Si je parviens à alimenter mon tableau, je peine à effectuer le tri.
Un grand merci pour votre aide à tous...
A+++
Bruno
Sub dernier_modifie()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fs = Application.FileSearch
Sheets.Add
With fs
.LookIn = "D:avalondoc"
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
.Execute
For Each f In .FoundFiles
Set file = FSO.GetFile(f)
Range("a1") = file.DateLastModified
Range("b1") = f
Range("a1").Insert Shift:=xlDown
Range("b1").Insert Shift:=xlDown
Next f
End With
Set FSO = Nothing
Set file = Nothing
Range("A1").Delete Shift:=xlUp
Range("b1").Delete Shift:=xlUp
Range("a1:b30").Select ', Range("a1").End(xlDown)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("b1").Select
NOMfichier = ActiveCell
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Bonjour à tous,
Dans la macro ci-dessous, je vais chercher tous les fichiers d'un répertoire
avec la date de la dernière modif, je les copie sur une feuille et
j'effectue un tri sur cette feuille pour obtenir le fichier le plus récent
en A1:B1.
Je souhaiterais faire la même opération mais en évitant le passage par la
feuille "Sheets.add". et donc le faire en VBA dans un tableau (array) à 2
dimensions afin récupérer mon fichier le plus récent à l'indice TABlo(0,0).
Si je parviens à alimenter mon tableau, je peine à effectuer le tri.
Un grand merci pour votre aide à tous...
A+++
Bruno
Sub dernier_modifie()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fs = Application.FileSearch
Sheets.Add
With fs
.LookIn = "D:avalondoc"
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
.Execute
For Each f In .FoundFiles
Set file = FSO.GetFile(f)
Range("a1") = file.DateLastModified
Range("b1") = f
Range("a1").Insert Shift:=xlDown
Range("b1").Insert Shift:=xlDown
Next f
End With
Set FSO = Nothing
Set file = Nothing
Range("A1").Delete Shift:=xlUp
Range("b1").Delete Shift:=xlUp
Range("a1:b30").Select ', Range("a1").End(xlDown)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("b1").Select
NOMfichier = ActiveCell
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Bonjour à tous,
Dans la macro ci-dessous, je vais chercher tous les fichiers d'un répertoire
avec la date de la dernière modif, je les copie sur une feuille et
j'effectue un tri sur cette feuille pour obtenir le fichier le plus récent
en A1:B1.
Je souhaiterais faire la même opération mais en évitant le passage par la
feuille "Sheets.add". et donc le faire en VBA dans un tableau (array) à 2
dimensions afin récupérer mon fichier le plus récent à l'indice TABlo(0,0).
Si je parviens à alimenter mon tableau, je peine à effectuer le tri.
Un grand merci pour votre aide à tous...
A+++
Bruno
Sub dernier_modifie()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fs = Application.FileSearch
Sheets.Add
With fs
.LookIn = "D:avalondoc"
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
.Execute
For Each f In .FoundFiles
Set file = FSO.GetFile(f)
Range("a1") = file.DateLastModified
Range("b1") = f
Range("a1").Insert Shift:=xlDown
Range("b1").Insert Shift:=xlDown
Next f
End With
Set FSO = Nothing
Set file = Nothing
Range("A1").Delete Shift:=xlUp
Range("b1").Delete Shift:=xlUp
Range("a1:b30").Select ', Range("a1").End(xlDown)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("b1").Select
NOMfichier = ActiveCell
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Bonjour.
Sub DerModif()
Dim FSO, FsoFile, LaDate As Date, LeFile As String
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each FsoFile In FSO.GetFolder("D:avalondoc").Files
With FsoFile
If .DateLastModified > LaDate Then
LaDate = .DateLastModified
LeFile = .Name
End If
End With
Next FsoFile
Set FsoFile = Nothing
Set FSO = Nothing
MsgBox LeFile & " " & LaDate
End Sub'AC
Alain CROS.
"Bruno" a écrit dans le message de news:
3fb5d08c$0$14706$
Bonjour à tous,
Dans la macro ci-dessous, je vais chercher tous les fichiers d'un
répertoire
avec la date de la dernière modif, je les copie sur une feuille et
j'effectue un tri sur cette feuille pour obtenir le fichier le plus
récent
en A1:B1.
Je souhaiterais faire la même opération mais en évitant le passage par
la
feuille "Sheets.add". et donc le faire en VBA dans un tableau (array) à
2
dimensions afin récupérer mon fichier le plus récent à l'indice
TABlo(0,0).
Si je parviens à alimenter mon tableau, je peine à effectuer le tri.
Un grand merci pour votre aide à tous...
A+++
Bruno
Sub dernier_modifie()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fs = Application.FileSearch
Sheets.Add
With fs
.LookIn = "D:avalondoc"
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
.Execute
For Each f In .FoundFiles
Set file = FSO.GetFile(f)
Range("a1") = file.DateLastModified
Range("b1") = f
Range("a1").Insert Shift:=xlDown
Range("b1").Insert Shift:=xlDown
Next f
End With
Set FSO = Nothing
Set file = Nothing
Range("A1").Delete Shift:=xlUp
Range("b1").Delete Shift:=xlUp
Range("a1:b30").Select ', Range("a1").End(xlDown)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending,
Header:=xlGuess,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("b1").Select
NOMfichier = ActiveCell
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Bonjour.
Sub DerModif()
Dim FSO, FsoFile, LaDate As Date, LeFile As String
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each FsoFile In FSO.GetFolder("D:avalondoc").Files
With FsoFile
If .DateLastModified > LaDate Then
LaDate = .DateLastModified
LeFile = .Name
End If
End With
Next FsoFile
Set FsoFile = Nothing
Set FSO = Nothing
MsgBox LeFile & " " & LaDate
End Sub'AC
Alain CROS.
"Bruno" <bruno.termonia@skynet.be> a écrit dans le message de news:
3fb5d08c$0$14706$ba620e4c@reader1.news.skynet.be...
Bonjour à tous,
Dans la macro ci-dessous, je vais chercher tous les fichiers d'un
répertoire
avec la date de la dernière modif, je les copie sur une feuille et
j'effectue un tri sur cette feuille pour obtenir le fichier le plus
récent
en A1:B1.
Je souhaiterais faire la même opération mais en évitant le passage par
la
feuille "Sheets.add". et donc le faire en VBA dans un tableau (array) à
2
dimensions afin récupérer mon fichier le plus récent à l'indice
TABlo(0,0).
Si je parviens à alimenter mon tableau, je peine à effectuer le tri.
Un grand merci pour votre aide à tous...
A+++
Bruno
Sub dernier_modifie()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fs = Application.FileSearch
Sheets.Add
With fs
.LookIn = "D:avalondoc"
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
.Execute
For Each f In .FoundFiles
Set file = FSO.GetFile(f)
Range("a1") = file.DateLastModified
Range("b1") = f
Range("a1").Insert Shift:=xlDown
Range("b1").Insert Shift:=xlDown
Next f
End With
Set FSO = Nothing
Set file = Nothing
Range("A1").Delete Shift:=xlUp
Range("b1").Delete Shift:=xlUp
Range("a1:b30").Select ', Range("a1").End(xlDown)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending,
Header:=xlGuess,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("b1").Select
NOMfichier = ActiveCell
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Bonjour.
Sub DerModif()
Dim FSO, FsoFile, LaDate As Date, LeFile As String
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each FsoFile In FSO.GetFolder("D:avalondoc").Files
With FsoFile
If .DateLastModified > LaDate Then
LaDate = .DateLastModified
LeFile = .Name
End If
End With
Next FsoFile
Set FsoFile = Nothing
Set FSO = Nothing
MsgBox LeFile & " " & LaDate
End Sub'AC
Alain CROS.
"Bruno" a écrit dans le message de news:
3fb5d08c$0$14706$
Bonjour à tous,
Dans la macro ci-dessous, je vais chercher tous les fichiers d'un
répertoire
avec la date de la dernière modif, je les copie sur une feuille et
j'effectue un tri sur cette feuille pour obtenir le fichier le plus
récent
en A1:B1.
Je souhaiterais faire la même opération mais en évitant le passage par
la
feuille "Sheets.add". et donc le faire en VBA dans un tableau (array) à
2
dimensions afin récupérer mon fichier le plus récent à l'indice
TABlo(0,0).
Si je parviens à alimenter mon tableau, je peine à effectuer le tri.
Un grand merci pour votre aide à tous...
A+++
Bruno
Sub dernier_modifie()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fs = Application.FileSearch
Sheets.Add
With fs
.LookIn = "D:avalondoc"
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
.Execute
For Each f In .FoundFiles
Set file = FSO.GetFile(f)
Range("a1") = file.DateLastModified
Range("b1") = f
Range("a1").Insert Shift:=xlDown
Range("b1").Insert Shift:=xlDown
Next f
End With
Set FSO = Nothing
Set file = Nothing
Range("A1").Delete Shift:=xlUp
Range("b1").Delete Shift:=xlUp
Range("a1:b30").Select ', Range("a1").End(xlDown)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending,
Header:=xlGuess,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("b1").Select
NOMfichier = ActiveCell
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Bonjour Bruno,
Si j'ai bien compris ta question, Tu veux ouvrir seulement le fichier qui
a été modifié le dernier...soit le plus récent
...
je te propose une variante de ta procédure avec l'objet FileSearch ...
Cette procédure va te donner une liste des fichiers qui ont été modifié du
plus récent au plus vieux et va ouvrir
seulement le plus récent.
En lisant la procédure, tu vas constater qu'on peut orienter la recherche
afin de limiter la quantité d'informations à
la fin de la procédure.
'-------------------------------------------
Sub RechercheDernierFichierModifier()
Dim Quand As MsoLastModified
Dim Nb As Long, A As Integer
Dim Fichier As String
'Plusieurs constantes possibles...pour délimiter l'espace temps
'que la procédure doit retenir pour la recherche des fichiers.
''msoLastModifiedYesterday, msoLastModifiedToday,
'msoLastModifiedThisWeek, msoLastModifiedLastWeek,
'msoLastModifiedAnyTime , msoLastModifiedLastMonth,
'msoLastModifiedThisMonth
Quand = msoLastModifiedThisWeek
With Application.FileSearch
'Lancer Nouvelle recherche
.NewSearch
'Tous les fichiers ayant cette extension
.Filename = "*.xls"
'Limite la recherche à cet espace de temps...
.LastModified = Quand
'Chemin et Répertoire de recherche
.LookIn = "C:excel"
'Pour inclure tous les sous-répertoires...
.SearchSubFolders = False
'Exécute la recherche...et affiche la liste des fichiers
'en partant du plus ancien fichier modifié au plus
'récent dans l'intervalle choisi.
'Si tu veux ouvrir le fichier qui fut modifiée le
'dernier, tu boucles à l'envers (déboucle ;-)) )
If .Execute(msoSortByLastModified) > 0 Then
Nb = .FoundFiles.Count
Fichier = "Fichiers trouvés:" & vbCrLf
For A = Nb To 1 Step -1
Fichier = Fichier & vbCrLf & .FoundFiles(A)
Next
'pour ouvrir seulement le dernier fichier
Workbooks.Open .FoundFiles(Nb)
MsgBox Fichier, vbInformation, "Votre liste"
End If
End With
End Sub
'-------------------------------------------
Salutations!
"Bruno" a écrit dans le message de
news:3fb5d08c$0$14706$
Bonjour à tous,
Dans la macro ci-dessous, je vais chercher tous les fichiers d'un
répertoire
avec la date de la dernière modif, je les copie sur une feuille et
j'effectue un tri sur cette feuille pour obtenir le fichier le plus récent
en A1:B1.
Je souhaiterais faire la même opération mais en évitant le passage par la
feuille "Sheets.add". et donc le faire en VBA dans un tableau (array) à 2
dimensions afin récupérer mon fichier le plus récent à l'indice
TABlo(0,0).
Si je parviens à alimenter mon tableau, je peine à effectuer le tri.
Un grand merci pour votre aide à tous...
A+++
Bruno
Sub dernier_modifie()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fs = Application.FileSearch
Sheets.Add
With fs
.LookIn = "D:avalondoc"
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
.Execute
For Each f In .FoundFiles
Set file = FSO.GetFile(f)
Range("a1") = file.DateLastModified
Range("b1") = f
Range("a1").Insert Shift:=xlDown
Range("b1").Insert Shift:=xlDown
Next f
End With
Set FSO = Nothing
Set file = Nothing
Range("A1").Delete Shift:=xlUp
Range("b1").Delete Shift:=xlUp
Range("a1:b30").Select ', Range("a1").End(xlDown)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending,
Header:=xlGuess,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("b1").Select
NOMfichier = ActiveCell
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Bonjour Bruno,
Si j'ai bien compris ta question, Tu veux ouvrir seulement le fichier qui
a été modifié le dernier...soit le plus récent
...
je te propose une variante de ta procédure avec l'objet FileSearch ...
Cette procédure va te donner une liste des fichiers qui ont été modifié du
plus récent au plus vieux et va ouvrir
seulement le plus récent.
En lisant la procédure, tu vas constater qu'on peut orienter la recherche
afin de limiter la quantité d'informations à
la fin de la procédure.
'-------------------------------------------
Sub RechercheDernierFichierModifier()
Dim Quand As MsoLastModified
Dim Nb As Long, A As Integer
Dim Fichier As String
'Plusieurs constantes possibles...pour délimiter l'espace temps
'que la procédure doit retenir pour la recherche des fichiers.
''msoLastModifiedYesterday, msoLastModifiedToday,
'msoLastModifiedThisWeek, msoLastModifiedLastWeek,
'msoLastModifiedAnyTime , msoLastModifiedLastMonth,
'msoLastModifiedThisMonth
Quand = msoLastModifiedThisWeek
With Application.FileSearch
'Lancer Nouvelle recherche
.NewSearch
'Tous les fichiers ayant cette extension
.Filename = "*.xls"
'Limite la recherche à cet espace de temps...
.LastModified = Quand
'Chemin et Répertoire de recherche
.LookIn = "C:excel"
'Pour inclure tous les sous-répertoires...
.SearchSubFolders = False
'Exécute la recherche...et affiche la liste des fichiers
'en partant du plus ancien fichier modifié au plus
'récent dans l'intervalle choisi.
'Si tu veux ouvrir le fichier qui fut modifiée le
'dernier, tu boucles à l'envers (déboucle ;-)) )
If .Execute(msoSortByLastModified) > 0 Then
Nb = .FoundFiles.Count
Fichier = "Fichiers trouvés:" & vbCrLf
For A = Nb To 1 Step -1
Fichier = Fichier & vbCrLf & .FoundFiles(A)
Next
'pour ouvrir seulement le dernier fichier
Workbooks.Open .FoundFiles(Nb)
MsgBox Fichier, vbInformation, "Votre liste"
End If
End With
End Sub
'-------------------------------------------
Salutations!
"Bruno" <bruno.termonia@skynet.be> a écrit dans le message de
news:3fb5d08c$0$14706$ba620e4c@reader1.news.skynet.be...
Bonjour à tous,
Dans la macro ci-dessous, je vais chercher tous les fichiers d'un
répertoire
avec la date de la dernière modif, je les copie sur une feuille et
j'effectue un tri sur cette feuille pour obtenir le fichier le plus récent
en A1:B1.
Je souhaiterais faire la même opération mais en évitant le passage par la
feuille "Sheets.add". et donc le faire en VBA dans un tableau (array) à 2
dimensions afin récupérer mon fichier le plus récent à l'indice
TABlo(0,0).
Si je parviens à alimenter mon tableau, je peine à effectuer le tri.
Un grand merci pour votre aide à tous...
A+++
Bruno
Sub dernier_modifie()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fs = Application.FileSearch
Sheets.Add
With fs
.LookIn = "D:avalondoc"
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
.Execute
For Each f In .FoundFiles
Set file = FSO.GetFile(f)
Range("a1") = file.DateLastModified
Range("b1") = f
Range("a1").Insert Shift:=xlDown
Range("b1").Insert Shift:=xlDown
Next f
End With
Set FSO = Nothing
Set file = Nothing
Range("A1").Delete Shift:=xlUp
Range("b1").Delete Shift:=xlUp
Range("a1:b30").Select ', Range("a1").End(xlDown)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending,
Header:=xlGuess,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("b1").Select
NOMfichier = ActiveCell
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Bonjour Bruno,
Si j'ai bien compris ta question, Tu veux ouvrir seulement le fichier qui
a été modifié le dernier...soit le plus récent
...
je te propose une variante de ta procédure avec l'objet FileSearch ...
Cette procédure va te donner une liste des fichiers qui ont été modifié du
plus récent au plus vieux et va ouvrir
seulement le plus récent.
En lisant la procédure, tu vas constater qu'on peut orienter la recherche
afin de limiter la quantité d'informations à
la fin de la procédure.
'-------------------------------------------
Sub RechercheDernierFichierModifier()
Dim Quand As MsoLastModified
Dim Nb As Long, A As Integer
Dim Fichier As String
'Plusieurs constantes possibles...pour délimiter l'espace temps
'que la procédure doit retenir pour la recherche des fichiers.
''msoLastModifiedYesterday, msoLastModifiedToday,
'msoLastModifiedThisWeek, msoLastModifiedLastWeek,
'msoLastModifiedAnyTime , msoLastModifiedLastMonth,
'msoLastModifiedThisMonth
Quand = msoLastModifiedThisWeek
With Application.FileSearch
'Lancer Nouvelle recherche
.NewSearch
'Tous les fichiers ayant cette extension
.Filename = "*.xls"
'Limite la recherche à cet espace de temps...
.LastModified = Quand
'Chemin et Répertoire de recherche
.LookIn = "C:excel"
'Pour inclure tous les sous-répertoires...
.SearchSubFolders = False
'Exécute la recherche...et affiche la liste des fichiers
'en partant du plus ancien fichier modifié au plus
'récent dans l'intervalle choisi.
'Si tu veux ouvrir le fichier qui fut modifiée le
'dernier, tu boucles à l'envers (déboucle ;-)) )
If .Execute(msoSortByLastModified) > 0 Then
Nb = .FoundFiles.Count
Fichier = "Fichiers trouvés:" & vbCrLf
For A = Nb To 1 Step -1
Fichier = Fichier & vbCrLf & .FoundFiles(A)
Next
'pour ouvrir seulement le dernier fichier
Workbooks.Open .FoundFiles(Nb)
MsgBox Fichier, vbInformation, "Votre liste"
End If
End With
End Sub
'-------------------------------------------
Salutations!
"Bruno" a écrit dans le message de
news:3fb5d08c$0$14706$
Bonjour à tous,
Dans la macro ci-dessous, je vais chercher tous les fichiers d'un
répertoire
avec la date de la dernière modif, je les copie sur une feuille et
j'effectue un tri sur cette feuille pour obtenir le fichier le plus récent
en A1:B1.
Je souhaiterais faire la même opération mais en évitant le passage par la
feuille "Sheets.add". et donc le faire en VBA dans un tableau (array) à 2
dimensions afin récupérer mon fichier le plus récent à l'indice
TABlo(0,0).
Si je parviens à alimenter mon tableau, je peine à effectuer le tri.
Un grand merci pour votre aide à tous...
A+++
Bruno
Sub dernier_modifie()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set fs = Application.FileSearch
Sheets.Add
With fs
.LookIn = "D:avalondoc"
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
.Execute
For Each f In .FoundFiles
Set file = FSO.GetFile(f)
Range("a1") = file.DateLastModified
Range("b1") = f
Range("a1").Insert Shift:=xlDown
Range("b1").Insert Shift:=xlDown
Next f
End With
Set FSO = Nothing
Set file = Nothing
Range("A1").Delete Shift:=xlUp
Range("b1").Delete Shift:=xlUp
Range("a1:b30").Select ', Range("a1").End(xlDown)).Select
Selection.Sort Key1:=Range("A1"), Order1:=xlDescending,
Header:=xlGuess,
_
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Range("b1").Select
NOMfichier = ActiveCell
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub