Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Re,

Dans l'éditeur VBE, créer un Module (dans la fenêtre "Explorateur de projet").
Ouvrir le Module et y coller le code précédemment fourni.

Ensuite, en B1, saisir =RecupCivilite(A1).
En C1, saisir =RecupNom(A1).
En D1, saisir =RecupNomJF(A1).
En E1, saisir =RecupPrenom(A1).

Et tirer les formules vers le bas.

a+
 

SeXMaN

XLDnaute Junior
Re : Contenu de cellule à dissocier

J'aurais une autre question :

En faites des fois j'ai : M. Kutradun Frederic Jean-Phi
Je voudrais que comme prénom il me mette Frederic Jean-Phi

Est ce possible de le faire ?
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…