Diviser une cellule en plusieurs lignes en fonction d'un caractère

Bonjour à tous,

Mon problème part d'une extraction Excel, issu d'un logiciel de suivi de production. Une des cellules de ce fichier extrait contient des critères descriptifs de chaque référence, compactée sous la forme suivante :

image

Je souhaiterais automatiser (avec formules ou macros) le passage de ce précédent format au suivant :

image

J'ai trouvé un site qui propose ce genre de transformation via un outil se nommant Kutool (je ne peux malheureusement pas poster de lien au vu de mes débuts tout frais sur le forum). Intéressant, mais payant, avec un site qui me parait peu scrupuleux. Je préfère donc éviter.

D'avance, merci beaucoup à tous ceux qui prendront la peine de se pencher sur le sujet.

Bien à vous,

FUMU.

Bonjour,

Un essai à l'aide de Power Query ?

Onglet Données -> Afficher les requêtes

18essai.xlsx (15.52 Ko)

Bonjour,

Autre solution en VBA

Sub Isoler_les_elements()
    Dim Valeur As Variant
    Dim Texte As String
    Application.ScreenUpdating = False
    Texte = ";" & Range("A4").Value & ";"
    Texte = Replace(Texte, " ", "")

    'Restitution
    Valeur = Split(Texte, ";")
    ReDim Restit(UBound(Valeur)) As String
    For i = 1 To UBound(Valeur) - 1
        Restit(i) = Valeur(i)
    Next
    Range(Cells(5, "A"), Cells(UBound(Valeur) + 4, "A")) = Application.WorksheetFunction.Transpose(Restit)
End Sub

Cdlt

Bonjour,
Une autre proposition Power Query.
Cdlt.

13essai-v2.xlsx (20.83 Ko)
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content],
    SplitColumn = Table.ExpandListColumn(Table.TransformColumns(Source, {{"Fruits", Splitter.SplitTextByDelimiter("; ", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Fruits")
in
    SplitColumn

Bonjour à tous !

Et....

Vous parlez d'extraction, il serait peut-être opportun d'intégrer celle-ci, avec la transformation demandée, via Power Query. Un fichier exemple à poster ?

@JB_ : Dans l'étape "Fractionnement", l'option avancée permet d'opérer celui-ci en colonne..... ou en ligne. Cela évite de transposer ensuite.
Par ailleurs, en passant le délimiteur en mode personnalisé et en saisissant "; " (avec un espace) est fort utile dans le cas présent.

13copie-de-essai.xlsx (16.35 Ko)

Re,
Bonjour JFL,
Voir ma réponse ...
Cdlt.

Exact

Merci pour votre remarque !

Bonjour de nouveau !

@Jean-Eric :

Merci à tous pour votre intérêt. Je vais me pencher sur chacune de vos solutions.

@JFL, je joins un fichier d'essai à ce message. La colonne qui m'intéresse est la colonne C, 'Motif du KO'. J'ai laissé quelques autres colonnes, qui sont importantes, particulièrement la colonne B, 'Echantillon'. Elle l'est de par son incrémentation par rapport à la colonne A: il peut y avoir plusieurs Soum et taille pour une même référence (colonne A), ce qui a un impact fort sur la structure du fichier.

edit: je me suis dit qu'il serait peut-être intéressant de rajouter ce point pour mieux comprendre le problème. Les fichiers concernés sont des fichiers d'extraction au plus long hebdomadaire, impliquant que je serai régulièrement amené à effectuer cette opération de séparation en ligne. Le but est de pouvoir sortir facilement, à chaque référence, une charte résumant les différents 'Motifs KO' et leurs évolutions temporelles.

Bonjour de nouveau !

Une proposition :

Vous devriez, dans votre profil, indiquer la version Excel que vous utilisez ainsi que son éventuel environnement MAC.

@JFL, une requête seulement avec PQ, c'est on ne peut plus efficace. Merci beaucoup, c'est exactement ce qu'il me fallait. J'ignorais que c'était possible.

Un grand merci à tous pour votre contribution.

Bien à vous,

FUMU.

Rechercher des sujets similaires à "diviser lignes fonction caractere"