Bonsoir,
avec quelques commentaires
Sub aargh()
Set wsb = Sheets("exemple base a creer") ' wsb = feuille dans laquelle mettre le budget réparti par mois, produit,semaine et produit
dl = wsb.Cells(Rows.Count, 1).End(xlUp).Row ' nombre de lignes de wsb
wsb.Cells(2, 1).Resize(dl, 6).Delete 'on efface le contenu précédent
Set wsi = Sheets("fichier initial") 'wsi feuille avec le budget et les pourcentages de répartition par mois et par produit
ligne = 1 'n° de ligne cours sur wsb
With wsi
dl = .Cells(Rows.Count, 1).End(xlUp).Row ' nombre de lignes sur wsi = nombre de fournisseurs
societe = .Cells(1, 1) ' nom de la société est en cellule A1
societe = Mid(societe, InStr(societe, "global") + 7) ' après le mot global
Set basetab = .Range("J9") ' basetab base du tableau avec les pourcentages de répartition
For mois = 1 To 12 'pour chaque mois
For produit = 1 To 6 'pour chaque produit
nsemainemois = basetab.Cells(mois + 2, 8) ' nombre de semaine dans le mois en cours
For semaine = 1 To nsemainemois ' pour chaque semaine dans le mois
For fournisseur = 3 To dl ' pour chaque fournisseur
ligne = ligne + 1 'on ajoute une ligne sur wsb
wsb.Cells(ligne, 1) = .Cells(fournisseur, 1) 'nom du fournisseur
wsb.Cells(ligne, 2) = societe
wsb.Cells(ligne, 3) = mois
wsb.Cells(ligne, 4) = semaine
wsb.Cells(ligne, 5) = basetab.Cells(2, produit + 1) 'nom du produit
wsb.Cells(ligne, 6) = .Cells(fournisseur, produit + 1) * basetab(mois + 2, produit + 1) / nsemainemois 'budget de la semaine
Next fournisseur
Next semaine
Next produit
Next mois
End With
End Sub