Erreur dépassement de capacité

Bonjour à tous,

J'ai toujours un souci avec le meme programme que je créais

J'ai finis de l'écrire mais quand je lance la macro, j'ai une erreur dépassement de capacité...j'ai beau chercheé, je trouve pas...la majorité de mes variable sont définies en double et en long, sauf deux en date. C'est suffisant je suppose, non?

bonjour,

difficile de t'aider sans voir le code

Désolée

J'ai oublié le code c'est vrai. Le voici:

Sub Cigares()

Dim one As String

Dim X As Long

Dim Y As Long

Dim ron As Variant

Dim rav As Variant

Dim dens As Double

Dim Init As Double

Dim Fin As Double

Dim débit As Double

one = Sheets("Cigares").Range("C5").Value

X = CLng(Sheets("Cigares").Range("C8").Value)

Y = CLng(Sheets("Cigares").Range("C10").Value)

ron = CVar(Sheets("Cigares").Range("F8").Value)

rav = CVar(Sheets("Cigares").Range("F10").Value)

dens = CDbl(Sheets("Cigares").Range("H8").Value)

Init = CDbl(Sheets("Cigares").Range("A12").Value)

Fin = CDbl(Sheets("Cigares").Range("A13").Value)

débit = CDbl(Sheets("Cigares").Range("J8").Value)

Select Case one

Case "B1061"

If X <= 260 Then

Init = (0.052 * X ^ 2) + (8.623 * X) - 58.37

ElseIf 260 < X <= 790 Then

Init = (0.019 * X ^ 2) + (22.11 * X) - 1596

ElseIf 790 < X <= 1140 Then

Init = (0.007 * X ^ 2) + (37.61 * X) - 6329

ElseIf 1140 < X <= 1790 Then

Init = (0.002 * X ^ 2) + (49.99 * X) - 13743

ElseIf 1790 < X <= 2060 Then

Init = (-0.007 * X ^ 2) + (81.75 * X) - 42156

ElseIf 2060 < X <= 2190 Then

Init = (-0.012 * X ^ 2) + (104.3 * X) - 67791

ElseIf 2190 < X <= 2370 Then

Init = (-0.015 * X ^ 2) + (117.2 * X) - 82003

ElseIf 2370 < X <= 2450 Then

Init = (-0.021 * X ^ 2) + (149.9 * X) - 126239

ElseIf 2450 < X <= 2570 Then

Init = (-0.023 * X ^ 2) + (159.1 * X) - 137205

ElseIf 2570 < X <= 2690 Then

Init = (-0.026 * X ^ 2) + (176.1 * X) - 161594

ElseIf 2690 < X <= 2770 Then

Init = (-0.043 * X ^ 2) + (270.5 * X) - 293049

ElseIf 2770 < X <= 2890 Then

Init = (-0.054 * X ^ 2) + (332.2 * X) - 380020

Else

Init = (-0.103 * X ^ 2) + (618.4 * X) - 798294

End If

If Y <= 260 Then

Fin = (0.052 * Y ^ 2) + (8.623 * Y) - 58.37

ElseIf 260 < Y <= 790 Then

Fin = (0.019 * Y ^ 2) + (22.11 * Y) - 1596

ElseIf 790 < Y <= 1140 Then

Fin = (0.007 * Y ^ 2) + (37.61 * Y) - 6329

ElseIf 1140 < Y <= 1790 Then

Fin = (0.002 * Y ^ 2) + (49.99 * Y) - 13743

ElseIf 1790 < Y <= 2060 Then

Fin = (-0.007 * Y ^ 2) + (81.75 * Y) - 42156

ElseIf 2060 < Y <= 2190 Then

Fin = (-0.012 * Y ^ 2) + (104.3 * Y) - 67791

ElseIf 2190 < Y <= 2370 Then

Fin = (-0.015 * Y ^ 2) + (117.2 * Y) - 82003

ElseIf 2370 < Y <= 2450 Then

Fin = (-0.021 * Y ^ 2) + (149.9 * Y) - 126239

ElseIf 2450 < Y <= 2570 Then

Fin = (-0.023 * Y ^ 2) + (159.1 * Y) - 137205

ElseIf 2570 < Y <= 2690 Then

Fin = (-0.026 * Y ^ 2) + (176.1 * Y) - 161594

ElseIf 2690 < Y <= 2770 Then

Fin = (-0.043 * Y ^ 2) + (270.5 * Y) - 293049

ElseIf 2770 < Y <= 2890 Then

Fin = (-0.054 * Y ^ 2) + (332.2 * Y) - 380020

Else

Fin = (-0.103 * Y ^ 2) + (618.4 * Y) - 798294

End If

Case "B1062"

If X <= 270 Then

Init = (0.049 * X ^ 2) + (9.246 * X) - 90.62

ElseIf 270 < X <= 720 Then

Init = (0.02 * X ^ 2) + (21.45 * X) - 1480

ElseIf 720 < X <= 1210 Then

Init = (0.009 * X ^ 2) + (35.03 * X) - 5758

ElseIf 1210 < X <= 1430 Then

Init = (0.001 * X ^ 2) + (51.29 * X) - 13743

ElseIf 1430 < X <= 1860 Then

