Do...loop

Fermé
Bridge - 20 oct. 2007 à 06:13
 memez - 25 févr. 2008 à 17:24
Bonjour,
j'ai fais un code de programmation qui marche très bien pour les valeurs (a,b,c) sur la même ligne. Cependant, je désire faire un tableau avec différente valeurs de a,b,c soit dans les cellules C4 à C14 pour les valeurs de a, E4 à E14 pour b et G4 à G14 pour c. Je cherche donc comment exécuter une boucle qui me calcul mon résultat pour chaque ligne. Je pense qu'il faut que je fasse une Do..loop ,mais je ne sais pas comment et où insérer la boucle. Voici mon code pour une ligne

Sub racine()
Dim aa As Double
Dim b As Double
Dim c As Double
Dim racine1 As Double
Dim racine2 As Double
Dim equationracine1 As Double
Dim equationracine2 As Double
Dim d As Double

aa = Range("C4").Value
b = Range("E4").Value
c = Range("G4").Value

d = (b ^ 2 - 4 * a * c)
equationracine1 = ((-b + Sqr(d)) / (2 * aa))
equationracine2 = ((-b - Sqr(d)) / (2 * aa))

If d < o Then
racine1 = "aucune"
racine2 = "aucune"

ElseIf d = 0 Then
racine1 = equationracine1
racine2 = "aucune"

Else
racine1 = equationracine1
racine2 = equationracine2

End If
End Sub

2 réponses

J'ai exactement le meme problème que toi.
J'ai vu que ça faisait longtemps que tu avais posté.
Si tu as trouvé comment faire ce serait sympa de me m'aider.
0
Bonjour !
avec une boucle For ... Next, c'est aussi simple
on déclare une variable (i, par ex.) qui prendra le n° de la ligne et on fait référence aux cellules avec Cells(ligne, colonne)
Les rajouts par-rapport au code initial sont signalés par '***

Bonne continuation !


Sub racine()
Dim aa As Double
Dim b As Double
Dim c As Double
Dim racine1 As Double
Dim racine2 As Double
Dim equationracine1 As Double
Dim equationracine2 As Double
Dim d As Double

Dim i as integer '***

For i = 4 to 14 '*** début de la boucle

'a = Range("C4").Value '*** à supprimer
'b = Range("E4").Value '*** à supprimer
'c = Range("G4").Value '*** à supprimer

a = cells(i,3).value '*** i est le n° de la ligne et 3 le n° de la colonne C
b = cells(i,5).value'*** i est le n° de la ligne et 5 le n° de la colonne E
c = cells(i,7).value '***



d = (b ^ 2 - 4 * a * c)
equationracine1 = ((-b + Sqr(d)) / (2 * aa))
equationracine2 = ((-b - Sqr(d)) / (2 * aa))

If d < o Then
racine1 = "aucune"
racine2 = "aucune"

ElseIf d = 0 Then
racine1 = equationracine1
racine2 = "aucune"

Else
racine1 = equationracine1
racine2 = equationracine2

End If

i = i + 1 '*** incrément
next i '*** fin de la boucle
End Sub
0
ça marche, merci
0