Sub SauveNomUnique()
On Error GoTo Trappe
' Définition des variables
Dim MonTest, I As Integer, NomFichier As String
Dim numCarTxt As Integer
' Affecte le nombre de caractère du nom de fichier à la variable numCarTxt
numCarTxt = Len(ActiveWorkbook.Name)
' Définition du tableau MonTest à partir du nom du fichier avec les espaces comme séparateurs
MonTest = Split(ActiveWorkbook.Name, " ")
' Validation du fichier d'origine. La comparaison vérifie les types de caractères contenu dans le tableau.
If UBound(MonTest) > 4 Then
If Right(MonTest(UBound(MonTest)), 5) = "s.xls" And Right(MonTest(UBound(MonTest) - 1), 1) = "m" And _
Right(MonTest(UBound(MonTest) - 2), 1) = "h" And Right(MonTest(UBound(MonTest) - 3), 1) = "@" Then
If UBound(MonTest) = 5 Then
NomFichier = MonTest(0) ' & ".xls"
Else
NomFichier = MonTest(0)
For I = LBound(MonTest) + 1 To UBound(MonTest) - 5
NomFichier = NomFichier & " " & MonTest(I)
Next I
'NomFichier = NomFichier & ".xls"
End If
MsgBox "Ce fichier est une copie" & vbCrLf & "L'original s'appelle " & NomFichier
ActiveWorkbook.SaveAs ActiveWorkbook.Path & "\" & NomFichier & _
Format(Now, " yy-mm-dd @ hh\h mm\m ss\s") & ".xls"
Exit Sub
End If
Else
NomFichier = Left$(ActiveWorkbook.Name, numCarTxt - 4)
ActiveWorkbook.SaveAs ActiveWorkbook.Path & "\" & NomFichier & _
Format(Now, " yy-mm-dd @ hh\h mm\m ss\s") & ".xls"
Exit Sub
End If
Sortie:
On Error Resume Next
Exit Sub
Trappe:
MsgBox "Erreur: " & Err.Number & vbCrLf & Err.Description
Resume Sortie
End Sub