Init = (-0.001 * X ^ 2) + (59.6 * X) - 21532

ElseIf 1860 < X <= 2280 Then

Init = (-0.007 * X ^ 2) + (80.82 * X) - 40630

ElseIf 2280 < X <= 2400 Then

Init = (-0.016 * X ^ 2) + (123.3 * X) - 91077

ElseIf 2400 < X <= 2680 Then

Init = (-0.02 * X ^ 2) + (141.6 * X) - 112352

Else

Init = (-0.05 * X ^ 2) + (305.9 * X) - 337797

End If

If Y <= 270 Then

Fin = (0.049 * Y ^ 2) + (9.246 * Y) - 90.62

ElseIf 270 < Y <= 720 Then

Fin = (0.02 * Y ^ 2) + (21.45 * Y) - 1480

ElseIf 720 < Y <= 1210 Then

Fin = (0.009 * Y ^ 2) + (35.03 * Y) - 5758

ElseIf 1210 < Y <= 1430 Then

Fin = (0.001 * Y ^ 2) + (51.29 * Y) - 13743

ElseIf 1430 < Y <= 1860 Then

Fin = (-0.001 * Y ^ 2) + (59.6 * Y) - 21532

ElseIf 1860 < Y <= 2280 Then

Fin = (-0.007 * Y ^ 2) + (80.82 * Y) - 40630

ElseIf 2280 < Y <= 2400 Then

Fin = (-0.016 * Y ^ 2) + (123.3 * Y) - 91077

ElseIf 2400 < Y <= 2680 Then

Fin = (-0.02 * Y ^ 2) + (141.6 * Y) - 112352

Else

Fin = (-0.05 * Y ^ 2) + (305.9 * Y) - 337797

End If

Case "B1063"

If X <= 130 Then

Init = (0.05 * X ^ 2) + (1.958 * X) - 1.457

ElseIf 130 < X <= 370 Then

Init = (0.016 * X ^ 2) + (6.519 * X) - 201

ElseIf 370 < X <= 690 Then

Init = (0.008 * X ^ 2) + (11.28 * X) - 1001

ElseIf 690 < X <= 970 Then

Init = (0.004 * X ^ 2) + (16.06 * X) - 2093

ElseIf 970 < X <= 1140 Then

Init = (0.002 * X ^ 2) + (19.65 * X) - 3327

ElseIf 1140 < X <= 1900 Then

Init = (26.99 * X) - 9038

ElseIf 1900 < X <= 2310 Then

Init = (24.4 * X) - 4113

ElseIf 2310 < X <= 2460 Then

Init = (-0.007 * X ^ 2) + (57.18 * X) - 42843

ElseIf 2460 < X <= 2630 Then

Init = (-0.009 * X ^ 2) + (66.22 * X) - 53266

ElseIf 2630 < X <= 2800 Then

Init = (-0.016 * X ^ 2) + (103.7 * X) - 103858

Else

Init = (-0.021 * X ^ 2) + (132 * X) - 144192

End If

If Y <= 130 Then

Fin = (0.05 * Y ^ 2) + (1.958 * Y) - 1.457

ElseIf 130 < Y <= 370 Then

Fin = (0.016 * Y ^ 2) + (6.519 * Y) - 201

ElseIf 370 < Y <= 690 Then

Fin = (0.008 * Y ^ 2) + (11.28 * Y) - 1001

ElseIf 690 < Y <= 970 Then

Fin = (0.004 * Y ^ 2) + (16.06 * Y) - 2093

ElseIf 970 < Y <= 1140 Then

Fin = (0.002 * Y ^ 2) + (19.65 * Y) - 3327

ElseIf 1140 < Y <= 1900 Then

Fin = (26.99 * Y) - 9038

ElseIf 1900 < Y <= 2310 Then

Fin = (24.4 * Y) - 4113

ElseIf 2310 < Y <= 2460 Then

Fin = (-0.007 * Y ^ 2) + (57.18 * Y) - 42843

ElseIf 2460 < Y <= 2630 Then

Fin = (-0.009 * Y ^ 2) + (66.22 * Y) - 53266

ElseIf 2630 < Y <= 2800 Then

Fin = (-0.016 * Y ^ 2) + (103.7 * Y) - 103858

Else

Fin = (-0.021 * Y ^ 2) + (132 * Y) - 144192

End If

Case "B1064"

If X <= 250 Then

Init = (0.05 * X ^ 2) + (8.254 * X) - 55.86

ElseIf 250 < X <= 890 Then

Init = (0.017 * X ^ 2) + (22.12 * X) - 1710

ElseIf 890 < X <= 1520 Then

Init = (0.005 * X ^ 2) + (40.42 * X) - 8520

ElseIf 1520 < X <= 1930 Then

Init = (53.83 * X) - 17695

ElseIf 1930 < X <= 2330 Then

Init = (48.14 * X) - 6653

ElseIf 2330 < X <= 2420 Then

Init = (-0.023 * X ^ 2) + (156.6 * X) - 134852

ElseIf 2420 < X <= 2850 Then

Init = (-0.02 * X ^ 2) + (139.5 * X) - 111523

Else

Init = (-0.055 * X ^ 2) + (338.2 * X) - 393783

