Création Macro avec boucle sur mois

Bonjour à tous,

Je souhaiterais créer une macro VBA pour récupérer les données d'un tableau croisé dynamique

Voir fichier joint :

Tableau croisé dynamique sous onglet CARNET

Fichier excel à remplir sous onglet FRESNOY

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, juillet N°9, aout N°10...etc

Dans mon fichier excel à remplir, la colonne N°34 correspond au mois de juin, juillet N°35, Aout N°36..etc

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

Voir fichier joints.

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

Si besoin d'autres infos ou si je n'ai pas été assez claire,

n'hésitez pas à me le faire savoir pour de futures demandes.

Sinon merci de votre attention et merci d'avance pour vos réponses qui, je l'espère, me seront d'une grande utilité.

Cdlt

Morgan

Cette demande est très importante.

D'autres topics contiennent des réponses assez claire.

Merci de faire votre possible pour me dépanner.

Cdlt

Morgan

Bonjour,

Je répond car tu m'as sollicité par MP. Ce n'est sûrement pas la meilleure chose à faire. On choisit les questions qui nous intéressent...

D'autres topics contiennent des réponses assez claire.

Sans doute que la question l'était aussi et le fichier fourni correct pour s'y prêter facilement.

Le tien ne ressemble à rien. Aucune règle des BdD n'est respectée. Il faudrait y passer 2 jours pleins pour essayer d'en tirer qcq chose. Pas envie...

De plus tu parles de pb pour les mois suivants et aucune zone de saisie n'est prévue pour eux. La moindre de chose est de fournir un fichier en accord avec la demande.

Par ailleurs, si tu réponds à ton propre post les helpers pensent que qcq'un est dessus puisqu'il y a des réponses. Attend 48h pour relancer.

Bon courage

eric

Salut Eric,

Désolé mais ce code est très claire.

En tant qu'ingénieur je pensais que tu le comprendrais.

Désolé que tu le comprennes pas.

Je t'ai "surrestimé".

Et pour info, il ne faut surement pas 2 jours pour créer ce code et le comprendre.

En tout cas merci quand même.

J'ai vu le problème avec Dan, qui lui ne trouve pas que "ça ressemble à rien" ou du moins il est assez poli pour ne pas me le dire.

Et tu sais, pour info, pas besoin de respecer les règles des bases de données pour faire fonctionner une macro quand on est plus à l'école.

Enfin bref,

Merci quand même mais je ne conseillerai pas ton aide à d'autres user.

Ciao

Bonjour,

J'ai vu le problème avec Dan

Aurais-tu posté ta demande sur d'autres forums ?

En tant qu'ingénieur tu comprendras que c'est contre-productif de bosser pour rien et qu'il est de bon ton de le signaler. Ca permet de voir ce qui a déjà été proposé et de voir l'avancée.

En tant qu'utilisateur de forum tu comprendras aussi qu'il est très mal vu de poster des doublons dans un même forum pour les même raisons. Si tu pouvais éviter. Merci

eric

Salut Eric,

j'ai envoyé un MP à Dan qui va se pencher ur le problème,

J'ai créé un topic comme tu me l'as demander et j'avais reposer ma question sur un autre topic avant que tu me demandes de créer le mien. Je comprends bien que les doublons sont un peu génants.

Je comprends bien ta réponse mais si tu pouvais jeter un oeil sur mon fichier ça serait sympa de ta part.

Sinon ce n'est pas grave.

En sachant que ma demande n'est pas si compliqué que ça...

Bonne journée eriiic et merci quand même

A+..

momo57 a écrit :

Salut Eric,

Désolé mais ce code est très claire.

En tant qu'ingénieur je pensais que tu le comprendrais.

Désolé que tu le comprennes pas.

Je t'ai "surrestimé".

Et pour info, il ne faut surement pas 2 jours pour créer ce code et le comprendre.

En tout cas merci quand même.

J'ai vu le problème avec Dan, qui lui ne trouve pas que "ça ressemble à rien" ou du moins il est assez poli pour ne pas me le dire.

Et tu sais, pour info, pas besoin de respecer les règles des bases de données pour faire fonctionner une macro quand on est plus à l'école.

Enfin bref,

Merci quand même mais je ne conseillerai pas ton aide à d'autres user.

Ciao

Rechercher des sujets similaires à "creation macro boucle mois"