Ouverture dernier fichier

  • Initiateur de la discussion Fox
  • Date de début
F

Fox

Guest
mes fichiers sont automatiquement sauvegardées avec le nom Rapport_ + date du jour sour la forme aammdd
Rapport_030527

J'aimerai réalisé un macro qui me permet d'ouvrir automatiquement le fichier qui comporte la date la plus avancée.

Exemple: dans mon répertoire j'ai:
Rapport_030525
Rapport_030526
Rapport_030527

il devra donc m'ouvrir le fichier Rapport_030527

Bien à vous.
 
T

Ti

Guest
voilà une procédure qui fera ça assez simplement.


Option Explicit

Private Function RecupereFichiers(Rep As String)
Dim Fs As Object, Boucle As Long, Tableau()
Set Fs = Application.FileSearch
With Fs
.LookIn = Rep
.Filename = "*.xls"
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
ReDim Tableau(1 To .FoundFiles.Count)
For Boucle = 1 To .FoundFiles.Count
Tableau(Boucle) = .FoundFiles(Boucle)
Next Boucle
RecupereFichiers = Tableau
Else
RecupereFichiers = False
End If
End With
End Function

Sub OuvreFichiers()
Dim NomFichier As String
Dim Dossier, Fichiers, Boucle As Long
Dim NomDernier As String, NomTemp As String, Numero As Long
Const Rapport As String = "Rapport_"

'pour récupérer le chemin du dossier si on ne le connaît pas
'sinon on peut mettre simplement :
'Dossier = "C:\...."
Dossier = Application.GetOpenFilename("Dossier (*.xls),*.xls", , "Sélectionner le premier fichier")
If Dossier = False Then Exit Sub
Dossier = Left(Dossier, InStrRev(Dossier, "\"))

Fichiers = RecupereFichiers(CStr(Dossier))

If IsArray(Fichiers) Then
For Boucle = 1 To UBound(Fichiers)
NomFichier = Fichiers(Boucle)
If InStr(1, NomFichier, Rapport, vbTextCompare) > 0 Then
NomTemp = Mid(NomFichier, InStrRev(NomFichier, "\") + 1)
NomTemp = Left(NomTemp, InStrRev(NomTemp, ".") - 1)
NomTemp = Mid(NomTemp, Len(Rapport) + 1)
If Val(NomTemp) > Numero Then
NomDernier = NomFichier
Numero = Val(NomTemp)
End If
End If
Next Boucle
End If

Workbooks.Open NomFichier

End Sub
 

Discussions similaires

  • Question
Microsoft 365 Excel365
Réponses
2
Affichages
400

Statistiques des forums

Discussions
314 655
Messages
2 111 604
Membres
111 217
dernier inscrit
aladinkabeya2