End If

If Y <= 250 Then

Fin = (0.05 * Y ^ 2) + (8.254 * Y) - 55.86

ElseIf 250 < Y <= 890 Then

Fin = (0.017 * Y ^ 2) + (22.12 * Y) - 1710

ElseIf 890 < Y <= 1520 Then

Fin = (0.005 * Y ^ 2) + (40.42 * Y) - 8520

ElseIf 1520 < Y <= 1930 Then

Fin = (53.83 * Y) - 17695

ElseIf 1930 < Y <= 2330 Then

Fin = (48.14 * Y) - 6653

ElseIf 2330 < Y <= 2420 Then

Fin = (-0.023 * Y ^ 2) + (156.6 * Y) - 134852

ElseIf 2420 < Y <= 2850 Then

Fin = (-0.02 * Y ^ 2) + (139.5 * Y) - 111523

Else

Fin = (-0.055 * Y ^ 2) + (338.2 * Y) - 393783

End If

Case "B1065"

If X <= 260 Then

Init = (0.051 * X ^ 2) + (8.502 * X) - 57.54

ElseIf 260 < X <= 490 Then

Init = (0.017 * X ^ 2) + (23.09 * X) - 1803

ElseIf 490 < X <= 1080 Then

Init = (0.011 * X ^ 2) + (31.28 * X) - 4361

ElseIf 1080 < X <= 1920 Then

Init = (55.16 * X) - 17662

ElseIf 1920 < X <= 2030 Then

Init = (-0.009 * X ^ 2) + (91.55 * X) - 54699

ElseIf 2030 < X <= 2150 Then

Init = (-0.011 * X ^ 2) + (100.4 * X) - 64876

ElseIf 2150 < X <= 2630 Then

Init = (-0.013 * X ^ 2) + (106.1 * X) - 68138

Else

Init = (-0.035 * X ^ 2) + (222.7 * X) - 223072

End If

If Y <= 260 Then

Fin = (0.051 * Y ^ 2) + (8.502 * Y) - 57.54

ElseIf 260 < Y <= 490 Then

Fin = (0.017 * Y ^ 2) + (23.09 * Y) - 1803

ElseIf 490 < Y <= 1080 Then

Fin = (0.011 * Y ^ 2) + (31.28 * Y) - 4361

ElseIf 1080 < Y <= 1920 Then

Fin = (55.16 * Y) - 17662

ElseIf 1920 < Y <= 2030 Then

Fin = (-0.009 * Y ^ 2) + (91.55 * Y) - 54699

ElseIf 2030 < Y <= 2150 Then

Fin = (-0.011 * Y ^ 2) + (100.4 * Y) - 64876

ElseIf 2150 < Y <= 2630 Then

Fin = (-0.013 * Y ^ 2) + (106.1 * Y) - 68138

Else

Fin = (-0.035 * Y ^ 2) + (222.7 * Y) - 223072

End If

Case "B1066"

If X <= 320 Then

Init = (0.043 * X ^ 2) + (9.211 * X) - 81.9

ElseIf 320 < X <= 940 Then

Init = (0.015 * X ^ 2) + (23.35 * X) - 1746

ElseIf 940 < X <= 1320 Then

Init = (0.001 * X ^ 2) + (47.78 * X) - 12402

ElseIf 1320 < X <= 1780 Then

Init = (52.18 * X) - 16183

ElseIf 1780 < X <= 2190 Then

Init = (-0.007 * X ^ 2) + (76.72 * X) - 38077

ElseIf 2190 < X <= 2720 Then

Init = (-0.017 * X ^ 2) + (119.5 * X) - 84058

Else

Init = (-0.054 * X ^ 2) + (319.7 * X) - 355117

End If

If Y <= 320 Then

Fin = (0.043 * Y ^ 2) + (9.211 * Y) - 81.9

ElseIf 320 < Y <= 940 Then

Fin = (0.015 * Y ^ 2) + (23.35 * Y) - 1746

ElseIf 940 < Y <= 1320 Then

Fin = (0.001 * Y ^ 2) + (47.78 * Y) - 12402

ElseIf 1320 < Y <= 1780 Then

Fin = (52.18 * Y) - 16183

ElseIf 1780 < Y <= 2190 Then

Fin = (-0.007 * Y ^ 2) + (76.72 * Y) - 38077

ElseIf 2190 < Y <= 2720 Then

Fin = (-0.017 * Y ^ 2) + (119.5 * Y) - 84058

Else

Fin = (-0.054 * Y ^ 2) + (319.7 * Y) - 355117

End If

Case "B1067"

If X <= 270 Then

Init = (0.049 * X ^ 2) + (8.24 * X) - 55.8

ElseIf 270 < X <= 750 Then

Init = (0.018 * X ^ 2) + (21.35 * X) - 1573

ElseIf 750 < X <= 1460 Then

Init = (0.007 * X ^ 2) + (35.16 * X) - 5802

ElseIf 1460 < X <= 1790 Then

Init = (-0.003 * X ^ 2) + (63.09 * X) - 25657

ElseIf 1790 < X <= 2290 Then

Init = (-0.008 * X ^ 2) + (80.73 * X) - 41599

ElseIf 2290 < X <= 2430 Then

