Extraction Etiquette/valeur d'une cellule et mise en forme du tableau

Bonjour,

je n'ai que très peu de connaissance Excel et je souhaiterai vous soumettre le problème suivant que je n'arrive pas à résoudre.

J'ai un fichier de départ sous la forme suivante:

  • Chaque cellule contient une étiquette et une valeur.
  • Chaque ligne contient le même nombre d'élément, il n'y que l'ordre qui change
"EtiquetteA":"valeurA1""EtiquetteB":"valeurB1""EtiquetteC":"valeurC1""EtiquetteD":"valeurD1"
"EtiquetteD":"valeurD2""EtiquetteA":"valeurA2""EtiquetteB":"valeurB2"
"EtiquetteC":"valeurC2"
"EtiquetteC":"valeurC3"
"EtiquetteA":"valeurA3"
"EtiquetteD":"valeurD3"
"EtiquetteB":"valeurB3"

Je souhaite à partir de ce fichier obtenir le fichier suivant:

EtiquetteAEtiquetteBEtiquetteCEtiquetteD
valeurA1valeurB1valeurC1valeurD1
valeurA2valeurB2valeurC2valeurD2
valeurA3valeurB3valeurC3valeurD3

D'avance merci pour votre aide.

Bap

Bonjour,

Sub TransposerLesEtiquettes()

Dim AireTab1 As Range
Dim I As Integer, LigneEnCours As Integer

   With Sheets("Feuil1")

        Set AireTab1 = .Range("A1:D3")

        .Range("A5:D5") = Array("EtiquetteA", "EtiquetteB", "EtiquetteC", "EtiquetteD")

        LigneEnCours = 6
        For I = 1 To AireTab1.Count
            If Split(AireTab1(I), ":")(0) = """EtiquetteA""" Then
               .Cells(LigneEnCours, 1) = Mid(Split(AireTab1(I), ":")(1), 2, Len(Split(AireTab1(I), ":")(1)) - 2)
               LigneEnCours = LigneEnCours + 1
            End If
        Next I

        LigneEnCours = 6
        For I = 1 To AireTab1.Count
            If Split(AireTab1(I), ":")(0) = """EtiquetteB""" Then
               .Cells(LigneEnCours, 2) = Mid(Split(AireTab1(I), ":")(1), 2, Len(Split(AireTab1(I), ":")(1)) - 2)
               LigneEnCours = LigneEnCours + 1
            End If
        Next I

        LigneEnCours = 6
        For I = 1 To AireTab1.Count
            If Split(AireTab1(I), ":")(0) = """EtiquetteC""" Then
               .Cells(LigneEnCours, 3) = Mid(Split(AireTab1(I), ":")(1), 2, Len(Split(AireTab1(I), ":")(1)) - 2)
               LigneEnCours = LigneEnCours + 1
            End If
        Next I

        LigneEnCours = 6
        For I = 1 To AireTab1.Count
            If Split(AireTab1(I), ":")(0) = """EtiquetteD""" Then
               .Cells(LigneEnCours, 4) = Mid(Split(AireTab1(I), ":")(1), 2, Len(Split(AireTab1(I), ":")(1)) - 2)
               LigneEnCours = LigneEnCours + 1
            End If
        Next I

   End With

   Set AireTab1 = Nothing

End Sub

Bonjour Erik,

merci pour cette réponse mais je ne sais pas quoi en faire. Disons que je sais faire du formatage conditionnel, quelques filtres et tri, voir utiliser quelques formules mais là ça dépasse mes connaissances.

Attendons alors que quelqu'un réponde avec une formule magique.

Hello,

Une proposition avec PowerQuery nativement intégré dans ta version d'Excel.

Je ne peux pas faire plus "magique"

Tu rentres tes datas dans le tableau de gauche, (rajout de ligne ou de colonnes) puis clic droit sur le tableau vert et "actualiser"

@+

10etiquettes.xlsx (19.38 Ko)

Bonsoir à tous !

Une proposition....."magique" ? (formule unique et dynamique)

=LET(
plg;A2:E4;

t;TRIER(FRACTIONNER.TEXTE(SUBSTITUE(JOINDRE.TEXTE("|";;DANSCOL(plg));"""";"");":";"|");1;1);
et;TRANSPOSE(UNIQUE(PRENDRE(t;;1)));
c;ORGA.COLS(PRENDRE(t;;-1);LIGNES(t)/NBVAL(et));
ASSEMB.V(et;c)
)

Sur la base du classeur de Baroute78 (merci !) :

Merci Baroute78 et JFL.

Je vais regarder ça.

Rechercher des sujets similaires à "extraction etiquette valeur mise forme tableau"