Transformation d'une matrice en liste grâce à une macro

Bonjour,

Pourriez-vous me faire une macro qui transformerait n'importe quel tableau sous forme de matrice en une liste svp ?

Voici un exemple de matrice que j'ai et le résultat que j'aimerai obtenir autrement qu'en faisant des C/C en transposant !

Merci par avance pour votre aide !!

16matrice.xlsx (11.55 Ko)

bonjour Auberi,

un essai, mais si vous avez >=Excel365, c'est encore plus facile ....

12matrice-1.xlsx (13.35 Ko)

Bonjour Auberi,

Ci-dessous une possibilité

Sub TransformeMatrice()
  Dim ShtS As Worksheet ' Feuille Source
  Dim ShtD As Worksheet ' Feuille Destination
  Dim dCol As Long, Col As Long
  Dim dLig As Long, Lig As Long
  Dim Ind As Long
  ' Définir les objets feuille
  Set ShtD = ThisWorkbook.Sheets("Résultat attendu")
  Set ShtS = ThisWorkbook.Sheets("Matrice")
  dCol = ShtS.Cells(1, Columns.Count).End(xlToLeft).Column
  dLig = ShtS.Range("A" & Rows.Count).End(xlUp).Row
  Ind = 1
  For Lig = 2 To dLig
    For Col = 2 To dCol
      ShtS.Cells(Lig, Col).Copy Destination:=ShtD.Range("A" & Ind)
      Ind = Ind + 1
    Next Col
  Next Lig
End Sub

Edit : salut BsAlv

Bonjour BsAlv,

Merci pour la formule !

J'ai excel 365, est-ce que vous pouvez développer du coup svp ?? J'ai essayé avec Power Quercy mais je ne suis pas arrivée à mes fins et j'avoue que je n'ai pas trop le temps de chercher là tout de suite, d'où ma requête sur le forum... Ayant déjà eu des retours parfaits ici, je préfère solliciter des personnes qui touchent vraiment excel plutôt que de galérer...

Merci par avance !

Bonjour à tous,

=DANSCOL(Matrice!B2:F11)

et pour faire une "vraie" liste

=FILTRE((DANSCOL(Matrice!B2:F11));DANSCOL(Matrice!B2:F11)<>"")

Crdlmt

Bonjour DjiDji59430,

Merci, c'est tout bête et c'est exactement ce qu'il me fallait en fait !!

Ce forum est vraiment merveilleux, merci à tous pour votre aide !!

Bonjour à tous !

Pour le "fun", une approche type Power Query sur la base du tableau structuré nomme tSource :

let
    Source = List.Combine(
        List.Transform(
            Table.ToRows(Excel.CurrentWorkbook(){[Name = "tSource"]}[Content]), 
            List.Skip
        )
    )
in
    Source
Rechercher des sujets similaires à "transformation matrice liste macro"