Init = (-0.018 * X ^ 2) + (127.9 * X) - 97639

ElseIf 2430 < X <= 2800 Then

Init = (-0.024 * X ^ 2) + (155.2 * X) - 128892

ElseIf 2800 < X <= 2870 Then

Init = (-0.085 * X ^ 2) + (498.1 * X) - 611183

Else

Init = 118.13

End If

If Y <= 270 Then

Fin = (0.049 * Y ^ 2) + (8.24 * Y) - 55.8

ElseIf 270 < Y <= 750 Then

Fin = (0.018 * Y ^ 2) + (21.35 * Y) - 1573

ElseIf 750 < Y <= 1460 Then

Fin = (0.007 * Y ^ 2) + (35.16 * Y) - 5802

ElseIf 1460 < Y <= 1790 Then

Fin = (-0.003 * Y ^ 2) + (63.09 * Y) - 25657

ElseIf 1790 < Y <= 2290 Then

Fin = (-0.008 * Y ^ 2) + (80.73 * Y) - 41599

ElseIf 2290 < Y <= 2430 Then

Fin = (-0.018 * Y ^ 2) + (127.9 * Y) - 97639

ElseIf 2430 < Y <= 2800 Then

Fin = (-0.024 * Y ^ 2) + (155.2 * Y) - 128892

ElseIf 2800 < Y <= 2870 Then

Fin = (-0.085 * Y ^ 2) + (498.1 * Y) - 611183

Else

Fin = 118.13

End If

Case Else

If X <= 290 Then

Init = (0.054 * X ^ 2) + (11.22 * X) - 99.38

ElseIf 290 < X <= 600 Then

Init = (0.02 * X ^ 2) + (27.66 * X) - 2296

ElseIf 600 < X <= 1270 Then

Init = (0.012 * X ^ 2) + (37.98 * X) - 5204

ElseIf 1270 < X <= 2060 Then

Init = (0.001 * X ^ 2) + (63.13 * X) - 19418

ElseIf 2060 < X <= 2190 Then

Init = (-0.011 * X ^ 2) + (113.2 * X) - 72091

ElseIf 2190 < X <= 2750 Then

Init = (-0.014 * X ^ 2) + (124.4 * X) - 82627

ElseIf 2750 < X <= 2840 Then

Init = (-0.031 * X ^ 2) + (220.4 * X) - 218451

Else

Init = (-0.046 * X ^ 2) + (304.9 * X) - 337992

End If

If Y <= 290 Then

Fin = (0.054 * Y ^ 2) + (11.22 * Y) - 99.38

ElseIf 290 < Y <= 600 Then

Fin = (0.02 * Y ^ 2) + (27.66 * Y) - 2296

ElseIf 600 < Y <= 1270 Then

Fin = (0.012 * Y ^ 2) + (37.98 * Y) - 5204

ElseIf 1270 < Y <= 2060 Then

Fin = (0.001 * Y ^ 2) + (63.13 * Y) - 19418

ElseIf 2060 < Y <= 2190 Then

Fin = (-0.011 * Y ^ 2) + (113.2 * Y) - 72091

ElseIf 2190 < Y <= 2750 Then

Fin = (-0.014 * Y ^ 2) + (124.4 * Y) - 82627

ElseIf 2750 < Y <= 2840 Then

Fin = (-0.031 * Y ^ 2) + (220.4 * Y) - 218451

Else

Fin = (-0.046 * Y ^ 2) + (304.9 * Y) - 337992

End If

End Select

débit = ((((Fin - Init) * 10 ^ -3) * (dens * 10 ^ -3)) / ((rav - ron) * 24))

Sheets("Cigares").Range("J8").Value = débit

Sheets("cigares").Range("A12").Value = Init

Sheets("Cigares").Range("A13").Value = Fin

End Sub

Je sais, il est plutôt long

Bonsoir,

Lorsque tu crées un message en haut tu as un bouton nommé |code| il te permet de créer 2 tags pour mettre le code dedans

comme ceci

