Rechercher le prochain nom de fichier à utiliser

GeoTrouvePas

XLDnaute Impliqué
Bonjour tout le monde,

Je vais essayer d'être le plus clair possible pour exposer mon soucis.
J'ai un répertoire contenant plusieurs versions d'un fichier. Ces différentes versions sont toutes nommées :
C:\MonDossier\MonFichier V1.xls
C:\MonDossier\MonFichier V2.xls
C:\MonDossier\MonFichier V3.xls
...

J'ai besoin de réaliser une macro qui détermine le nom de la prochaine version. Comme il se peut qu'il y ait des numéros non utilisés, il faut que j'arrive à déterminer le numéro de version utilisé le plus élevé pour ce fichier et que j'y rajoute 1. Je précise que le répertoire peut contenir d'autres fichiers.

Auriez vous une idée sur la façon de réaliser cette fonction ?

Je vous remercie par avance de votre précieuse aide !

Bonne journée
 

mromain

XLDnaute Barbatruc
Re : Rechercher le prochain nom de fichier à utiliser

Bonjour GeoTrouvePas,

Voici un essai ci-dessous :
VB:
Public Function RecupVersionMaxFichier(pathDossier As String, baseNomFichier As String) As Long
Dim myFso As Object, fold As Object, curFile As Object
Dim version As String, maxVersion As Long
    
    Set myFso = CreateObject("Scripting.FileSystemObject")
    Set fold = myFso.GetFolder(pathDossier)
    
    For Each curFile In fold.Files
        If curFile.Name Like baseNomFichier & "*" Then
            version = Replace(Replace(curFile.Name, baseNomFichier, vbNullString), "." & myFso.GetExtensionName(curFile.Name), vbNullString)
            If IsNumeric(version) Then
                If CLng(version) > maxVersion Then maxVersion = CLng(version)
            End If
        End If
    Next curFile
    
    Set curFile = Nothing: Set fold = Nothing: Set myFso = Nothing
    RecupVersionMaxFichier = maxVersion
End Function


Sub test()
Dim nouveauNumDeVersion As Long
    nouveauNumDeVersion = RecupVersionMaxFichier("C:\DossierContenantToutesLesVersions", "MonFichier V")
    nouveauNumDeVersion = nouveauNumDeVersion + 1
    
    MsgBox nouveauNumDeVersion
End Sub

A+
 

GeoTrouvePas

XLDnaute Impliqué
Re : Rechercher le prochain nom de fichier à utiliser

Cela fonctionne impeccablement bien ! Un grand merci à toi.
Il ne me reste plus qu'à gérer la prise en compte de l'extension (je peux parfois avoir des noms communs mais avec des extensions différentes) et tout devrait aller comme sur des roulette !

Je te remercie pour ton aide.

Bonne journée
 

MJ13

XLDnaute Barbatruc
Re : Rechercher le prochain nom de fichier à utiliser

Bonjour à tous

Pour les extensions, c'est assez simple avec ceci (cell étant le nom du fichier):

Code:
For I = Len(cell) To 1 Step -1
If Mid(cell, I, 1) = "." Then GoTo suite
Next
suite:
Ext = Mid(cell, I + 1, Len(cell) - I)
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87