Adevy a écrit :
Merci pour vos réponses.
Vous trouverez sur ce poste un fichier exemple de ce que j'ai.
Je veux comprendre comment utiliser les deux fonctions ci-dessous :
Function Nom(c)
Application.Volatile
Set obj = CreateObject("vbscript.regexp")
obj.Pattern = "([A-Z'ÔË]{2,}\s*-?)+"
Set a = obj.Execute(c)
If a.Count > 0 Then Nom = a(0) Else Nom = ""
End Function
Function Prénom(c)
Application.Volatile
Set obj = CreateObject("vbscript.regexp")
c = Replace(Replace(Replace(c, "M.", ""), "Mme", ""), "Mle", "")
obj.Pattern = "([A-Z][a-zëéèô]+\s*-?)+"
Set a = obj.Execute(c)
If a.Count > 0 Then Prénom = a(0) Else Prénom = ""
End Function
Mon objectif est que en A2, A3, A4 etc s'inscrivent les noms et prénoms.
Je ne comprends pas comment on intègre ces fonctions dans vba ?
Je vous remercie.
Bonjour,
1 Il faut aller dans VBA et ajouter un module.
2 Copier les 2 fonctions dans ce module :
Function Nom(c)
Application.Volatile
Set obj = CreateObject("vbscript.regexp")
obj.Pattern = "([A-Z'ÔË]{2,}\s*-?)+"
Set a = obj.Execute(c)
If a.Count > 0 Then Nom = a(0) Else Nom = ""
End Function
Function Prénom(c)
Application.Volatile
Set obj = CreateObject("vbscript.regexp")
c = Replace(Replace(Replace(c, "M.", ""), "Mme", ""), "Mle", "")
obj.Pattern = "([A-Z][a-zëéèô]+\s*-?)+"
Set a = obj.Execute(c)
If a.Count > 0 Then Prénom = a(0) Else Prénom = ""
End Function
3 dans la cellule B, il faut appeler la fonction Nom :
=nom(A2)
4 dans la cellule C, il faut appeler la fonction Prénom (attention au é) :
=prénom(A2)
5 Si le é de Prénom pose un problème, il suffit de renommer la fonction
et de modifier la ligne commençant par if
Function Prenom(c)
Application.Volatile
Set obj = CreateObject("vbscript.regexp")
c = Replace(Replace(Replace(c, "M.", ""), "Mme", ""), "Mle", "")
obj.Pattern = "([A-Z][a-zëéèô]+\s*-?)+"
Set a = obj.Execute(c)
If a.Count > 0 Then Prenom = a(0) Else Prenom = ""
End Function
J'ai testé avec
MICHEL PaulMICHELPaul
Paul MICHEL MICHEL Paul
MICHEL HENRY Caroline MICHEL HENRY Caroline
Caroline MICHEL HENRY MICHEL HENRY Caroline