Bonjour novice, bonjour le forum,
Essaie comme ça :
Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim CA As String 'déclare la variable CA (Chemin d'Accès)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim NC As Workbook 'déclare la variable NC (Nouveau Classeur)
Set CS = ThisWorkbook 'définit le classeur source CS
Set OS = CS.Worksheets(1) 'définit l'onglet source OS (ici le premier onglet du classseur source)
CA = CS.Path & "\" 'définit le chemin d'accès CA
DL = OS.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet source OS
For I = 1 To DL 'boucle sur toutes les lignes I de 1 à DL
Set NC = Workbooks.Add 'définit le nouveau classeur NC en ajoutant un classeur vierge
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne)
NC.SaveAs CA & OS.Cells(I, "A").Value, 51 'enregistre sous le nouveau classeur (51 est le type par défaut .xlsx)
If Err <> 0 Then 'condition : si une erreur a été générée
MsgBox "la cellule contient un ou plusieurs caractères interdits dans les noms de fichier. Création du fichier annulée !" 'message
OS.Cells(I, "A").Interior.ColorIndex = 3 'colore la cellule de rouge
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
NC.Close False 'ferme le nouveau classeur NC sans enregistrer
Next I 'prochaine ligne de la boucle
End Sub