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".....

1664179320011.png



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: 7

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 499
Messages
2 110 249
Membres
110 711
dernier inscrit
chmessi