Découper une chaîne de caractère et la ranger en lignes et colonnes
Résolu
Romain21410
Messages postés
7
Statut
Membre
-
Romain21410 Messages postés 7 Statut Membre -
Romain21410 Messages postés 7 Statut Membre -
Bonjour,
J'ai un petit problème excel.
A partir d'une chaîne de caractère du même type que celle ci-dessous, je souhaiterais créer une macro VBA ou utiliser une fonction prédefinie d'excel afin de :
- 1) séparer la chaîne de caractère en 3 colonnes : nom / prenom / @mail
- 2) aller à la ligne pour chaque nouvelle personne
- 3) enlever les séparateurs comme les < ; >
BOTTRAS Nicolas <bottrasn@gmail.com>; LARRIEU Cedric <cedric.larrieu@gmail.com>; MICHUD Daniel <d.michud@gmail.com>;
L'idée serait d'obtenir le même résultat que sur l'image.
https://img-19.ccm2.net/4igqnU4fIEZdAprKqPFX3crpmMM=/b0ce375c82f54dd69cf1f17b03f5d292/tmp/Capture.PNG
|fancy]
Merci d'avance pour votre aide.
R.L.
J'ai un petit problème excel.
A partir d'une chaîne de caractère du même type que celle ci-dessous, je souhaiterais créer une macro VBA ou utiliser une fonction prédefinie d'excel afin de :
- 1) séparer la chaîne de caractère en 3 colonnes : nom / prenom / @mail
- 2) aller à la ligne pour chaque nouvelle personne
- 3) enlever les séparateurs comme les < ; >
BOTTRAS Nicolas <bottrasn@gmail.com>; LARRIEU Cedric <cedric.larrieu@gmail.com>; MICHUD Daniel <d.michud@gmail.com>;
L'idée serait d'obtenir le même résultat que sur l'image.
https://img-19.ccm2.net/4igqnU4fIEZdAprKqPFX3crpmMM=/b0ce375c82f54dd69cf1f17b03f5d292/tmp/Capture.PNG
Merci d'avance pour votre aide.
R.L.
A voir également:
- Découper une chaîne de caractère et la ranger en lignes et colonnes
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Caractere speciaux - Guide
- Partage de photos en ligne - Guide
4 réponses
Bonjour.
Et, dans les noms, il n'y en a jamais un qui ressemble à DE MONTAIGNAC ? Ni, dans les prénoms, un qui ressemble à Max Henri ou à William Jr ? C'est-à-dire avec des espaces ...
Dans ta chaîne de caractères, il y a combien de personnes ? Seulement 3 ou plutôt une centaine ?
Il y a une seule chaîne avec toutes les personnes, ou plusieurs chaînes à gérer ?
Cette chaîne (ou ces chaînes) provient de quelle source : Web, cvs, Access ... ?
Et, dans les noms, il n'y en a jamais un qui ressemble à DE MONTAIGNAC ? Ni, dans les prénoms, un qui ressemble à Max Henri ou à William Jr ? C'est-à-dire avec des espaces ...
Dans ta chaîne de caractères, il y a combien de personnes ? Seulement 3 ou plutôt une centaine ?
Il y a une seule chaîne avec toutes les personnes, ou plusieurs chaînes à gérer ?
Cette chaîne (ou ces chaînes) provient de quelle source : Web, cvs, Access ... ?
Bonjour Romain
Coucou Raymond et eriiic
A condition qu'il n'y ait pas comme l'a bien précisé Raymond des espaces entre 2 parties de noms ou de prénoms un exemple par macro à adapter
https://mon-partage.fr/f/c2zlIUhN/
Cdlmnt
Via
Coucou Raymond et eriiic
A condition qu'il n'y ait pas comme l'a bien précisé Raymond des espaces entre 2 parties de noms ou de prénoms un exemple par macro à adapter
https://mon-partage.fr/f/c2zlIUhN/
Cdlmnt
Via
Bonjour Via 55,
Merci beaucoup pour cette macro ! Effectivement elle marche très bien, à l'exception des noms et prénoms composés. Finalement il serait possible de contourner le problème des noms et prénoms composés en récupérant uniquement les adresses mail. Auriez-vous une idée de la partie du programme à modifier ? (il n'y aurait qu'une seule colonne composée des mails)
Merci encore pour ce très beau programme.
R.L.
Merci beaucoup pour cette macro ! Effectivement elle marche très bien, à l'exception des noms et prénoms composés. Finalement il serait possible de contourner le problème des noms et prénoms composés en récupérant uniquement les adresses mail. Auriez-vous une idée de la partie du programme à modifier ? (il n'y aurait qu'une seule colonne composée des mails)
Merci encore pour ce très beau programme.
R.L.
Bonjour,
On aurait pu se baser sur les majuscules pour distinguer les noms des prénoms.
Mais bon, si les mails te suffisent, pas la peine de s'embêter.
Par contre il y a une limite aux tailles des chaines en vba (que j'ai oubliée). Contrôle que le dernier élément sort bien.
eric
PS : qq chose m'échappe. Le csv fournit un enregistrement par ligne, pas tout sur une seule ligne...
Ah vu, c'est une liste de diffusion, pas un export
On aurait pu se baser sur les majuscules pour distinguer les noms des prénoms.
Mais bon, si les mails te suffisent, pas la peine de s'embêter.
Par contre il y a une limite aux tailles des chaines en vba (que j'ai oubliée). Contrôle que le dernier élément sort bien.
eric
PS : qq chose m'échappe. Le csv fournit un enregistrement par ligne, pas tout sur une seule ligne...
Ah vu, c'est une liste de diffusion, pas un export
Re
Remplace la macro par celle-ci, tu auras dans la 1ere colonne les nom prénom et dans la 2nde le mail
Cdlmnt
Via
Remplace la macro par celle-ci, tu auras dans la 1ere colonne les nom prénom et dans la 2nde le mail
Sub decoupe()
chaine = ActiveCell.Value
If Right(chaine, 1) = ";" Then chaine = Left(chaine, Len(chaine) - 1) ' suppression du ; final s'il existe
tablo = Split(chaine, ";") ' découpe chaine en fonction des ;
For n = 0 To UBound(tablo) ' boucle sur les élements du tableau
newchaine = WorksheetFunction.Substitute(tablo(n), ">", "") 'supprime le >
If Left(newchaine, 1) = " " Then newchaine = Right(newchaine, Len(newchaine) - 1) 'suppression du caractère espace en début s'il existe
tablo2 = Split(newchaine, "<") ' découpe la nouvelle chaîne en fonction d u <
x = Sheets("Feuil2").Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1 ' 1ere ligne vide en col A de Feuil2
'remplit les cellules des 2 colonnes de feuille 2
Sheets("Feuil2").Cells(x, 1) = tablo2(0)
Sheets("Feuil2").Cells(x, 2) = tablo2(1)
Next n
Sheets("Feuil2").Activate
End Sub
Cdlmnt
Via
Bonjour à tous
Proposition avec seulement identité et adresse mail

la maquette
https://mon-partage.fr/f/VnKJ6Tbe/
Proposition avec seulement identité et adresse mail

la maquette
https://mon-partage.fr/f/VnKJ6Tbe/
j'ajouterai : les noms sont toujours en majuscule et prénoms avec juste l'initiale ?
eric
Noms à particule: DE HERDT Marc <marc.deherdt2@laposte.net>
Prénoms composés: ANGEON Rose Aimee <roseaimeeangeon@gmail.com>
Il y aurait une seule chaîne d'environ 1500 personnes à gérer. Cette chaîne provient d'une liste de diffusion outlook. L'idée serait d'importer directement la liste outlook au format cvs sur excel mais je n'ai pas trouvé de plugins permettant de faire le transfert (seuls le nom de la liste de diffusion est importé sur excel). Je suis donc obligé de dérouler la liste de diffusion pour la copier-coller dans une cellule excel, ce qui donne cette longue chaîne de caractères.
Merci beaucoup de vous l'intérêt que vous portez à cette question.
R.L.