Option Explicit
Private SF As Object 'déclare la variable SF (Système de Fichiers)
Private D As Object 'déclare la variable D (Dossier)
Private FS As Object 'déclare la variable FS (FichierS)
Private F As Object 'déclare la variable F (Fichier)
Private Sub UserForm_Initialize() 'à l'initialisatiojn de l'UserForm
Set SF = CreateObject("Scripting.FileSystemObject") 'définit le Ssystème de fichier SF
Set D = SF.GetFolder(ThisWorkbook.Path) 'définit la dossier D
Set FS = D.Files 'définit l'ensenble des fichiers FS du dossier F
For Each F In FS 'Boucle sur tous les fichiers F de l'ensemble des fichiers FS
'si les huit premiers caractères du nom du fichier sont "CPTPLANW", ajoute le nom du fichier à la ComboBox1
If Left(F.Name, 8) = "CPTPLANW" Then Me.ComboBox1.AddItem F.Name
Next F 'prochain fichier de la boucle
End Sub
Private Sub CommandButton1_Click() 'bouton renommer les fichiers
If Me.ComboBox1.Value = "" Then 'condition : si la ComboBox1 est vide
MsgBox "Vous devez sélectionner le fichier de la semaine !" 'message
Me.ComboBox1.SetFocus 'place le curseur dans la ComboBox1
Exit Sub 'sort de la procédure
End If 'fin de la condition
'si "Non" au message, sort de la procédure via l'étiquette "Fin"
If MsgBox("Le fichier [CPTPLAN-1.xls] va être supprimé." & Chr(13) & _
"Le Fichier [CPTPLAN.xls] sera renommé en [CPTPLAN-1.xls]." & Chr(13) & _
"Le fichier [" & Me.ComboBox1.Value & "] sera renommé en [CPTPLAN.xls] !" & Chr(13) & Chr(13) & _
"Êtes-vous sûr(e) de vouloir continier ?", vbYesNo, "ATTENTION !") = vbNo Then GoTo Fin
For Each F In FS 'Boucle sur tous les fichiers F de l'ensemble des fichiers FS
If F.Name = "CPTPLAN-1.xls" Then Kill F: Exit For 'supprime le fichier "CPTPLAN-1.xls", sort de la boucle
Next F 'prochain fichier de la boucle
For Each F In FS 'Boucle sur tous les fichiers F de l'ensemble des fichiers FS
'si le nom du fichier est "CPTPLAN.xls", renomme le fichier en "CPTPLAN-1.xls", sort de la boucle
If F.Name = "CPTPLAN.xls" Then F.Name = "CPTPLAN-1.xls": Exit For
Next F 'prochain fichier de la boucle
For Each F In FS 'Boucle sur tous les fichiers F de l'ensemble des fichiers FS
'si le nom du fichier est le même que celui dans la ComboBox1, renomme le fichier en "CPTPLAN.xls", sort de la boucle
If F.Name = Me.ComboBox1.Value Then F.Name = "CPTPLAN.xls": Exit For
Next F 'prochain fichier de la boucle
Fin: 'étiquette
Unload Me 'ferme l'UserForm1
End Sub