Au début, j'ai réalisé mon programme avec une boucle while puis vu que cela ne marchait pas, j'ai essayé sans boucle. Donc j'ai actuellement cela : 
	
	1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
   | Function CalculCaquot1() As Double
        Dim a2 As Double = Convert.ToDouble(Me.Labela2.Text)
        Dim b2 As Double = Convert.ToDouble(Me.Labelb2.Text)
        Dim LabelQmaxi As Double
        Dim ValeurS1 As Double = Convert.ToDouble(Me.DataGridView1.Rows(0).Cells("Surfacetotale").Value)
        Dim ValeurL1 As Double = Convert.ToDouble(Me.DataGridView1.Rows(0).Cells("longueur").Value)
        Dim ValeurC1 As Double = Convert.ToDouble(Me.DataGridView1.Rows(0).Cells("Coefficientimpermeabilisation").Value)
        Dim ValeurP1 As Double = Convert.ToDouble(Me.DataGridView1.Rows(0).Cells("pente").Value)
 
 
        LabelQmaxi = ((((a2 / 60) / 6.6) * (0.28 * (ValeurL1 / 100) ^ 0.84 * (ValeurS1 / 10000) ^ -0.42) ^ -b2) ^ (1 / (1 - 0.287 * b2))) * (ValeurC1 ^ (1 / (1 - 0.287 * b2))) * ((ValeurP1 / 100) ^ (0.41 * b2 / (1 - 0.287 * b2))) * ((ValeurS1 / 10000) ^ ((0.95 - 0.507 * b2) / (1 - 0.287 * b2))) * 1000
 
        Return LabelQmaxi
 
    End Function
 
    Function CalculCaquot2() As Double
        Dim a2 As Double = Convert.ToDouble(Me.Labela2.Text)
        Dim b2 As Double = Convert.ToDouble(Me.Labelb2.Text)
        Dim LabelQmaxi As Double
        Dim ValeurS2 As Double = Convert.ToDouble(Me.DataGridView1.Rows(1).Cells("Surfacetotale").Value)
        Dim ValeurL2 As Double = Convert.ToDouble(Me.DataGridView1.Rows(1).Cells("longueur").Value)
        Dim ValeurC2 As Double = Convert.ToDouble(Me.DataGridView1.Rows(1).Cells("Coefficientimpermeabilisation").Value)
        Dim ValeurP2 As Double = Convert.ToDouble(Me.DataGridView1.Rows(1).Cells("pente").Value)
 
        LabelQmaxi = ((((a2 / 60) / 6.6) * (0.28 * (ValeurL2 / 100) ^ 0.84 * (ValeurS2 / 10000) ^ -0.42) ^ -b2) ^ (1 / (1 - 0.287 * b2))) * (ValeurC2 ^ (1 / (1 - 0.287 * b2))) * ((ValeurP2 / 100) ^ (0.41 * b2 / (1 - 0.287 * b2))) * ((ValeurS2 / 10000) ^ ((0.95 - 0.507 * b2) / (1 - 0.287 * b2))) * 1000
 
        Return LabelQmaxi
 
    End Function
 
    Function CalculCaquot3() As Double
        Dim a2 As Double = Convert.ToDouble(Me.Labela2.Text)
        Dim b2 As Double = Convert.ToDouble(Me.Labelb2.Text)
        Dim LabelQmaxi As Double
        Dim ValeurS3 As Double = Convert.ToDouble(Me.DataGridView1.Rows(2).Cells("Surfacetotale").Value)
        Dim ValeurL3 As Double = Convert.ToDouble(Me.DataGridView1.Rows(2).Cells("longueur").Value)
        Dim ValeurC3 As Double = Convert.ToDouble(Me.DataGridView1.Rows(2).Cells("Coefficientimpermeabilisation").Value)
        Dim ValeurP3 As Double = Convert.ToDouble(Me.DataGridView1.Rows(2).Cells("pente").Value)
 
        LabelQmaxi = ((((a2 / 60) / 6.6) * (0.28 * (ValeurL3 / 100) ^ 0.84 * (ValeurS3 / 10000) ^ -0.42) ^ -b2) ^ (1 / (1 - 0.287 * b2))) * (ValeurC3 ^ (1 / (1 - 0.287 * b2))) * ((ValeurP3 / 100) ^ (0.41 * b2 / (1 - 0.287 * b2))) * ((ValeurS3 / 10000) ^ ((0.95 - 0.507 * b2) / (1 - 0.287 * b2))) * 1000
 
        Return LabelQmaxi
 
    End Function
 
Private Sub ButtonCalcul2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonCalcul2.Click
        If Verification() Then
            Me.DataGridView2.Rows(0).Cells("debit").Value = CalculCaquot1().ToString("0.0#")
            Me.DataGridView2.Rows(1).Cells("debit").Value = CalculCaquot2().ToString("0.0#")
            Me.DataGridView2.Rows(2).Cells("debit").Value = CalculCaquot3().ToString("0.0#")
            Me.DataGridView2.Rows(3).Cells("debit").Value = CalculCaquot4().ToString("0.0#")
        Else
            Me.erreur2.Visible = True
        End If
    End Sub | 
 Mais j'ai encore la même erreur qui apparait à cette ligne :
	
	Me.DataGridView2.Rows(1).Cells("debit").Value = CalculCaquot2().ToString("0.0#")
 
						
					
Partager