Formule Excel VBA

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

2 réponses

  1. G_33
     
    Bonsoir
    c'est très confut
    Un fichier + vos besoins nous aiderait à mieux comprendre

    Cordialement
    0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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 code
    Sub 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
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour à tous,

      heuu michel, tu n'aurais pas oublié des " et des & ?

      "=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)"

      eric
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour Eric, ça va? :o)

      Oui, p'tet bin !!! mais comme je trouve le + souvent bizarre d'écrire des formules dans une procédure, je ne connais pas bien ce genre de syntaxe

      en tout cas, merci et bon WE
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Ca va bien, merci
      Bon WE à toi aussi :-)
      eric
      0