XL 2016 Transposition d'un tableau à double entrée.... Macro ?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jozerebel

XLDnaute Occasionnel
Bonsoir à tous !

Besoin de votre aide...

J'ai un tableau à double entrée avec des mois en colonne et des organismes en lignes.
Afin de le retraiter avec un tableau croisée dynamique, j'ai besoin de transposer ce tableau comme indiqué dans la PJ....

Et je sèche...

D'avance merci pour votre aide précieuse ! 🙂
 

Pièces jointes

Hello

une solution par macro
VB:
Sub Transposer()
Dim TabInit() As Variant
Dim TabFinal() As Variant
With Sheets("Initial")
    Lastline = .Range("A" & .Rows.Count).End(xlUp).Row
    LasCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    '.Range("A1").Resize(Lastline, LasCol).Select
    TabInit = .Range("A1").Resize(Lastline, LasCol).Value
    ReDim TabFinal(1 To UBound(TabInit, 1) * UBound(TabInit, 2), 1 To 4)
End With
indi = 1
For i = LBound(TabInit, 1) + 1 To UBound(TabInit, 1)
    TabFinal(indi, 1) = TabInit(i, 1)
    TabFinal(indi, 2) = TabInit(i, 2)
    For j = 3 To UBound(TabInit, 2)
        TabFinal(indi, 4) = TabInit(i, j)
        TabFinal(indi, 3) = TabInit(1, j)
        indi = indi + 1
        TabFinal(indi, 1) = TabInit(i, 1)
        TabFinal(indi, 2) = TabInit(i, 2)
    Next j
    
Next i
Sheets("Souhait").Range("A2").Resize(UBound(TabFinal, 1), UBound(TabFinal, 2)) = TabFinal
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
370
  • Question Question
Autres MACRO
Réponses
20
Affichages
478
Retour