Boujour à tous,
Boujour à tous,
Mon problème est le suivant: je souhaite réaliser une série de calcul dans des tableaux de manière automatique et je ne sais pas comment le coder.
Vous trouverez dans le document joint le tableau final souhaité avec les formules à appliquer.
Voici mon code actuel : Les calculs se font uniquement dans la première colonne et je ne sais pas comment faire pour les étirer de manière automatique.
Sub CreationTab()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim rg1 As Range, rg2 As Range
Set ws1 = ThisWorkbook.Sheets("Traitement") 'feuille de départ
Set ws2 = ThisWorkbook.Sheets("Tableaux") 'feuille de destination
Set rg1 = ws1.Range("A2") 'on part de la cellule A2
Set rg2 = ws2.Range("A1") 'le 1er tableau créé est en A1 de la feuille Destination
Do Until IsEmpty(rg1) 'on part de A2 et on boucle
rg2 = "Code" '.. on crée le tableau, 1re colonne
rg2.Offset(0, 1) = "Tps unitaire"
rg2.Offset(1, 0) = rg1
rg2.Offset(1, 1) = "=VLOOKUP(RC[-1],Traitement!R2C1:R8C7,7,FALSE)"
rg2.Offset(2, 0) = "N°séquence"
rg2.Offset(3, 0) = "Prod à réaliser"
rg2.Offset(3, 1) = "=VLOOKUP(R[-2]C[-1],Traitement!R2C1:R8C4,4,FALSE)*VLOOKUP(Tableaux!R[-2]C[-1],Traitement!R2C1:R8C9,9,FALSE)"
rg2.Offset(4, 0) = "Evolution prod"
rg2.Offset(4, 1) = "=R[-1]C"
rg2.Offset(5, 0) = "Previsions"
rg2.Offset(5, 1) = "=VLOOKUP(R[-4]C[-1],Traitement!R2C1:R8C8,8,FALSE)"
rg2.Offset(6, 0) = "Delta"
rg2.Offset(6, 1) = "=R[-2]C-R[-1]C"
rg2.Offset(7, 0) = "Tps de réalisation"
rg2.Offset(7, 1) = "=R[-6]C*R[-4]C"
Range(rg2.Offset(2, 1), rg2.Offset(2, 6)) = Array(1, 2, 3, 4, 5, 6) ' .. pour écrire de 1 à 6 dans les colonne colonne
Set rg2 = rg2.Offset(10, 0) ' on se déplace de 2 colonnnes pour créer le 2e tableau
Set rg1 = rg1.Offset(1, 0) 'on passe à la ligne suivante
Loop
End Sub
Merci d'avance
Boujour à tous,
Mon problème est le suivant: je souhaite réaliser une série de calcul dans des tableaux de manière automatique et je ne sais pas comment le coder.
Vous trouverez dans le document joint le tableau final souhaité avec les formules à appliquer.
Voici mon code actuel : Les calculs se font uniquement dans la première colonne et je ne sais pas comment faire pour les étirer de manière automatique.
Sub CreationTab()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim rg1 As Range, rg2 As Range
Set ws1 = ThisWorkbook.Sheets("Traitement") 'feuille de départ
Set ws2 = ThisWorkbook.Sheets("Tableaux") 'feuille de destination
Set rg1 = ws1.Range("A2") 'on part de la cellule A2
Set rg2 = ws2.Range("A1") 'le 1er tableau créé est en A1 de la feuille Destination
Do Until IsEmpty(rg1) 'on part de A2 et on boucle
rg2 = "Code" '.. on crée le tableau, 1re colonne
rg2.Offset(0, 1) = "Tps unitaire"
rg2.Offset(1, 0) = rg1
rg2.Offset(1, 1) = "=VLOOKUP(RC[-1],Traitement!R2C1:R8C7,7,FALSE)"
rg2.Offset(2, 0) = "N°séquence"
rg2.Offset(3, 0) = "Prod à réaliser"
rg2.Offset(3, 1) = "=VLOOKUP(R[-2]C[-1],Traitement!R2C1:R8C4,4,FALSE)*VLOOKUP(Tableaux!R[-2]C[-1],Traitement!R2C1:R8C9,9,FALSE)"
rg2.Offset(4, 0) = "Evolution prod"
rg2.Offset(4, 1) = "=R[-1]C"
rg2.Offset(5, 0) = "Previsions"
rg2.Offset(5, 1) = "=VLOOKUP(R[-4]C[-1],Traitement!R2C1:R8C8,8,FALSE)"
rg2.Offset(6, 0) = "Delta"
rg2.Offset(6, 1) = "=R[-2]C-R[-1]C"
rg2.Offset(7, 0) = "Tps de réalisation"
rg2.Offset(7, 1) = "=R[-6]C*R[-4]C"
Range(rg2.Offset(2, 1), rg2.Offset(2, 6)) = Array(1, 2, 3, 4, 5, 6) ' .. pour écrire de 1 à 6 dans les colonne colonne
Set rg2 = rg2.Offset(10, 0) ' on se déplace de 2 colonnnes pour créer le 2e tableau
Set rg1 = rg1.Offset(1, 0) 'on passe à la ligne suivante
Loop
End Sub
Merci d'avance