Option Explicit
Sub flux()
'----------------------------
Dim OldCalculation As Long
'----------------------------
Dim i As Integer
Dim j As Integer
'----------------------------
Dim DerLigne As Long
'----------------------------
Dim dQ As Double
Dim dP As Double
Dim dT As Double
Dim P As Double
'----------------------------
Dim VarB4 As Double
Dim VarB5 As Double
Dim VarB26 As Double
Dim VarB29 As Double
Dim VarB30 As Double
Dim VarB31 As Double
'----------------------------
Dim T_Air As Variant
Dim T_Sol As Variant
'----------------------------
Dim T_Resultat() As Double
'----------------------------
Dim CurrentTAir As Double
Dim CurrentTSol As Double
'----------------------------
With Application
OldCalculation = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
Range('V2:V' & Range('V65536').End(xlUp).Row).ClearContents
With Application.WorksheetFunction
DerLigne = .Min(Range('T65536').End(xlUp).Row, _
Range('U65536').End(xlUp).Row)
End With
T_Air = Range('T2:T' & DerLigne).Value
T_Sol = Range('U2:U' & DerLigne).Value
'-------------------------
' Modification ici
'-------------------------
' ReDim T_Resultat(1 To DerLigne, 1 To 1)
ReDim T_Resultat(1 To DerLigne - 1, 1 To 1)
'-------------------------
VarB4 = Range('B4')
VarB5 = Range('B5')
VarB26 = Range('B26')
VarB29 = Range('B29')
VarB30 = Range('B30')
VarB31 = Range('B31')
'-------------------------
' Modification ici
'-------------------------
' For i = 1 To DerLigne
For i = 1 To DerLigne - 1
'-------------------------
P = 0#
'-------------------------
' Modification ici
'-------------------------
' CurrentTAir = T_Air(i)
' CurrentTSol = T_Sol(i)
CurrentTAir = T_Air(i, 1)
CurrentTSol = T_Sol(i, 1)
'-------------------------
For j = 1 To 200
dQ = 0#
dP = 0#
dT = 0#
dQ = ((CurrentTSol - CurrentTAir) * VarB29 * VarB30) / VarB26
dT = dQ / (VarB4 * VarB5 * VarB31)
CurrentTAir = CurrentTAir + dT
dP = dQ / VarB30
P = P + dP
Next j
T_Resultat(i, 1) = P
Next i
'-------------------------
' Modification ici
'-------------------------
' Range('V2:V' & DerLigne) = T_Resultat
Range('V2').Resize(UBound(T_Resultat)) = T_Resultat
'-------------------------
With Application
.Calculation = OldCalculation
.ScreenUpdating = True
End With
End Sub