Présenter les valeurs séparées par une virgule verticalement

Bonjour à tous,

Je souhaites réorganiser la présentation d'un fichier , que je récupère d'une application tierce.

Des valeurs multiples contenus dans une ligne de colonne , se présente horizontalement,séparée par une virgule.

Exemple : H314,H335,H412

Objectif : les reorganiser verticalement sur plusieurs lignes dans la même colonne

H314

H335

H412

Merci de votre aide

Jean Pierre

Bonsoir,

Voir avec la fonction Split() :

Sub Test()

    Dim Tbl

    Tbl = Split("H314,H335,H412", ",")

    Range(Cells(1, 1), Cells(UBound(Tbl) + 1, 1)) = Application.Transpose(Split("H314,H335,H412", ","))

End Sub

bonjour

extraction selon tulipe

35jpsept.xlsx (18.03 Ko)

cordialement

bonjour

extraction selon tulipe

jpsept.xlsx

cordialement

Bonjour,

Je vous remercie pour votre réponse, mais le résultat souhaité n'est pas de transposer les valeurs sur d'autres colonnes ou lignes, mais de les présenter verticalement dans la même cellule (sans la virgule).

SGH02, SGH07, SGH08 = SGH02

SGH07

SGH08

Merci de votre aide

jean pierre

bonjour

pourquoi ne pas l'avoir fait à la saisie avec les touches Alt et Entrée

visuellement ,du cel par cel ne change pas grand chose

cordialement

Bonjour à tous,

Alors c'est :

    ActiveCell = Join(Split(ActiveCell, ","), Chr(10))

Remplacer ActiveCell par la cellule, et la mettre en saut de ligne automatique.

Cordialement.

Bonjour à tous,

Alors c'est :

    ActiveCell = Join(Split(ActiveCell, ","), Chr(10))

Remplacer ActiveCell par la cellule, et la mettre en saut de ligne automatique.

Cordialement.

Bonjour Monsieur Ferrand,

Un peu de confusion à ce stade me concernant !

Pourriez vous installer cette fonction dans mon fichier ? afin de bien comprendre ou me montrer pas à pas votre procédure.

merci de votre aide

jean Pierre

Jean Pierre

resultat souhaite code md

Il ne s'agit pas de formule, mais d'une ligne de code à intégrer dans une procédure semblable à celle que t'avait proposée Theze... Voici adapté à ton fichier.

Sub CodeMD()
    Dim c As Range
    With ActiveSheet
        For Each c In .Range("H2:H" & .Cells(.Rows.Count, 8).End(xlUp).Row)
            If InStr(1, c, ",") > 0 Then
                c = Join(Split(c, ","), Chr(10))
                c.WrapText = True
            End If
        Next c
    End With
End Sub

Clique sur le bouton que j'ai mis en tête de colonne pour tester.

Cordialement.

Il ne s'agit pas de formule, mais d'une ligne de code à intégrer dans une procédure semblable à celle que t'avait proposée Theze... Voici adapté à ton fichier.

Sub CodeMD()
    Dim c As Range
    With ActiveSheet
        For Each c In .Range("H2:H" & .Cells(.Rows.Count, 8).End(xlUp).Row)
            If InStr(1, c, ",") > 0 Then
                c = Join(Split(c, ","), Chr(10))
                c.WrapText = True
            End If
        Next c
    End With
End Sub

Clique sur le bouton que j'ai mis en tête de colonne pour tester.

Cordialement.

Bonsoir Monsieur Ferrand,

Le resultat est satisfaisant , cela répond partiellement à mon besoin , pourrions nous avoir cette macros opérationnelle sur toutes les colonnes qui ont des données avec séparateurs , sur la même ligne .

En fait l'objectif pour ce projet est de mettre en forme un fichier excel à partir de fichiers récupérés depuis une application tierce.

Pourrions nous avoir un contact direct pour en discuter

Cordialement

JP

Bonsoir Monsieur Ferrand,

Concernant la colonne H , le resultat est ok

Pourriez vous m’éditer le code pour l'appliquer aux colonnes de la liste ci dessous , ( chaque intitulé commence par la lettre de la colonne)

F-Pictogrammes

H-Codes MD

X-N° CAS

Y-N° CE

Z-Nom de la Substance

AA-Concentration (%)

AB-Pictogrammes

AC-Mention d’avertissement

AD-Mention de danger

AE-Cancérogène

AF-Mutagène

AG-Reprotoxique

AJ-VLCT mg.m3

AK-VLCT ppm

Al-VLEP 8h

AM-VLEP 8h

AN-Nature de la VLEP

Je vous remercie de votre aide

Jean Pierre

Voilà pour l'appliquer à l'ensemble des colonnes indiquées :

Sub Codes()
    Dim c As Range, n%, i%, Col
    Col = Split("F H X Y Z AA AB AC AD AE AF AG AJ AK AL AM AN")
    Application.ScreenUpdating = False
    With Worksheets("DATA")
        n = .Cells(.Rows.Count, 1).End(xlUp).Row - 1
        For i = 0 To UBound(Col)
            For Each c In .Range(Col(i) & 2).Resize(n)
                If InStr(1, c, ",") > 0 Then
                    c = Join(Split(c, ","), Chr(10))
                    c.WrapText = True
                End If
            Next c
        Next i
    End With
End Sub

Cordialement.

Bonjour Monsieur Ferrand,

merci pour votre précieuse aide , c'est résolu.

Cordialement

Jean Pierre

Rechercher des sujets similaires à "presenter valeurs separees virgule verticalement"