Transformation tableau --> base de donnée VBA

Chapu

XLDnaute Nouveau
Bonjour à tous !

Après quelques recherches et essais infructueux je me tourne vers vous.
Je souhaiterais obtenir une base de donnée à partir d'un tableau. En fait ça serait faire l'inverse d'un TCD : à partir d'un TCD retrouver la base de donnée d'origine.

Dans le fichier exemple joint j'ai en entrée-ligne les pièces puis en entrée-colonne les mois et une sous-catégorie des types. J'aimerais obtenir une base de donnée sous la forme de celle en exemple dans la feuille "Table d'arrivée" (je l'ai arrêtée au mois de février, mais je souhaiterais quelle aille jusqu'à décembre !).

Je pense que ça doit pouvoir se faire rapidement avec une boucle en VBA, mais étant débutant je n'y arrive pas :(. J'espère avoir été assez clair...

Merci d'avance pour votre aide,

Chapu
 

Pièces jointes

  • Exemple transformation.xlsx
    18.9 KB · Affichages: 135

Bebere

XLDnaute Barbatruc
Re : Transformation tableau --> base de donnée VBA

bonjour Chapu
à mettre dans u module

Code:
Sub transfert()
    Dim Tbl As Variant, L As Long, Li As Long, C As Byte, M As Byte

    With Worksheets("Table de départ")
        Tbl = .Range("B2").CurrentRegion
    End With

    Application.ScreenUpdating = False
    With Worksheets("Table d'arrivée")
        Li = 3
        For C = 2 To 36
            If Tbl(2, C) = "Vis" Then M = M + 1'mois
            For L = 3 To UBound(Tbl)
                .Range("B" & Li) = Tbl(L, 1)    'pièces
                .Range("C" & Li) = M    'mois
                .Range("D" & Li) = Tbl(2, C)  'type
                .Range("E" & Li) = Tbl(L, C)    'quantité
                Li = Li + 1
            Next

        Next
    End With
    Application.ScreenUpdating = True

End Sub

à bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 684
Messages
2 090 916
Membres
104 698
dernier inscrit
miespetico