Sub Indicer()
Dim nDevis As String
Dim FirstWord, LastWord, MidWord
On Error GoTo mauvaisTitre
nDevis = Application.InputBox("Saisir le n° devis (n° actuel : " & Left(ThisWorkbook.Name, 11) & ")" & vbCrLf & "Le fichier actuel ne sera pas enregistré." & vbCrLf & "Pensez à enregistrer avant de valider", , Left(ThisWorkbook.Name, 9) & Format(Mid(ThisWorkbook.Name, 10, 2) + 1, "00"), Type:=2)
If nDevis = "Faux" Then
MsgBox "Indiçage annulé"
Exit Sub
End If
FirstWord = Mid(nDevis, 1, 4) ' Returns "DXX-"
MidWord = Mid(nDevis, 5, 4) ' Returns "XXXX"
LastWord = Mid(nDevis, 9) ' Returns "-XX"
If FirstWord Like "D[0-9][0-9]-" And MidWord Like "[0-9][0-9][0-9][0-9]" And LastWord Like "-[0-9][0-9]" Then
ActiveWorkbook.SaveAs Filename:=Application.ActiveWorkbook.Path & "\" & nDevis
MsgBox "Devis indicé"
Else: MsgBox "Erreur de syntaxe dans le n° de devis"
Indicer
End If
End Sub