Faire varier le numero dúne ligne dans une formule

[Résolu/Fermé]
Signaler
-
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
-
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

Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 175
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+
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
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 175
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)
Ah ok,

J'aimerais sommer de J127 a J9
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 175
Re,
Pas besoin de VBA, tu colle cette formule en J9
    =RACINE(SOMME.CARRES(D9:I10)) 

Et tu tire jusqu'en J127
A+
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
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 175
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 .