Bonjour à tous,
Je souhaiterais créer une macro VBA pour récupérer les données d'un tableau croisé dynamique
Mon tableau croisé contient en ligne : les références articles / en valeurs : les qté en kg / et en colonne : le mois en cours et les mois restants (toujours 6derniers mois) (juin juillet..etc..décembre)
Sur mon fichier excel du mois de juin, la macro fonctionne très bien.
Pas de problèmes.
Mon soucis sera pour remplir le fichier excel pour les mois suivants.
Comment faire pour créer une macro qui récupère les données du TCD et qui soit fonctionnelles sur tout les mois de l'année.
Explications :
Dans mon TCD la colonne N°8 correspond au mois de juin.
Dans mon fichier excel à remplir, la colonne N°34 correspond au mois de juin.
Ma macro lui dit d'aller chercher les infos de la colonne 8 du TCD pour les coller dans la colonne 34 du fichier excel si les références d'artciles sont identiques. (respectivement colonne 2 du TCD et 3 du fichier excel)
Lorsque je passerai au mois suivant,
la colonne 8 sera juillet au lieu de Juin et dans mon fichier excel la colonne 34 sera celle du mois de juillet au lieu de juin.
merci donc de me dire comment faire pour récupérer les bonnes infos en sachant que chaque mois, le TCD sera incrémenter d'un mois.
Pour ne pas avoir les données du mois de juin sur juillet, celle de juillet sur aout...etc..etc..
Merci d'avance pour votre airde.
Cdlt
Momo
Voici la macro fonctionnelle pour le mois de juin.
Merci de me dire comment faire pour les mois suivants..
Sub carnetfresnoy()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim colJura, colJuira, colAora, colSeptra, colOctra, colNovra, colDecra, indspecra As Integer ''indice rationnel
Dim finra As Integer
Dim colJucarnet, colJuicarnet, colAocarnet, colSeptcarnet, colOctcarnet, indSpeccarnet, indgpestk As Integer '' indice carnet
Dim fin As Integer
Dim DIV As String
Dim FRES As String
DIV = "FRESNOY" '''division du programme, rationnel traité
carnet = "CARNET"
''''integre stock rettel
colJura = 34 ''indice colonne Juin dans le rationnel
colJuira = 35 ''indice colonne Juillet dans le rationnel
colAora = 36 '''indice colone Aout dans le rationnel
colSeptra = 37 '''indice colone Septembre dans le rationnel
colOctra = 38 '''indice colone Octobre dans le rationnel
colNovra = 39 '''indice colone Novembre dans le rationnel
colDecra = 40 '''indice colone Décembre dans le rationnel
indspecra = 3 ''indice de la specif dans le rationnel
fin = 218 ''dernière ligne du rationnel
colJuca = 8 ''indice colonne juin dans le carnet
colJuica = 9 ''indice colonne juillet dans le carnet
colAoca = 10 '''indice colone Aout dans le carnet
colSeptca = 11 '''indice colone Septembre dans le carnet
colOctca = 12 '''indice colone octobre dans le carnet
indGpeca = 3 ''indice du groupe dans le carnet
indspecca = 2 ''indice de la specif dans le carnet
i = 2
Do Until Worksheets(carnet).Cells(i, indGpeca).Value = "FRES" ''va jusqu'au spec Rettel
i = i + 1
Loop
'''Integre le carnet de la feuille dans le rationnel
Do While Worksheets(carnet).Cells(i, indGpeca).Value = "FRES"
j = 3
Do Until Worksheets(DIV).Cells(j, indspecra).Value = Worksheets(carnet).Cells(i, indspecca).Value Or Worksheets(DIV).Cells(j, indspecra + 1).Value = Worksheets(carnet).Cells(i, indspecca).Value
If j > fin Then
GoTo specsuivante
End If
j = j + 1
Loop
Worksheets(DIV).Cells(j, colJura).Value = Worksheets(DIV).Cells(j, colJura).Value + Worksheets(carnet).Cells(i, colJuca).Value
Worksheets(DIV).Cells(j, colJuira).Value = Worksheets(DIV).Cells(j, colJuira).Value + Worksheets(carnet).Cells(i, colJuica).Value
Worksheets(DIV).Cells(j, colAora).Value = Worksheets(DIV).Cells(j, colAora).Value + Worksheets(carnet).Cells(i, colAoca).Value
Worksheets(DIV).Cells(j, colSeptra).Value = Worksheets(DIV).Cells(j, colSeptra).Value + Worksheets(carnet).Cells(i, colSeptca).Value
Worksheets(DIV).Cells(j, colOctra).Value = Worksheets(DIV).Cells(j, colOctra).Value + Worksheets(carnet).Cells(i, colOctca).Value
Worksheets(carnet).Cells(i, 15).Value = "ok dans le rationnel"
specsuivante:
i = i + 1
Loop
End Sub