Do...loop

Bridge -  
 memez -
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
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  1. memez
     
    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
    1. Ivanhoe
       
      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