Bonjour le fil, bonjour le forum,
Peut-être comme ça mais attention les accents ne sont pas pris en compte :
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim T As String 'déclare la variable T (Texte)
Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet O
For I = 1 To DL 'boucle 1 : sur toutes les lignes de 1 à DL
T = O.Cells(I, "A").Value 'définit le texte T
For J = 1 To Len(T) - 1 'boucle 2 : sur toutes les lettres du texte T (sauf la derniere)
'Si la lettre de la boucle est une majuscule et la lettre suivante est une minuscule, sort de la boucle
If Asc(Mid(T, J, 1)) < 91 And Asc(Mid(T, J + 1, 1)) > 96 Then Exit For
Next J 'prochaine lettre de la boucle 2
O.Cells(I, "B").Value = Mid(T, 1, J - 2) 'renvoie le nom (lettres de 1 à J-2 du texte T) dans la colonne B
O.Cells(I, "C").Value = Mid(T, J) 'renvoie le prénom (lettres à partir de J du texte T) dans la colonne C
Next I 'prochaine ligne de la boucle 2
End Sub
Les données le la colonne A son séparées avec le nom en colonne B et le prénom en colonne C.