Réalisation de calcul dans un tableau en vba

taupivin

XLDnaute Junior
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
 

Pièces jointes

  • Classeur2.xlsx
    257.5 KB · Affichages: 102
  • Classeur2.xlsx
    257.5 KB · Affichages: 109
  • Classeur2.xlsx
    257.5 KB · Affichages: 104

Gael

XLDnaute Barbatruc
Re : Réalisation de calcul dans un tableau en vba

Bonjour Taupivin, bonjour à tous,

Ci-joint un exemple avec le code ci-dessous ajouté dans la macro:

Code:
rg2.Offset(3, 2).FormulaR1C1 = "=IF(R[5]C[-1]<RC2,RC2,0)"
rg2.Offset(4, 2).FormulaR1C1 = "=RC[-1]+R[-1]C"
rg2.Offset(5, 2).FormulaR1C1 = "=RC2*R[-3]C"
rg2.Offset(6, 2).FormulaR1C1 = "=R[-2]C-R[-1]C"
rg2.Offset(7, 2).FormulaR1C1 = "=R[-6]C2*R[-4]C"
rg2.Offset(8, 2).FormulaR1C1 = "=(R[-4]C[-1]+R[-5]C2)-R[-3]C"
Range(rg2.Offset(3, 2), rg2.Offset(8, 6)).Select
Selection.FillRight

@+

Gael
 

Pièces jointes

  • Taupivin.xls
    476.5 KB · Affichages: 86

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 081
Membres
103 457
dernier inscrit
fab2614