Sub Cigares()
  Dim one As String
  Dim X As Long
  Dim Y As Long
  Dim ron As Variant
  Dim rav As Variant
  Dim dens As Double
  Dim Init As Double
  Dim Fin As Double
  Dim débit As Double

  one = Sheets("Cigares").Range("C5").Value
  X = CLng(Sheets("Cigares").Range("C8").Value)
  Y = CLng(Sheets("Cigares").Range("C10").Value)
  ron = CVar(Sheets("Cigares").Range("F8").Value)
  rav = CVar(Sheets("Cigares").Range("F10").Value)
  dens = CDbl(Sheets("Cigares").Range("H8").Value)
  Init = CDbl(Sheets("Cigares").Range("A12").Value)
  Fin = CDbl(Sheets("Cigares").Range("A13").Value)
  débit = CDbl(Sheets("Cigares").Range("J8").Value)

  Select Case one

  Case "B1061"

    If X <= 260 Then
      Init = (0.052 * X ^ 2) + (8.623 * X) - 58.37
    ElseIf 260 < X <= 790 Then
      Init = (0.019 * X ^ 2) + (22.11 * X) - 1596
    ElseIf 790 < X <= 1140 Then
      Init = (0.007 * X ^ 2) + (37.61 * X) - 6329
    ElseIf 1140 < X <= 1790 Then
      Init = (0.002 * X ^ 2) + (49.99 * X) - 13743
    ElseIf 1790 < X <= 2060 Then
      Init = (-0.007 * X ^ 2) + (81.75 * X) - 42156
    ElseIf 2060 < X <= 2190 Then
      Init = (-0.012 * X ^ 2) + (104.3 * X) - 67791
    ElseIf 2190 < X <= 2370 Then
      Init = (-0.015 * X ^ 2) + (117.2 * X) - 82003
    ElseIf 2370 < X <= 2450 Then
      Init = (-0.021 * X ^ 2) + (149.9 * X) - 126239
    ElseIf 2450 < X <= 2570 Then
      Init = (-0.023 * X ^ 2) + (159.1 * X) - 137205
    ElseIf 2570 < X <= 2690 Then
      Init = (-0.026 * X ^ 2) + (176.1 * X) - 161594
    ElseIf 2690 < X <= 2770 Then
      Init = (-0.043 * X ^ 2) + (270.5 * X) - 293049
    ElseIf 2770 < X <= 2890 Then
      Init = (-0.054 * X ^ 2) + (332.2 * X) - 380020
    Else
      Init = (-0.103 * X ^ 2) + (618.4 * X) - 798294
    End If

    If Y <= 260 Then
      Fin = (0.052 * Y ^ 2) + (8.623 * Y) - 58.37
    ElseIf 260 < Y <= 790 Then
      Fin = (0.019 * Y ^ 2) + (22.11 * Y) - 1596
    ElseIf 790 < Y <= 1140 Then
      Fin = (0.007 * Y ^ 2) + (37.61 * Y) - 6329
    ElseIf 1140 < Y <= 1790 Then
      Fin = (0.002 * Y ^ 2) + (49.99 * Y) - 13743
    ElseIf 1790 < Y <= 2060 Then
      Fin = (-0.007 * Y ^ 2) + (81.75 * Y) - 42156
    ElseIf 2060 < Y <= 2190 Then
      Fin = (-0.012 * Y ^ 2) + (104.3 * Y) - 67791
    ElseIf 2190 < Y <= 2370 Then
      Fin = (-0.015 * Y ^ 2) + (117.2 * Y) - 82003
    ElseIf 2370 < Y <= 2450 Then
      Fin = (-0.021 * Y ^ 2) + (149.9 * Y) - 126239
    ElseIf 2450 < Y <= 2570 Then
      Fin = (-0.023 * Y ^ 2) + (159.1 * Y) - 137205
    ElseIf 2570 < Y <= 2690 Then
      Fin = (-0.026 * Y ^ 2) + (176.1 * Y) - 161594
    ElseIf 2690 < Y <= 2770 Then
      Fin = (-0.043 * Y ^ 2) + (270.5 * Y) - 293049
    ElseIf 2770 < Y <= 2890 Then
      Fin = (-0.054 * Y ^ 2) + (332.2 * Y) - 380020
    Else
      Fin = (-0.103 * Y ^ 2) + (618.4 * Y) - 798294
    End If

  Case "B1062"

    If X <= 270 Then
      Init = (0.049 * X ^ 2) + (9.246 * X) - 90.62
    ElseIf 270 < X <= 720 Then
      Init = (0.02 * X ^ 2) + (21.45 * X) - 1480
    ElseIf 720 < X <= 1210 Then
      Init = (0.009 * X ^ 2) + (35.03 * X) - 5758
    ElseIf 1210 < X <= 1430 Then
      Init = (0.001 * X ^ 2) + (51.29 * X) - 13743
    ElseIf 1430 < X <= 1860 Then
      Init = (-0.001 * X ^ 2) + (59.6 * X) - 21532
    ElseIf 1860 < X <= 2280 Then
      Init = (-0.007 * X ^ 2) + (80.82 * X) - 40630
    ElseIf 2280 < X <= 2400 Then
      Init = (-0.016 * X ^ 2) + (123.3 * X) - 91077
    ElseIf 2400 < X <= 2680 Then
      Init = (-0.02 * X ^ 2) + (141.6 * X) - 112352
    Else
      Init = (-0.05 * X ^ 2) + (305.9 * X) - 337797
    End If

    If Y <= 270 Then
      Fin = (0.049 * Y ^ 2) + (9.246 * Y) - 90.62
    ElseIf 270 < Y <= 720 Then
      Fin = (0.02 * Y ^ 2) + (21.45 * Y) - 1480
    ElseIf 720 < Y <= 1210 Then
      Fin = (0.009 * Y ^ 2) + (35.03 * Y) - 5758
    ElseIf 1210 < Y <= 1430 Then
      Fin = (0.001 * Y ^ 2) + (51.29 * Y) - 13743
    ElseIf 1430 < Y <= 1860 Then
      Fin = (-0.001 * Y ^ 2) + (59.6 * Y) - 21532
    ElseIf 1860 < Y <= 2280 Then
      Fin = (-0.007 * Y ^ 2) + (80.82 * Y) - 40630
    ElseIf 2280 < Y <= 2400 Then
      Fin = (-0.016 * Y ^ 2) + (123.3 * Y) - 91077
    ElseIf 2400 < Y <= 2680 Then
      Fin = (-0.02 * Y ^ 2) + (141.6 * Y) - 112352
    Else
      Fin = (-0.05 * Y ^ 2) + (305.9 * Y) - 337797
    End If

  Case "B1063"

    If X <= 130 Then
      Init = (0.05 * X ^ 2) + (1.958 * X) - 1.457
    ElseIf 130 < X <= 370 Then
      Init = (0.016 * X ^ 2) + (6.519 * X) - 201
    ElseIf 370 < X <= 690 Then
      Init = (0.008 * X ^ 2) + (11.28 * X) - 1001
    ElseIf 690 < X <= 970 Then
      Init = (0.004 * X ^ 2) + (16.06 * X) - 2093
    ElseIf 970 < X <= 1140 Then
      Init = (0.002 * X ^ 2) + (19.65 * X) - 3327
    ElseIf 1140 < X <= 1900 Then
      Init = (26.99 * X) - 9038
    ElseIf 1900 < X <= 2310 Then
      Init = (24.4 * X) - 4113
    ElseIf 2310 < X <= 2460 Then
      Init = (-0.007 * X ^ 2) + (57.18 * X) - 42843
    ElseIf 2460 < X <= 2630 Then
      Init = (-0.009 * X ^ 2) + (66.22 * X) - 53266
    ElseIf 2630 < X <= 2800 Then
      Init = (-0.016 * X ^ 2) + (103.7 * X) - 103858
    Else
      Init = (-0.021 * X ^ 2) + (132 * X) - 144192
    End If

    If Y <= 130 Then
      Fin = (0.05 * Y ^ 2) + (1.958 * Y) - 1.457
    ElseIf 130 < Y <= 370 Then
      Fin = (0.016 * Y ^ 2) + (6.519 * Y) - 201
    ElseIf 370 < Y <= 690 Then
      Fin = (0.008 * Y ^ 2) + (11.28 * Y) - 1001
    ElseIf 690 < Y <= 970 Then
      Fin = (0.004 * Y ^ 2) + (16.06 * Y) - 2093
    ElseIf 970 < Y <= 1140 Then
      Fin = (0.002 * Y ^ 2) + (19.65 * Y) - 3327
    ElseIf 1140 < Y <= 1900 Then
      Fin = (26.99 * Y) - 9038
    ElseIf 1900 < Y <= 2310 Then
      Fin = (24.4 * Y) - 4113
    ElseIf 2310 < Y <= 2460 Then
      Fin = (-0.007 * Y ^ 2) + (57.18 * Y) - 42843
    ElseIf 2460 < Y <= 2630 Then
      Fin = (-0.009 * Y ^ 2) + (66.22 * Y) - 53266
    ElseIf 2630 < Y <= 2800 Then
      Fin = (-0.016 * Y ^ 2) + (103.7 * Y) - 103858
    Else
      Fin = (-0.021 * Y ^ 2) + (132 * Y) - 144192
    End If

  Case "B1064"

    If X <= 250 Then
      Init = (0.05 * X ^ 2) + (8.254 * X) - 55.86
    ElseIf 250 < X <= 890 Then
      Init = (0.017 * X ^ 2) + (22.12 * X) - 1710
    ElseIf 890 < X <= 1520 Then
      Init = (0.005 * X ^ 2) + (40.42 * X) - 8520
    ElseIf 1520 < X <= 1930 Then
      Init = (53.83 * X) - 17695
    ElseIf 1930 < X <= 2330 Then
      Init = (48.14 * X) - 6653
    ElseIf 2330 < X <= 2420 Then
      Init = (-0.023 * X ^ 2) + (156.6 * X) - 134852
    ElseIf 2420 < X <= 2850 Then
      Init = (-0.02 * X ^ 2) + (139.5 * X) - 111523
    Else
      Init = (-0.055 * X ^ 2) + (338.2 * X) - 393783
    End If

    If Y <= 250 Then
      Fin = (0.05 * Y ^ 2) + (8.254 * Y) - 55.86
    ElseIf 250 < Y <= 890 Then
      Fin = (0.017 * Y ^ 2) + (22.12 * Y) - 1710
    ElseIf 890 < Y <= 1520 Then
      Fin = (0.005 * Y ^ 2) + (40.42 * Y) - 8520
    ElseIf 1520 < Y <= 1930 Then
      Fin = (53.83 * Y) - 17695
    ElseIf 1930 < Y <= 2330 Then
      Fin = (48.14 * Y) - 6653
    ElseIf 2330 < Y <= 2420 Then
      Fin = (-0.023 * Y ^ 2) + (156.6 * Y) - 134852
    ElseIf 2420 < Y <= 2850 Then
      Fin = (-0.02 * Y ^ 2) + (139.5 * Y) - 111523
    Else
      Fin = (-0.055 * Y ^ 2) + (338.2 * Y) - 393783
    End If

  Case "B1065"

    If X <= 260 Then
      Init = (0.051 * X ^ 2) + (8.502 * X) - 57.54
    ElseIf 260 < X <= 490 Then
      Init = (0.017 * X ^ 2) + (23.09 * X) - 1803
    ElseIf 490 < X <= 1080 Then
      Init = (0.011 * X ^ 2) + (31.28 * X) - 4361
    ElseIf 1080 < X <= 1920 Then
      Init = (55.16 * X) - 17662
    ElseIf 1920 < X <= 2030 Then
      Init = (-0.009 * X ^ 2) + (91.55 * X) - 54699
    ElseIf 2030 < X <= 2150 Then
      Init = (-0.011 * X ^ 2) + (100.4 * X) - 64876
    ElseIf 2150 < X <= 2630 Then
      Init = (-0.013 * X ^ 2) + (106.1 * X) - 68138
    Else
      Init = (-0.035 * X ^ 2) + (222.7 * X) - 223072
    End If

    If Y <= 260 Then
      Fin = (0.051 * Y ^ 2) + (8.502 * Y) - 57.54
    ElseIf 260 < Y <= 490 Then
      Fin = (0.017 * Y ^ 2) + (23.09 * Y) - 1803
    ElseIf 490 < Y <= 1080 Then
      Fin = (0.011 * Y ^ 2) + (31.28 * Y) - 4361
    ElseIf 1080 < Y <= 1920 Then
      Fin = (55.16 * Y) - 17662
    ElseIf 1920 < Y <= 2030 Then
      Fin = (-0.009 * Y ^ 2) + (91.55 * Y) - 54699
    ElseIf 2030 < Y <= 2150 Then
      Fin = (-0.011 * Y ^ 2) + (100.4 * Y) - 64876
    ElseIf 2150 < Y <= 2630 Then
      Fin = (-0.013 * Y ^ 2) + (106.1 * Y) - 68138
    Else
      Fin = (-0.035 * Y ^ 2) + (222.7 * Y) - 223072
    End If

  Case "B1066"

    If X <= 320 Then
      Init = (0.043 * X ^ 2) + (9.211 * X) - 81.9
    ElseIf 320 < X <= 940 Then
      Init = (0.015 * X ^ 2) + (23.35 * X) - 1746
    ElseIf 940 < X <= 1320 Then
      Init = (0.001 * X ^ 2) + (47.78 * X) - 12402
    ElseIf 1320 < X <= 1780 Then
      Init = (52.18 * X) - 16183
    ElseIf 1780 < X <= 2190 Then
      Init = (-0.007 * X ^ 2) + (76.72 * X) - 38077
    ElseIf 2190 < X <= 2720 Then
      Init = (-0.017 * X ^ 2) + (119.5 * X) - 84058
    Else
      Init = (-0.054 * X ^ 2) + (319.7 * X) - 355117
    End If

    If Y <= 320 Then
      Fin = (0.043 * Y ^ 2) + (9.211 * Y) - 81.9
    ElseIf 320 < Y <= 940 Then
      Fin = (0.015 * Y ^ 2) + (23.35 * Y) - 1746
    ElseIf 940 < Y <= 1320 Then
      Fin = (0.001 * Y ^ 2) + (47.78 * Y) - 12402
    ElseIf 1320 < Y <= 1780 Then
      Fin = (52.18 * Y) - 16183
    ElseIf 1780 < Y <= 2190 Then
      Fin = (-0.007 * Y ^ 2) + (76.72 * Y) - 38077
    ElseIf 2190 < Y <= 2720 Then
      Fin = (-0.017 * Y ^ 2) + (119.5 * Y) - 84058
    Else
      Fin = (-0.054 * Y ^ 2) + (319.7 * Y) - 355117
    End If

  Case "B1067"

    If X <= 270 Then
      Init = (0.049 * X ^ 2) + (8.24 * X) - 55.8
    ElseIf 270 < X <= 750 Then
      Init = (0.018 * X ^ 2) + (21.35 * X) - 1573
    ElseIf 750 < X <= 1460 Then
      Init = (0.007 * X ^ 2) + (35.16 * X) - 5802
    ElseIf 1460 < X <= 1790 Then
      Init = (-0.003 * X ^ 2) + (63.09 * X) - 25657
    ElseIf 1790 < X <= 2290 Then
      Init = (-0.008 * X ^ 2) + (80.73 * X) - 41599
    ElseIf 2290 < X <= 2430 Then
      Init = (-0.018 * X ^ 2) + (127.9 * X) - 97639
    ElseIf 2430 < X <= 2800 Then
      Init = (-0.024 * X ^ 2) + (155.2 * X) - 128892
    ElseIf 2800 < X <= 2870 Then
      Init = (-0.085 * X ^ 2) + (498.1 * X) - 611183
    Else
      Init = 118.13
    End If

    If Y <= 270 Then
      Fin = (0.049 * Y ^ 2) + (8.24 * Y) - 55.8
    ElseIf 270 < Y <= 750 Then
      Fin = (0.018 * Y ^ 2) + (21.35 * Y) - 1573
    ElseIf 750 < Y <= 1460 Then
      Fin = (0.007 * Y ^ 2) + (35.16 * Y) - 5802
    ElseIf 1460 < Y <= 1790 Then
      Fin = (-0.003 * Y ^ 2) + (63.09 * Y) - 25657
    ElseIf 1790 < Y <= 2290 Then
      Fin = (-0.008 * Y ^ 2) + (80.73 * Y) - 41599
    ElseIf 2290 < Y <= 2430 Then
      Fin = (-0.018 * Y ^ 2) + (127.9 * Y) - 97639
    ElseIf 2430 < Y <= 2800 Then
      Fin = (-0.024 * Y ^ 2) + (155.2 * Y) - 128892
    ElseIf 2800 < Y <= 2870 Then
      Fin = (-0.085 * Y ^ 2) + (498.1 * Y) - 611183
    Else
      Fin = 118.13
    End If

  Case Else

    If X <= 290 Then
      Init = (0.054 * X ^ 2) + (11.22 * X) - 99.38
    ElseIf 290 < X <= 600 Then
      Init = (0.02 * X ^ 2) + (27.66 * X) - 2296
    ElseIf 600 < X <= 1270 Then
      Init = (0.012 * X ^ 2) + (37.98 * X) - 5204
    ElseIf 1270 < X <= 2060 Then
      Init = (0.001 * X ^ 2) + (63.13 * X) - 19418
    ElseIf 2060 < X <= 2190 Then
      Init = (-0.011 * X ^ 2) + (113.2 * X) - 72091
    ElseIf 2190 < X <= 2750 Then
      Init = (-0.014 * X ^ 2) + (124.4 * X) - 82627
    ElseIf 2750 < X <= 2840 Then
      Init = (-0.031 * X ^ 2) + (220.4 * X) - 218451
    Else
      Init = (-0.046 * X ^ 2) + (304.9 * X) - 337992
    End If

    If Y <= 290 Then
      Fin = (0.054 * Y ^ 2) + (11.22 * Y) - 99.38
    ElseIf 290 < Y <= 600 Then
      Fin = (0.02 * Y ^ 2) + (27.66 * Y) - 2296
    ElseIf 600 < Y <= 1270 Then
      Fin = (0.012 * Y ^ 2) + (37.98 * Y) - 5204
    ElseIf 1270 < Y <= 2060 Then
      Fin = (0.001 * Y ^ 2) + (63.13 * Y) - 19418
    ElseIf 2060 < Y <= 2190 Then
      Fin = (-0.011 * Y ^ 2) + (113.2 * Y) - 72091
    ElseIf 2190 < Y <= 2750 Then
      Fin = (-0.014 * Y ^ 2) + (124.4 * Y) - 82627
    ElseIf 2750 < Y <= 2840 Then
      Fin = (-0.031 * Y ^ 2) + (220.4 * Y) - 218451
    Else
      Fin = (-0.046 * Y ^ 2) + (304.9 * Y) - 337992
    End If

  End Select

  débit = ((((Fin - Init) * 10 ^ -3) * (dens * 10 ^ -3)) / ((rav - ron) * 24))

  Sheets("Cigares").Range("J8").Value = débit

  Sheets("cigares").Range("A12").Value = Init
  Sheets("Cigares").Range("A13").Value = Fin

