• Initiateur de la discussion Initiateur de la discussion Brigitte
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Brigitte

XLDnaute Barbatruc
[Résolu] Séparer des mots

Bonsoir,

Afin de pouvoir étudier les doublons potentiels (avec mdfdoublons), j'aimerais extraire le NOM (parfois composé) et le PRENOM dans la même cellule de la colonne A du fichier joint.

Le pb est que parfois le prénom est suivi de :

(né aaaa)
(aaaa)
aaaa

et que bien sûr parfois le nom est composé et aussi le prénom parfois est composé.

J'ai ainsi plus de 2300 lignes, et le faire à la main... vous m'avez compris.

Merci à vous.
 

Pièces jointes

Dernière édition:
Re : Séparer des mots

Bonjour Brigitte,

Voici une idée,

Utilises le menu Données-Convertir
Tu coches l'option «Délimité» et tu cliques sur suivant
Tu coches la case «Autre» et tu mets ( dans la case

Ça fera en sorte que la paranthèse "gauche" servira de séparateur entre le nom complet et l'année de naissance.

Remarque importante, celà ne fonctionne que si toutes les années débutent avec une paranthèse...

Benoit Lord
 
Re : Séparer des mots

Bonsoir le fil, blord, Brigitte

Si tes prénoms composés sont séparés par des "-"
Alors la formule suivante (pour 2003) devrait aller

Code:
=SI(ESTERREUR(CHERCHE(" ";A2;CHERCHE(" ";A2)+1));A2;GAUCHE(A2;CHERCHE(" ";A2;CHERCHE(" ";A2)+1)))
A plus
 
Re : Séparer des mots

Bonsir Brigitte, le forum

peut être comme ceci:

=GAUCHE(A2;TROUVE("(";SUBSTITUE(A2;" ";"")))
edit:
pour les noms avec parenthèses
pour les autres cas:
=SI(ESTERREUR(GAUCHE(A2;TROUVE("(";A2)))=FAUX;GAUCHE(A2;TROUVE("(";A2)-1);SI(ESTERREUR(GAUCHE(A2;TROUVE("1";A2)))=FAUX;GAUCHE(A2;TROUVE("1";A2)-1);A2))

JHA
 
Dernière édition:
Re : Séparer des mots

Bonsoir le fil,
Brigitte 🙂,

une solution par macro si ça te dis:

Code:
Sub nomprenom()
Dim Personne As Range, PosParenthese As Integer, PosNum As Boolean
Application.ScreenUpdating = False
For Each Personne In Range("A2", [A65536].End(xlUp))
  PosParenthese = InStr(Personne.Value, "(")
  PosNum = Personne.Value Like "*#*"
  If PosParenthese <> 0 Then
    Personne.Offset(0, 1).Value = Left(Personne.Value, PosParenthese - 2)
  ElseIf PosNum Then
    Personne.Offset(0, 1).Value = Left(Personne.Value, Len(Personne.Value) - 5)
  Else: Personne.Offset(0, 1).Value = Personne.Value
  End If
Next
End Sub
 
Re : Séparer des mots

Bonsoir, Salut à tous,

La formule suivante en B2 :

Code:
=SI(ESTERR(GAUCHE(A2;CHERCHE("(";A2)-2));SI(ESTERR(GAUCHE(A2;CHERCHE("1";A2)-2));A2;GAUCHE(A2;CHERCHE("1";A2)-2));GAUCHE(A2;CHERCHE("(";A2)-2))
 
Re : Séparer des mots

Bonsoir,
Une fonction perso
Code:
Function NomPrenom(Cel As Range)
Application.Volatile
Flag = False
For i = 1 To Len(Cel)
    If IsNumeric(Mid(Cel, i, 1)) Or Mid(Cel, i, 1) = Chr(40) Then
    N = Mid(Cel, 1, i - 2)
    Flag = True
    Exit For
    End If
Next
If Flag = True Then NomPrenom = N Else: NomPrenom = Cel
End Function
En B2
=NomPrenom(A2) puis tires la formule vers le bas
A+
kjin
 
Re : Séparer des mots

Bonsoir,

Merci à vous tous.

Kjin, j'ai mis ta fonction : résultat "#Nom?" (peut être parce que mon "vrai fichier" commence en D2 ? je sais pas le lire dans la macro)

Raja : formule avec Esterr, marche bien sauf quand il n'y a plus de parenthèses ; faudrait surement mixer avec une condition qui dirait : si on trouve pas de parenthèses, utiliser telle formule, sinon...

Skoobi : j'ai mis ta macro, mais je la vois pas dans la liste (peut être parce que j'ai aussi la fonction NomPrenom de Kjin et il faudra aussi que j'adapte pour la colonne A qui devient D... je regarderai.

JHA : comme dit plus haut à Raja, probable que ca marchera... Faudrait mettre une condition. Je vais pas savoir faire.

Soenda : c'est nickel à première vue...

Blord : malheureusement je n'ai pas de parenthèses partout..


Je sais que ce fichier est bizarre, mais en fait nous n'avions pas pensé trouver autant de doublons donc comme les saisies arrivent de toute part... nous n'avions pas blindé la chose.

En tout cas c'est règlé grâce à Soenda. Merci à tous pour vos formules, fonctions, macros... même si je n'ai pas réussi à faire marcher la fonction NomPrenom et la sub nomprenom...

Vous êtes des choux... Je vais dodo sereinement.
 
Re : Séparer des mots

Bonsoir à tous
Une autre formule, sans utiliser ESTERR ou ESTERREUR :
Code:
=SUPPRESPACE(GAUCHE(GAUCHE(GAUCHE(A2&"(";CHERCHE("(";A2&"(")-1)&"1";CHERCHE("1";GAUCHE(A2&"(";CHERCHE("(";A2&"(")-1)&"1")-1)&"2";CHERCHE("2";GAUCHE(GAUCHE(A2&"(";CHERCHE("(";A2&"(")-1)&"1";CHERCHE("1";GAUCHE(A2&"(";CHERCHE("(";A2&"(")-1)&"1")-1)&"2")-1))
Remarques :
  • La formule de soenda donne presque le même résultat, si ce n'est qu'elle ajoute parfois une espace après le prénom.
  • La formule de Raja ne fonctionne pas avec, par exemple, TOTO Titi 2002.
Bonne nuit !
ROGER2327
 
Re : Séparer des mots

Bonjour,

Et merci aux "revenants" (kjin, soenda, raja) qui m'ont gâtée. C'est vraiment super gentil... Mais c'est bon le problème est résolu... N'empêche que je vais garder tout ca dans un petit fichier...

Le supprespace est rajouté, soenda, ca roule.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
18
Affichages
726
Réponses
2
Affichages
351
Retour