1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
Sub Teste_Si_Fichier_Existe_Et_Renome()
Dim NouveauNom, Ext, Su, Ajout As String
Dim Repertoire As String
Dim Fso As Object
Dim Pos, Nbre, Pos1, Pos2, LenEntier As Integer
Dim CasParticulier As Boolean
Dim St As String
Dim Fichier As String
'Choix du répertoire
Repertoire = ChoixRepertoire & "\"
'première entrée fichier
Fichier = Dir(Repertoire, vbNormal Or vbHidden)
' recherche l'extension pour les fichiers qui contiennent
' un ou plusieurs points dans leur nom : 1.5.jpg, nom.suit.1.xls
Ext = Extension(Fichier)
Set Fso = CreateObject("Scripting.FileSystemObject")
St = Repertoire & Fichier
Ajout = "(1)" 'renomme avec (1)° par défaut
CasParticulier = True
While Dir(St) <> ""
While Fichier_Existe(St)
'Recherche le fichiers se terminant par (n)
Pos = InStr(Fichier, ").")
If Pos <> 0 And CasParticulier Then
Pos2 = InStr(Fichier, "(")
LenEntier = Pos - Pos2 - 1
Su = Mid(Fichier, Pos2 + 1, LenEntier)
If IsNumeric(Su) And Pos2 >= 2 Then
Nbre = CInt(Su)
Nbre = Nbre + 1
Ajout = "(" & Trim(Str(Nbre)) & ")"
Pos = Len(Fichier) - (Len(Ext) + LenEntier + 2)
NouveauNom = Left(Fichier, Pos) & Ajout & Ext
Else
'le nom du fichier se termine par une parenthèse
' non précédée par un nombre entier
NouveauNom = Left(Fichier, InStr(Fichier, Ext) - 1) & Ajout & Ext
CasParticulier = False
End If
Else
NouveauNom = Left(Fichier, InStr(Fichier, Ext) - 1) & Ajout & Ext
End If
NouveauNom = Trim(NouveauNom)
Fso.MoveFile Fichier, NouveauNom
Wend
St = Dir
Wend
End Sub |
Partager