Excel: Extraire des données d'une même cellule avant virgule

Résolu/Fermé
Al - 26 juin 2014 à 11:02
 Ofa86 - 24 nov. 2017 à 00:49
Bonjour,

Ma cellule contient des données qui peuvent contenir une virgule. Lorsqu'il y en a une, j'aimerais pouvoir extraire les données contenues avant la 1ère virgule quelle que soit leur longueur, sinon toutes les données de la cellule.
Exemple: si la cellule contient 'DUPONT, Jean-Paul, Paris', j'aimerais pouvoir n'extraire que 'DUPONT', et si la cellule contient 'DUPONT', alors 'DUPONT' devra être extrait.
Comment faire?

Je vous remercie pour votre aide!
A voir également:

3 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 26/06/2014 à 11:12
Bonjour

ton texte en A13
=SI(ESTERR(CHERCHE(",";A13;1));A13;GAUCHE(A13;CHERCHE(",";A13;1)-1))

Cdlmnt
5
Bonjour ccm81,

Je viens d'essayer la formule proposée, et elle bien aboutit au résultat attendu!

Je t'en remercie énormément!

Bonne journée!
0
Merci bcp
0
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 152
Modifié par eljojo_e le 26/06/2014 à 11:13
Bonjour,

voici ma solution :

Function extract(z As String) As String
ma = Len(z)
For a = 1 To 1000
If ma = a Then
extract = "Pas de virgule détecté"
Exit Function
End If
If Right(Left(z, a), 1) = "," Then
extract = Left(z, a - 1)
Exit Function
End If
Next
End Function


Tu n'as plus qu'à ecrire la fonctionne dans une cellule =extract(tacellule) et c'est bon.

Cordialement,

Mesurer la masse de sa connerie permettrait dans connaitre sa gravité ;)
0
Merci eljojo_e!
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 26/06/2014 à 12:13
@eljojo_e
Pour la solution macro, la fonction instr renvoie 0 ou le rang d'un sous_texte dans un texte

Public Function AvantLaVirgule(s As String) As String
If InStr(1, s, ",") = 0 Then
AvantLaVirgule = s
Else
AvantLaVirgule = Left(s, InStr(1, s, ",") - 1)
End If
End Function

Cdlmnt
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
26 juin 2014 à 11:12
Bonjour,

=SI(ESTERREUR(CHERCHE(",";B2));B2;GAUCHE(B2;CHERCHE(",";B2)))

non valable si "dupont jean" r
0