XL 2016 Conversion table vers autre table

Ldm.nico

XLDnaute Nouveau
Bonjour, en ces temps de vacances désolé de vous importuner avec mon problème. Je débute en VBA et j'ai besoin de vos précieuses connaissances.
Je souhaite convertir simplement la feuille Data en feuille Sortie, voir fichier ci-joint.
Données complémentaires:
le nombre de lignes de la table Data peut varier d'un mois sur l'autre.

Merci d'avance pour votre aide.
 

Pièces jointes

  • testVba1.xlsx
    11.5 KB · Affichages: 15

Ldm.nico

XLDnaute Nouveau
Désolé Sylvanu. Comme indiqué dans ma demande initiale, le nombre de ligne peut varier d'un mois à l'autre. Le fichier exemple aujourd'hui comporte 15 lignes mais il peut y avoir le mois prochain 20 lignes et dans ce cas le filtre ne fonctionnera que sur les 15 premières lignes..
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Surtout pour saluer tout le monde :),

Une autre méthode en VBA.
VB:
Sub test()
Dim der&, t, i&, j&, n&

Application.ScreenUpdating = False
   With Sheets("Data")
      der = Application.Match(String(255, "z"), Sheets("Data").Columns(1))
      t = Sheets("Data").Range("a1:g" & der)
      ReDim r(1 To der * 3, 1 To 5)
      n = n + 1: r(1, 1) = "Month": r(1, 2) = t(1, 1): r(1, 3) = t(1, 2): r(1, 4) = t(1, 3): r(1, 5) = "QTY"
      For i = 2 To UBound(t)
         For j = 5 To 7
            If t(i, j) <> "" Then n = n + 1: r(n, 1) = t(1, j): r(n, 2) = t(i, 1): r(n, 3) = t(i, 2): r(n, 4) = t(i, 3): r(n, 5) = t(i, j)
         Next j
      Next i
   End With
   With Sheets("Sortie")
      If .FilterMode Then .ShowAllData
      .Columns("a:e").Clear: .Columns(3).Resize(n).NumberFormat = "@"
      .Columns("a:e").Resize(n) = r
      .Columns("a:e").Resize(n).Sort key1:=.Range("a1"), order1:=xlAscending, Header:=xlYes
      .Columns("a:e").Resize(n).AutoFilter
      .Activate
   End With
End Sub
 

Pièces jointes

  • Ldm.nico- testVba1- v1.xlsm
    21.3 KB · Affichages: 4

Ldm.nico

XLDnaute Nouveau
Bonjour Mapomme, cette dernière proposition fonctionne aussi mais mes connaissances Vba ne me permette pas, actuellement, de la faire évoluer en fonction de mon fichier source évolutif...
Merci encore à toi.
Merci à tous de votre support.
 

Discussions similaires

M
Réponses
9
Affichages
614
Maikales
M

Statistiques des forums

Discussions
314 020
Messages
2 104 663
Membres
109 097
dernier inscrit
Guismow30