End Sub

Sinon comme ça, (édit : à part tous les tests qui ne sont pas bon), le reste semble correcte

Sais-tu sur qu'elle ligne cela bogue

A+

Bonsoir,

en regardant ton code de plus près je vois que tes tests n'ont pas la syntaxe correcte. Je ne pense pas que cela explique le problème de dépassement de capacité mais en tout cas les tests ne donnent pas le résultat correct.

quand tu écris

ElseIf 1790 < X <= 2060 Then

tu devrais écrire

ElseIf X> 1790 and X <= 2060 Then

et ceci pour tous les tests où tu as utilisé cette syntaxe.

pour le reste, comme demandé par Bruno - que je salue -, indique-nous la ligne sur laquelle tu reçois l'erreur.

Salut H2so4

Tellement à chercher la petite bête que je suis carrément passé à côté de ça

Hoooo la honte pour moi

En tout cas c'est bien vue

Au plaisir

Bonsoir,

après autres investigations, je me dis que tu as sans doute une erreur sur cette ligne-ci

débit = ((((Fin - Init) * 10 ^ -3) * (dens * 10 ^ -3)) / ((rav - ron) * 24))

si rav=ron , tu as une division par 0 et dans certains cas tu reçois le message dépassement de capacité plutôt que division par zéro.

sinon je pense qu'en plus de la ligne qui donne l'erreur, ce serait bien si tu nous mettais les valeurs de one, X,Y,rav,ron et dens qui donnent ce problème.

Merci beaucoup h2So4 et BrunoM54,

je me sens vraiment bête tout d'un coup parce que je viens de remarquer qu'effectivement rav=ron

Du coup ca fait comme tu dis h2so4. Et meme sans modifier mes syntaxes <=, ca marche super. je vais pourtant le faire, juste au cas où

Merci beaucoup. Je prends note

Bonjour

si ta syntaxe des tests fonctionne c'est du pur hasard

quand tu écris

elseif 790 < x <= 1500

voici ce que tu testes

tu testes si 790 est plus petit que x et cela te donne vrai (-1) ou faux (0) , que tu compares ensuite à 1500

ce qui te donneras une condition toujours vraie, autant ne pas mettre de condition, si tes résultats sont corrects

Rechercher des sujets similaires à "erreur depassement capacite"