Formule Excel VBA
fgoul
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je m'adresse à vous en tant que débutant sur Excel VBA,
Je chercher simplement à utiliser des variables afin de rendre plus simple le code suivant :
ActiveCell.FormulaR1C1 = _
"=MAX(0,'DS Inventory Movement'!R[11]C*'DS Inventory Movement'!R[8]C+'DS Inventory Movement'!R[12]C+'DS Inventory Movement'!R[9]C)"
Range("O15").Select
ActiveCell.FormulaR1C1 = _
"=MAX('DS Inventory Movement'!R[23]C*'DS Inventory Movement'!R[20]C+'DS Inventory Movement'!R[21]C+'DS Inventory Movement'!R[24]C)"
Range("O16").Select
ActiveCell.FormulaR1C1 = _
"=MAX('DS Inventory Movement'!R[35]C*'DS Inventory Movement'!R[32]C+'DS Inventory Movement'!R[33]C+'DS Inventory Movement'!R[36]C)"
Range("O17").Select
Mes lignes font toujours des bons de 12 et je dois changer de ligne pour chaque nouvelle réponse.
Merci
Je m'adresse à vous en tant que débutant sur Excel VBA,
Je chercher simplement à utiliser des variables afin de rendre plus simple le code suivant :
ActiveCell.FormulaR1C1 = _
"=MAX(0,'DS Inventory Movement'!R[11]C*'DS Inventory Movement'!R[8]C+'DS Inventory Movement'!R[12]C+'DS Inventory Movement'!R[9]C)"
Range("O15").Select
ActiveCell.FormulaR1C1 = _
"=MAX('DS Inventory Movement'!R[23]C*'DS Inventory Movement'!R[20]C+'DS Inventory Movement'!R[21]C+'DS Inventory Movement'!R[24]C)"
Range("O16").Select
ActiveCell.FormulaR1C1 = _
"=MAX('DS Inventory Movement'!R[35]C*'DS Inventory Movement'!R[32]C+'DS Inventory Movement'!R[33]C+'DS Inventory Movement'!R[36]C)"
Range("O17").Select
Mes lignes font toujours des bons de 12 et je dois changer de ligne pour chaque nouvelle réponse.
Merci
2 réponses
-
Bonsoir
c'est très confut
Un fichier + vos besoins nous aiderait à mieux comprendre
Cordialement -
Bonjour
Si tous les éléments de ta formule sautent de 12 lignes comme tu le demandes mais cela ne correspond pas à ton code (sauts respectifs: 9 et 15....)Movement'!R[12]C+'DS Inventory Movement'!R[9]C)" puis Movement'!R[21]C+'DS Inventory Movement'!R[24]C)" ????
essaies ce codeSub yyy() Dim cptr As Byte, pas As Byte For cptr = 0 To 3 pas = cptr * 12 Cells(cptr + 14, "O").FormulaR1C1 = _ "=MAX(0,'DS Inventory Movement'!R[11+pas)]C*'DS Inventory Movement'!R[8+pas]C+'DS Inventory Movement'!R[12+pas]C+'DS Inventory Movement'!R[9+pas]C)" Next End Sub
question: est les formules que tu veux obtenir (dans ce cas, utilité de VBA?) ou les valeurs
Michel