Séparation de chaînes de caractères en Excel

Fermé
HABONIMANA Célestin Messages postés 1 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 24 octobre 2005 - 24 oct. 2005 à 11:06
 ali - 25 janv. 2018 à 23:28
Bonjour, je travaille sur un fichier Excel et j'aimerais "déconcaténer" une chaine de caractères par exemple comment peut-on, si on a écrit le nom et le prénom dans une même cellule, les séparer sans effacer et réécrire?

Merci de la réponse que vous voudrez bien apporter à ma question.

5 réponses

almoal Messages postés 58 Date d'inscription lundi 28 janvier 2008 Statut Membre Dernière intervention 12 juin 2016 67
Modifié par almoal le 6/06/2011 à 11:49
Plus simple : pour séparer par l'espace une colonne en 2 colonnes : aller dans Menu Données, Convertir, Délimiter, Suivant puis cocher Espaces, Suivant, Format de données, texte.
Si vous voulez garder les données d'origine, il faudra en faire une copie dans une autre colonne auparavant.
35
Rpuao Messages postés 1 Date d'inscription mercredi 13 janvier 2016 Statut Membre Dernière intervention 13 janvier 2016
13 janv. 2016 à 16:14
Et pour compléter : si vous faites la méthode d'almoal mais avec une série de mots par exemple, et que vous ne vouliez faire une séparation uniquement pour le premier espace, il est possible de raccrocher les colonnes avec les fonctions A1&" "&B1

JEAN MICHEL JARRE --> JEAN MICHEL JARRE --> JEAN MICHEL JARRE
0
merci
0
Salut!

J'ai une solution, mais assez indirecte... mieux que rien en gros!
1)Selectionner la colonne contenant nom et prénom et la copier
2) Créer un nouveau fichier .txt avec le bloc note et copier la colonne dedans
3) Dans excel, Fichier=> Ouvrir=>Types de fichier "Tout les fichiers"=> tu ouvre le fichier texte .txt
4) L'assitant d'importation s'ouvre automatiquement, à la première étape tu choisis "délimité" et à la seconde étape d'importation tu coches "espace"
5) Tu as donc un nouveau fichier excel et tu n'as plus qu'à copier coller les colonnes dans ton premier fichier excel

Le "hic" de cette méthode, c'est que avec les nom composés du genre" Jean de la bonne tambouille"
Tu auras 5 colonnes...
Tout dépend de la longueru de ta liste en espérant que il n'y ait pas trop de nom ou prénom composés!!

Voilà c'est la seule méthode que j'ai à ta proposer en attendant que tu trouves mieux!
8
Merci milles fois pour cette explication... Elle vient de me faire gagner beaucoup de temps! :)
0
kmanber Messages postés 541 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 28 décembre 2008 253
24 oct. 2005 à 12:41
Si le nom composé est dans la cellule D2 (par exemple), la formule suivant te permettra de rechercher le blanc qui sépare le nom et le prenom (ici on recherche le blanc et on inverse prenom nom)

tu peux ne prendre que droite.... ou gauche .... dans des cellules différentes

=NOMPROPRE(SI(ESTERREUR(CHERCHE(" ";D2));D2;DROITE(D2;NBCAR(D2)-CHERCHE(" ";D2))&" " &GAUCHE(D2;CHERCHE(" ";D2)-1)))
3
Tu peux séparer nom et prénom mis dans une même cellule , à condition d'avoir un espace entre nom et prénom à l'aide de : DansChaîne
Je te joins un exemple que j'utilise dans un programme en excel 5, donc visual basic français

' recherche la position du premier espace
MaPos = DansChaîne(1; Cellules(b; "b"); " ")
' cas du nom sans terminaison par la barre espace
Si MaPos = 0 Alors
' affiche le nom complet
Cellules(b + 1; "b") = Cellules(b; "b")
Sinon
' affiche le début du nom
Cellules(b + 1; "b") = Gauche(Cellules(b; "b"); MaPos)
Fin Si

Le même en VBA2000 donc en anglais
' recherche la position du premier espace
MaPos = InStr(1, Cells(d, "b"), " ")
' cas du nom sans terminaison par la barre espace
If MaPos = 0 Then
' affiche le nom complet
Cells(d + 1, "b") = Cells(d, "b")
Else
' affiche le début du nom
Cells(d + 1, "b") = Left(Cells(d, "b"), MaPos)
End If

Ces exemples font partis d'une boucle. Tu peux adapter.
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour plus simple en vba :

en appliquant la fonction split à la chaine de caractère
Dim MaVariable as string
MaVariable = Split(cells(1.1).value," ")
msgbox Mavariable(0)
msgbox Mavariable(1)

par exemple avec chaine comportant deux valeur séparées d'un espace.
0