Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

recherche dernier fichier

3 réponses
Avatar
christophe
bonjour a vous les pros du VBA,

voila je seche sur un petit probleme.
j'ai besoin de connaitre le dernier fichier enregistrer dans un repetoire
donné et d'en extraire le n°
ex:
fichier: "Fiche_de_Travail_Reinert_Kad_010.xls"
ce que j'ai besoin de connaitre est le 010 et de le recuperer pour generer
une nouvelle feuille appeler "Fiche_de_Travail_Reinert_Kad_011.xls" etc etc
comment puis je faire

merci d'avance

christophe

3 réponses

Avatar
Pierre Fauconnier
Bonsoir.

Sans VBA, je ne vois pas de solution.
Avec VBA, en ayant coché la référence "Microsoft Scripting Runtime", tu peux
utiliser la fonction suivante

Function Dernier_Fichier(Racine As String, Chemin As String)
Dim fs As New FileSystemObject
Dim Dossier As Folder
Dim Fichier As File
Dim Nom_Max As String
Set Dossier = fs.GetFolder(Chemin)
For Each Fichier In Dossier.Files
If UCase(Left(Fichier.Name, Len(Racine))) = UCase(Racine) Then
If Fichier.Name > Nom_Max Then Nom_Max = Fichier.Name
End If
Next Fichier
Dernier_Fichier = Replace(UCase(Nom_Max), UCase(Racine), "")
Dernier_Fichier = Replace(UCase(Dernier_Fichier), ".XLS", "")
Set Fichier = Nothing
Set Dossier = Nothing
Set fs = Nothing
End Function

Cette fonction est utilisable dans Excel ou en VBA.
En excel, elle s'utiliser comme suit
Þrnier_fichier("Fiche_de_Travail_Reinert_Kad_";"c:Prestations")
pour retrouver ton dernier fichier dans le dossier c:prestations

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"christophe" a écrit dans le message de news:

bonjour a vous les pros du VBA,

voila je seche sur un petit probleme.
j'ai besoin de connaitre le dernier fichier enregistrer dans un repetoire
donné et d'en extraire le n°
ex:
fichier: "Fiche_de_Travail_Reinert_Kad_010.xls"
ce que j'ai besoin de connaitre est le 010 et de le recuperer pour generer
une nouvelle feuille appeler "Fiche_de_Travail_Reinert_Kad_011.xls" etc
etc
comment puis je faire

merci d'avance

christophe



Avatar
docm
Bonjour.

Une autre méthode :

Sub zaza2()
Dim nom As String
Dim extension As String
Dim Chemin As String
Dim sFormat As String

nom = "Classeur_"
extension = ".xls"
Chemin = "c:aa"
sFormat = "000"

numero = Dernier_FichierPlusUn(nom, extension, Chemin, sFormat)

f = Chemin & nom & numero & extension

End Sub


Function Dernier_FichierPlusUn(Racine As String, extension As String, Chemin
As String, sFormat As String)

d = Dir(Chemin)
While d <> ""
If Mid(UCase(d), 1, Len(Racine)) <> UCase(Racine) Then
Else
a = Mid(d, 1, Len(d) - Len(extension))
numero = Mid(a, Len(Racine) + 1)
If IsNumeric(numero) Then
If CDbl(numero) > CDbl(DernierNumero) Then
DernierNumero = numero
End If
End If
End If
d = Dir
Wend
Dernier_FichierPlusUn = Format(DernierNumero + 1, sFormat)
End Function

docm

"christophe" a écrit dans le message news:

bonjour a vous les pros du VBA,

voila je seche sur un petit probleme.
j'ai besoin de connaitre le dernier fichier enregistrer dans un repetoire
donné et d'en extraire le n°
ex:
fichier: "Fiche_de_Travail_Reinert_Kad_010.xls"
ce que j'ai besoin de connaitre est le 010 et de le recuperer pour generer
une nouvelle feuille appeler "Fiche_de_Travail_Reinert_Kad_011.xls" etc
etc

comment puis je faire

merci d'avance

christophe



Avatar
christophe
bonjour a Pierre et docm

Grand merci pour votre aide, cela m' a été très utile et j'ai pu ainsi
finaliser
ma macro.

a bientot

christophe


Bonsoir.

Sans VBA, je ne vois pas de solution.
Avec VBA, en ayant coché la référence "Microsoft Scripting Runtime", tu peux
utiliser la fonction suivante

Function Dernier_Fichier(Racine As String, Chemin As String)
Dim fs As New FileSystemObject
Dim Dossier As Folder
Dim Fichier As File
Dim Nom_Max As String
Set Dossier = fs.GetFolder(Chemin)
For Each Fichier In Dossier.Files
If UCase(Left(Fichier.Name, Len(Racine))) = UCase(Racine) Then
If Fichier.Name > Nom_Max Then Nom_Max = Fichier.Name
End If
Next Fichier
Dernier_Fichier = Replace(UCase(Nom_Max), UCase(Racine), "")
Dernier_Fichier = Replace(UCase(Dernier_Fichier), ".XLS", "")
Set Fichier = Nothing
Set Dossier = Nothing
Set fs = Nothing
End Function

Cette fonction est utilisable dans Excel ou en VBA.
En excel, elle s'utiliser comme suit
Þrnier_fichier("Fiche_de_Travail_Reinert_Kad_";"c:Prestations")
pour retrouver ton dernier fichier dans le dossier c:prestations

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"christophe" a écrit dans le message de news:

bonjour a vous les pros du VBA,

voila je seche sur un petit probleme.
j'ai besoin de connaitre le dernier fichier enregistrer dans un repetoire
donné et d'en extraire le n°
ex:
fichier: "Fiche_de_Travail_Reinert_Kad_010.xls"
ce que j'ai besoin de connaitre est le 010 et de le recuperer pour generer
une nouvelle feuille appeler "Fiche_de_Travail_Reinert_Kad_011.xls" etc
etc
comment puis je faire

merci d'avance

christophe