Excel - Eclater les valeurs d'une cellule
Fermé
GAELAMONTREAL
-
28 mai 2009 à 22:47
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 29 mai 2009 à 23:40
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 29 mai 2009 à 23:40
A voir également:
- Excel - Eclater les valeurs d'une cellule
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Verrouiller cellule excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
9 réponses
Bonjour,
Si j'ai bien compris ton problème, je te signale une petite astuce, un peu manuelle, mais qui t'aidera si ton besoin est juste de mettre un mot par ligne :
- Transférer ta colonne sous Word
- Convertir le tableau en texte sous Word (Choisir marques de paragraphe comme séparateur) : tu obtiens la même série que sous Excel.
- Comme il y a des espaces au début de certaines lignes, ils doivent être supprimés : Chercher-Remplacer "^p(espace)" (collés; le signe espace avec la barre espace du clavier) par "^p" (^p c'est le symbole de fin de ligne sous Word)
- Chercher-Remplacer "(espace)" (le signe espace avec la barre espace du clavier) par "^p" : tous les mots se rangent chacun sur une ligne. Il reste à supprimer les espaces de trop qui se sont transformés en retour ligne.
- Chercher-Remplacer "^p^p" par "^p". On obtient un mot par ligne et sans espaces intermédiaires.
- Sélectionner le tout et reconvertir texte en tableau.
- Reporter le tout dans Excel
- Faire ce que vous vouliez faire.
Bon courage et bonne journée.
Si j'ai bien compris ton problème, je te signale une petite astuce, un peu manuelle, mais qui t'aidera si ton besoin est juste de mettre un mot par ligne :
- Transférer ta colonne sous Word
- Convertir le tableau en texte sous Word (Choisir marques de paragraphe comme séparateur) : tu obtiens la même série que sous Excel.
- Comme il y a des espaces au début de certaines lignes, ils doivent être supprimés : Chercher-Remplacer "^p(espace)" (collés; le signe espace avec la barre espace du clavier) par "^p" (^p c'est le symbole de fin de ligne sous Word)
- Chercher-Remplacer "(espace)" (le signe espace avec la barre espace du clavier) par "^p" : tous les mots se rangent chacun sur une ligne. Il reste à supprimer les espaces de trop qui se sont transformés en retour ligne.
- Chercher-Remplacer "^p^p" par "^p". On obtient un mot par ligne et sans espaces intermédiaires.
- Sélectionner le tout et reconvertir texte en tableau.
- Reporter le tout dans Excel
- Faire ce que vous vouliez faire.
Bon courage et bonne journée.
Utilisateur anonyme
28 mai 2009 à 22:55
28 mai 2009 à 22:55
Bonjour Gael,
Ton exemple est aussi clair que le pot d'echappement de mon char...
Tu veux decouper par lettre le nom de ville ?
Ton exemple est aussi clair que le pot d'echappement de mon char...
Tu veux decouper par lettre le nom de ville ?
Raymond PENTIER
Messages postés
58721
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
15 novembre 2024
17 236
29 mai 2009 à 01:37
29 mai 2009 à 01:37
Non ! Tu exagères ...
Gaël veut ne conserver que Teiului à la ligne 2 et renvoyer Potlogi en A8.
De même Praid, Predeal et Prejmer doivent être ventilés sur 3 lignes différentes.
Il faut donc lui proposer une macro qui reconnaisse la présence d'espaces (d'où une première difficulté à la ligne 5 qui commence par un espace), qui fractionne le contenu de chaque cellule après chaque espace, et qui déplace les éléments ainsi fractionnés dans des cellules vides de la colonne A : Pas très évident !
Gaël veut ne conserver que Teiului à la ligne 2 et renvoyer Potlogi en A8.
De même Praid, Predeal et Prejmer doivent être ventilés sur 3 lignes différentes.
Il faut donc lui proposer une macro qui reconnaisse la présence d'espaces (d'où une première difficulté à la ligne 5 qui commence par un espace), qui fractionne le contenu de chaque cellule après chaque espace, et qui déplace les éléments ainsi fractionnés dans des cellules vides de la colonne A : Pas très évident !
pépé35530
Messages postés
2942
Date d'inscription
vendredi 1 mai 2009
Statut
Membre
Dernière intervention
19 mars 2016
1 384
29 mai 2009 à 01:29
29 mai 2009 à 01:29
Bonsoir,
tu trouveras ci-joint un lien vers un exemple d'extraction de mots dans une chaîne de caractères vers d'autres cellules.
C'est un peu une usine à gaz, mais cela semble fonctionner. Cela pourra peut-être te donner un début de solution.
A+
pépé
tu trouveras ci-joint un lien vers un exemple d'extraction de mots dans une chaîne de caractères vers d'autres cellules.
C'est un peu une usine à gaz, mais cela semble fonctionner. Cela pourra peut-être te donner un début de solution.
A+
pépé
Désolé ce n'est vraiment pas facile à expliquez....
Alors je vous explique, je doit créé une liste de ville que je place en colonne, une ville occupe une cellule et je place les villes les unes en dessous des autres (en ligne quoi..) tel que:
Montréal
Toronto
Alifax
...
....
Je les places de cette manière car après je lance une recheche dans la colonne pour retrouver certaine ville...bref le pourquoi n'est pas très important mais je dois impérativement les placer de cette manière.
Le problème c'est que ces villes sont présentes dans une liste d'un autre classeur excel tirée d'un pdf dans lequel certainess cellules contienent non pas une ville mais 2, 3.... Donc ma question c'est comment faire pour copier, automatiquement les villes contenues dans une cellule dans d'autre cellule pour que chaque cellule ne contienne qu'une ville soit:
Nantes Toulouse Paris Lyon
se transforme en:
Nantes
Toulouse
Paris
Lyon
Voilà j'éspère que j'ai été plus clair et que quelqu'un aura une solution pour moi
Merci
Alors je vous explique, je doit créé une liste de ville que je place en colonne, une ville occupe une cellule et je place les villes les unes en dessous des autres (en ligne quoi..) tel que:
Montréal
Toronto
Alifax
...
....
Je les places de cette manière car après je lance une recheche dans la colonne pour retrouver certaine ville...bref le pourquoi n'est pas très important mais je dois impérativement les placer de cette manière.
Le problème c'est que ces villes sont présentes dans une liste d'un autre classeur excel tirée d'un pdf dans lequel certainess cellules contienent non pas une ville mais 2, 3.... Donc ma question c'est comment faire pour copier, automatiquement les villes contenues dans une cellule dans d'autre cellule pour que chaque cellule ne contienne qu'une ville soit:
Nantes Toulouse Paris Lyon
se transforme en:
Nantes
Toulouse
Paris
Lyon
Voilà j'éspère que j'ai été plus clair et que quelqu'un aura une solution pour moi
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pépé35530
Messages postés
2942
Date d'inscription
vendredi 1 mai 2009
Statut
Membre
Dernière intervention
19 mars 2016
1 384
29 mai 2009 à 12:26
29 mai 2009 à 12:26
Bonjour,
Voici le lien annoncé
https://www.cjoint.com/?fDmtd7JlB7
la manip s'appuie sur la recherche des espaces dans la chaîne de caractères (fonction CHERCHE
On utilise ensuite la fonction STXT pour extraire chaque mot
Problème : combien de mot as-tu par cellule au maximum.
L'exemple gère trois mots maximum par cellule
Je n'ai pas encore réussi à gérer de manière simple les messages d'erreur engendrés. Comment faire un test à partir de ces erreurs.
Bon courage
A+
pépé
Voici le lien annoncé
https://www.cjoint.com/?fDmtd7JlB7
la manip s'appuie sur la recherche des espaces dans la chaîne de caractères (fonction CHERCHE
On utilise ensuite la fonction STXT pour extraire chaque mot
Problème : combien de mot as-tu par cellule au maximum.
L'exemple gère trois mots maximum par cellule
Je n'ai pas encore réussi à gérer de manière simple les messages d'erreur engendrés. Comment faire un test à partir de ces erreurs.
Bon courage
A+
pépé
pépé35530
Messages postés
2942
Date d'inscription
vendredi 1 mai 2009
Statut
Membre
Dernière intervention
19 mars 2016
1 384
29 mai 2009 à 16:25
29 mai 2009 à 16:25
Bonjour,
j'ai refait un fichier un peu plus compréhensible (j'espère).
http://www.cijoint.fr/cjlink.php?file=cj200905/cijfoEVD09.xls
Ce fichier permet d'extraire quatre mots situés dans une même cellule.
A+
pépé
j'ai refait un fichier un peu plus compréhensible (j'espère).
http://www.cijoint.fr/cjlink.php?file=cj200905/cijfoEVD09.xls
Ce fichier permet d'extraire quatre mots situés dans une même cellule.
A+
pépé
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
29 mai 2009 à 18:24
29 mai 2009 à 18:24
Bonjour à tous,
Gael,
Comme apparement tu ne fais pas cette manip tous les jours, je te propose une méthode en 2 temps (XL<2007)
1/ tu sélectionnes toute la colonne avec les villes, puis données-convertir,délimité, espaces, terminer
tu as maintenant une ville par cellule da A1 à Ax
2/ tu peux ensuite utiliser cette macro: elle écrit les villes en 1 seule colonne; j'ai mis en colonne F (6=F)pour les essais
mais si tu veux en colonne A, tu mets 1 à la place de 6 et tu enlèves l'apostrophe devant plage.clearcontents
(voir lignes en gras)
Gael,
Comme apparement tu ne fais pas cette manip tous les jours, je te propose une méthode en 2 temps (XL<2007)
1/ tu sélectionnes toute la colonne avec les villes, puis données-convertir,délimité, espaces, terminer
tu as maintenant une ville par cellule da A1 à Ax
2/ tu peux ensuite utiliser cette macro: elle écrit les villes en 1 seule colonne; j'ai mis en colonne F (6=F)pour les essais
mais si tu veux en colonne A, tu mets 1 à la place de 6 et tu enlèves l'apostrophe devant plage.clearcontents
(voir lignes en gras)
Sub mettre_en_colonne() Dim plage As Range Dim tablo Dim cptr As Long, lig As Long Dim nbre_col As Byte, col As Byte Range("A1").Select Set plage = Range("A1").CurrentRegion nbre_col = plage.Columns.Count tablo = plage Application.ScreenUpdating = False 'plage.clearcontents lig = 1 For cptr = 1 To UBound(tablo) For col = 1 To nbre_col If tablo(cptr, col) <> "" Then ' 6 correspond à la colonne F Cells(lig, 6) = tablo(cptr, col) lig = lig + 1 End If Next Next End Sub
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
29 mai 2009 à 22:05
29 mai 2009 à 22:05
Salut,
Après avoir utilisé la fonction Donnée/Convertir, tu peux utiliser le collage spécial et cocher transposer, à condition de procéder par ligne et edition/collage spécial/transposer.
Si tu prends toutes tes lignes, la première ligne sera transposée en colonne , mais la deuxième ligne se mettra sur la colonne suivante.
pourquoi ne pas utiliser le code macro de Michel en intégrant la convertion et la transpostion sur la colonne A
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
Après avoir utilisé la fonction Donnée/Convertir, tu peux utiliser le collage spécial et cocher transposer, à condition de procéder par ligne et edition/collage spécial/transposer.
Si tu prends toutes tes lignes, la première ligne sera transposée en colonne , mais la deuxième ligne se mettra sur la colonne suivante.
pourquoi ne pas utiliser le code macro de Michel en intégrant la convertion et la transpostion sur la colonne A
A+
Mike-31
Un problème sans solution est un problème mal posé (Einstein)
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
29 mai 2009 à 23:40
29 mai 2009 à 23:40
Bonsoir tout le monde,
autre proposition :
Elimine les espaces superflus gauche et droite.
eric
autre proposition :
Sub AligneEnColonne() Dim i As Long, j As Long, ch() As String Application.ScreenUpdating = False For i = [A65536].End(xlUp).Row To 1 Step -1 ch = Split(Trim(Cells(i, 1)), " ") If UBound(ch) Then For j = UBound(ch) To 1 Step -1 Cells(i, 1).Offset(1, 0).Insert Shift:=xlDown Cells(i, 1).Offset(1, 0) = ch(j) Next j Cells(i, 1) = ch(0) End If Next i Application.ScreenUpdating = True End Sub
Elimine les espaces superflus gauche et droite.
eric