Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Transposer colonnes en lignes

erics83

XLDnaute Impliqué
Bonjour,

J'ai un fichier avec plusieurs données : un article peut aller sur plusieurs "destinations". Ces destinations sont en colonne. J'aimerai n'avoir plus que 1 ligne pour chaque article. Donc j'ai commencé par faire un copier/transposé mais j'ai plus de 10000 articles.....donc je souhaitais savoir si on pouvait "automatiser".....




Merci pour votre aide,
 

Pièces jointes

  • Classeurtestcolonneligne.xlsx
    10.2 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Eric, vgendron
Un essai à tester en PJ avec :
VB:
Sub transposition()
    Dim T, Tout, L, i, j, Article, T0
    T0 = Timer
    T = [A1].CurrentRegion
    ReDim Tout(UBound(T, 1) * UBound(T, 2), 1)
    L = 0
    For i = 2 To UBound(T)
        Article = T(i, 1)
        For j = 2 To UBound(T, 2)
            If T(i, j) = "" Then Exit For
            Tout(L, 0) = Article: Tout(L, 1) = T(i, j)
            L = L + 1
        Next j
    Next i
   [S2].Resize(UBound(Tout, 1), 1 + UBound(Tout, 2)) = Tout
   MsgBox "Exécuté en " & Round(Timer - T0, 3) & "s"
End Sub
Sur mon vieux PC, les 10000 articles sont traités en 0.6s.
 

Pièces jointes

  • Classeurtestcolonneligne.xlsm
    676.5 KB · Affichages: 6

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…