Contenu de cellule à dissocier

SeXMaN

XLDnaute Junior
Le contenu de mes cellules :

A1 : M. Moulin Jean-Charles
A2 : Mme Violette épouse Barraya Sophie
A3 : Mle Adam Laura
A4 : M. Barriop Laurent Yves
A5 : Mle Gothier Virgillette

Dans les cellules j'ai cumulé les civilités, nom, nom de jeune fille (desfois) et le prénom
J'aimerai avoir dans la cellule B1 la civilité, C1 le nom, D1 le nom de jeune fille et E1 le Prénom
Comment faire ?
Comment créer une formule pour lui faire recopier les mots qu'il y a entre les espaces dans les colonnes à côtés ?

Merci d'avance
 

mromain

XLDnaute Barbatruc
Re : Contenu de cellule à dissocier

Bonjour SeXMaN,

Voici un essai avec des fonction VBA qui a l'air de fonctionner (du moins avec les 5 cas fournis) :
VB:
Public Function RecupCivilite(cellule As Range) As String
Dim tabMots() As String
    tabMots = Split(cellule(1, 1).Text)
    RecupCivilite = tabMots(0)
End Function

Public Function RecupNom(cellule As Range) As String
Dim tabMots() As String
    tabMots = Split(cellule(1, 1).Text)
    RecupNom = tabMots(1)
End Function

Public Function RecupNomJF(cellule As Range) As String
Dim tabMots() As String
    tabMots = Split(cellule(1, 1).Text)
    If tabMots(2) = "épouse" Then RecupNomJF = tabMots(3)
End Function

Public Function RecupPrenom(cellule As Range) As String
Dim tabMots() As String
    tabMots = Split(cellule(1, 1).Text)
    If tabMots(2) = "épouse" Then RecupPrenom = tabMots(4) Else RecupPrenom = tabMots(2)
End Function
a+
 
Dernière édition:

mromain

XLDnaute Barbatruc
Re : Contenu de cellule à dissocier

Bonjour,

essaye avec ce code :
VB:
Public Function RecupPrenom(cellule As Range) As String
Dim tabMots() As String, i As Long
    tabMots = Split(cellule(1, 1).Text)
    If tabMots(2) = "épouse" Then
        For i = 4 To UBound(tabMots)
            RecupPrenom = RecupPrenom & tabMots(i) & " "
        Next i
    Else
        For i = 2 To UBound(tabMots)
            RecupPrenom = RecupPrenom & tabMots(i) & " "
        Next i
    End If
    RecupPrenom = Left(RecupPrenom, Len(RecupPrenom) - 1)
End Function
a+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 506
Membres
103 566
dernier inscrit
c@b@l77540