Faire varier le numero dúne ligne dans une formule

Résolu
davmat -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour a tous,

Désolé si cette question a déjà été posée mais je ne trouve pas.

Voila j'ai cette formule:
ActiveCell.FormulaR1C1 = _
"=SQRT(SUMSQ(R[nb]C[-1]-RC[-1],R[nb]C[-2]-RC[-2],R[]C[-3]-RC[-3],R[i]C[-4]-RC[-4],R[i]C[-5]-RC[-5],R[]C[-6]-RC[-6]))"

et donc j'aimerais faire varier nb. Cela ne marche pas.

Voici le code complet:

Sub CalculateCalculateDistances()
Dim c As String
c = ActiveCell.Value
For nb = 1 To 50
ActiveCell.FormulaR1C1 = _
"=SQRT(SUMSQ(R[nb]C[-1]-RC[-1],R[nb]C[-2]-RC[-2],R[]C[-3]-RC[-3],R[i]C[-4]-RC[-4],R[i]C[-5]-RC[-5],R[]C[-6]-RC[-6]))"
ActiveCell.Range("A1").Select
ActiveCell.Offset(-1, 0).Range("A1").Select
c = ActiveCell.Value
Next nb
ActiveCell.Offset(1, 1).Range("A1").Select
End Sub

Comment puis faire varier nb? Merci pour votre aide

7 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Je ne parvient pas à suivre la/les plages que tu défini en R1C1, tu pourrais donner les plages en adresse "A1" ?
    Je n'ai pas la fonction SQRT , quel version d'excel ?

    et...
    ActiveCell.Range("A1").Select 
    ActiveCell.Offset(-1, 0).Range("A1").Select 
    ???? où tu veux aller...
    A+
    0
  2. davmat
     
    Bonjour lermite,

    En fait j'ai une formule :
    ActiveCell.FormulaR1C1 = _
    "=SQRT(SUMSQ(R[1]C[-1]-RC[-1],R[1]C[-2]-RC[-2],R[1]C[-3]-RC[-3],R[1]C[-4]-RC[-4],R[1]C[-5]-RC[-5],R[1]C[-6]-RC[-6]))"

    et j'aimerais avoir la formule:

    ActiveCell.FormulaR1C1 = _
    "=SQRT(SUMSQ(R127C9-RC[-1],R127C8-RC[-2],R127C7-RC[-3],R127C6-RC[-4],R127C5-RC[-5],R127C4-RC[-6]))"

    et ensuite changer 127 en 126 puis 125 donc faire une sorte de boucle.

    Et j'ai excel 2010 :)

    Merci

    A +

    David
    0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Oui, je sais lire,
    Ce que j te demande c'est quel est la/lrs plages que tu veux traiter..
    genre..Somme(A1:B1,H1:J1,...)
    Avec des lettres et des chiffres et pas des -(moins) ou des + (plus)
    0
  4. davmat
     
    Ah ok,

    J'aimerais sommer de J127 a J9
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Re,
    Pas besoin de VBA, tu colle cette formule en J9
        =RACINE(SOMME.CARRES(D9:I10)) 

    Et tu tire jusqu'en J127
    A+
    0
  7. davmat
     
    Jái trouve en applicant cette formule:

    ActiveCell.FormulaR1C1 = _
    "=SQRT(SUMSQ(OFFSET(RC," + CStr(i) + ",-1)-RC[-1],OFFSET(RC," + CStr(i) + ",-2)-RC[-2],OFFSET(RC," + CStr(i) + ",-3)-RC[-3],OFFSET(RC," + CStr(i) + ",-4)-RC[-4],OFFSET(RC," + CStr(i) + ",-5)-RC[-5],OFFSET(RC," + CStr(i) + ",-6)-RC[-6]))"

    Merci
    0
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Hummm...
    Tu crois pas que ma formule (qui fait EXACTEMENT la même chose) est un peu plus heuuu... disons, plus simple ?
    Et si tu veux absolument par VBA..
        For i = 9 To 127
            Cells(i, "J").FormulaLocal = "=RACINE(SOMME.CARRES(D" & i & ":I" & i & "))"
        Next i

    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
    0