XL 2016 Transformer tableau en un autre

nono5960

XLDnaute Nouveau
Bonjour,

Je souhaite transformer un tableau avec énormément de données d'un format à un autre.
Au lieu de vous expliquez par écrit, j'ai fais un exemple. Je souhaite passer du format A au format B.
Désolé je suis novice en xls mais j'essai d'apprendre !!
Merci pour votre aide
Cordialement
 

Pièces jointes

  • EXEMPLE TABLEAU.xlsx
    9.8 KB · Affichages: 7

nono5960

XLDnaute Nouveau
Bonjour mapomme et les autres,
Je comprends pas bien la proposition de réponse "recopier les cellules J1:L1 vers le bas jusqu'à obtenir des lignes de cellules vides" Si je fais ça j'aurais que des cellules vides :)
En fait je souhaite transformer un tableau croisé dynamique (tableau A) en tableau en liste (dsl je ne sais pas comment on dit :confused:), voir mon exemple dans mon message d'origine.
Merci
 

Pièces jointes

  • EXEMPLE TABLEAU.xlsx
    9.8 KB · Affichages: 2

JHA

XLDnaute Barbatruc
Bonjour à tous,

Avec excel 2019, tu pointes dans une des cellules du tableau.
Dans le ruban, données/A partir de tableau ou d'une plage
Ton tableau s'affiche dans Power Query
Puis tu sélectionnes les colonnes des couleurs
Tu vas dans l'onglet "Transformer" puis dépivoter les colonnes
puis tu retournes dans l'onglet "Accueil" et "Fermer et charger" et tu choisis où tu veux mettre tes données.

JHA
 

cp4

XLDnaute Barbatruc
Bonjour @nono5960 , @mapomme, @JHA,

Je me souviens avoir un fichier trouvé sur le net traitant ce genre de problématique (passage d'un tableau à 2 entrées vers un tableau classique).
Mais vu que je suis très brouillon, je ne parviens à retrouver le fichier.
Cependant une recherche sur Google m'a permis de trouver une vidéo qui traite un problème très similaire à celui de Nono5960.
Je n'ai pas eu de difficultés particulières pour adapter le code (Le lien est dans le code à toutes fins utiles).
VB:
Option Explicit
'inspirer de ce lien: https://www.youtube.com/watch?v=sn-PiCDvhbM&t=154s
Sub ConvertirTableauEnListe()
    Dim Rng As Range, cellule As Range
    Dim LigneTitre As Integer, ColonneTitre As Integer
    Dim Ligne As Integer, Colonne As Integer

With Sheets("feuil1")
    Set Rng = .Range("B2").CurrentRegion    'on recupere tableau dans variable Rng
    Set cellule = .[J1]
    cellule.CurrentRegion.Clear

    'on recupere n° de ligne titre et n° de colonne titre
    LigneTitre = Rng.Cells(1).Row
    ColonneTitre = Rng.Cells(1).Column

    Dim celluleTableau As Range
    For Each celluleTableau In Rng
                If IsNumeric(celluleTableau) Then
        cellule = Cells(celluleTableau.Row, ColonneTitre)
        cellule.Offset(0, 1) = Cells(LigneTitre, celluleTableau.Column)
        cellule.Offset(0, 2) = celluleTableau
        Set cellule = cellule.Offset(1, 0)
                End If
    Next celluleTableau
End With
End Sub

Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 920
Messages
2 093 640
Membres
105 770
dernier inscrit
fredericdupont03