Phillip
XLDnaute Occasionnel
Bonjour,
J'ai un code ci-dessous, qui à partir d'un fichier ouvert (fichier_tempo) dans un mail, va chercher le dernier fichier d'un répertoire donné, et travaille dessus. Ca marche très bien, si j'ai "déjà" un fichier existant avec la date du jour....Mais comme je lance ma macro une fois par semaine, sur un fichier de la semaine dernière, voire des semaines précédentes je n'ai PAS encore de fichier du jour...
Alors, j'ai pensé utiliser la macro OuvFichrecent, qui m'ouvre le dernier fichier dans le répertoire.
Je modifie le code dans ma macro principale, puisque mon fichier est ledernier, et non plus chemin_fichier_final, appelle OuvFichRecent
Set fichier_final = Application.Workbooks.Open(ledernier)
Set dernier_onglet = ledernier.Worksheets(Worksheets.Count)
Et...ça ne marche pas...J'ai une erreur...Je dois faire une erreur dans mes sets, mais où ?
(même si je désactive la ligne qui ouvre ledernier dans ma sub OuvFichrecent !
Pouvez-vous m'éclairer ?
Merci
Cordialement
Phillip
J'ai un code ci-dessous, qui à partir d'un fichier ouvert (fichier_tempo) dans un mail, va chercher le dernier fichier d'un répertoire donné, et travaille dessus. Ca marche très bien, si j'ai "déjà" un fichier existant avec la date du jour....Mais comme je lance ma macro une fois par semaine, sur un fichier de la semaine dernière, voire des semaines précédentes je n'ai PAS encore de fichier du jour...
VB:
Dim fichier_tempo As Workbook
Dim fichier_final As Workbook
Dim ledernier As Workbook
Dim onglet_donnees As Worksheet
Dim chemin_fichier_final As String
Dim dernier_onglet As Worksheet
Application.ActiveProtectedViewWindow.Edit
Application.ScreenUpdating = False
vyear = Year(Date)
vmonth = MonthName(Month(Date))
vday = Day(Date)
vdate = vday & vmonth & vyear
'chemin du fichier final
chemin_fichier_final = "C:\Phillip_PrO\macro\Suivi_voix\Dossiers-voix- " & vdate & ".xlsm"
''Appeler la macro qui permet d'ouvrir le dernier fichier du repertoire
'car il cherche le fichier de la date du jour
'Call OuvFichrecent
'=================identifier fichiers et onglets============================================
Set fichier_tempo = ActiveWorkbook
Set onglet_donnees = fichier_tempo.Worksheets(1)
Set fichier_final = Application.Workbooks.Open(chemin_fichier_final)
'Set fichier_final = Application.Workbooks.Open(ledernier)
Set dernier_onglet = fichier_final.Worksheets(Worksheets.Count)
'Set dernier_onglet = ledernier.Worksheets(Worksheets.Count)
Alors, j'ai pensé utiliser la macro OuvFichrecent, qui m'ouvre le dernier fichier dans le répertoire.
Code:
Sub OuvFichrecent()
'========================================================================================
''permet de trouver le fichier le plus récent dans un repertoire
Dim monrep As String
Dim monfichier As String
Dim derdate As Date
Dim ledernier As String
Application.ScreenUpdating = False
monrep = "C:\Phillip_PrO\macro\Suivi_voix\"
monfichier = Dir(monrep & "*.xlsm")
derdate = DateSerial(1, 1, 1)
Do While monfichier <> ""
If FileDateTime(monrep & monfichier) > derdate Then
ledernier = monrep & monfichier
derdate = FileDateTime(monrep & monfichier)
End If
monfichier = Dir
Loop
'MsgBox "le plus récent des fichiers txt dans ce répertoire est " & ledernier
Application.Workbooks.Open (ledernier)
End Sub
Je modifie le code dans ma macro principale, puisque mon fichier est ledernier, et non plus chemin_fichier_final, appelle OuvFichRecent
Set fichier_final = Application.Workbooks.Open(ledernier)
Set dernier_onglet = ledernier.Worksheets(Worksheets.Count)
Et...ça ne marche pas...J'ai une erreur...Je dois faire une erreur dans mes sets, mais où ?
(même si je désactive la ligne qui ouvre ledernier dans ma sub OuvFichrecent !
Pouvez-vous m'éclairer ?
Merci
Cordialement
Phillip
Dernière édition: