Faire varier le numero dúne ligne dans une formule

Résolu/Fermé
davmat - 5 juil. 2013 à 10:14
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 8 juil. 2013 à 14:59
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
A voir également:

7 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 juil. 2013 à 13:48
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
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
5 juil. 2013 à 21:03
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
Ah ok,

J'aimerais sommer de J127 a J9
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
8 juil. 2013 à 12:52
Re,
Pas besoin de VBA, tu colle cette formule en J9
    =RACINE(SOMME.CARRES(D9:I10)) 

Et tu tire jusqu'en J127
A+
0
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 8/07/2013 à 15:08
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