Public Function CalculPrixTotal(Station As String, NbPoste As String, DNP As Integer, DNS As Integer, DNC As Integer, DNT As Integer, TypeRetour As Integer) As Long
Dim DNA As Integer
Dim cible As String
Dim Vanne As String
Dim Qté As Integer
Dim Total As Long
DNA = 0
With Sheets("Station").ListObjects("t_Station")
For i = 1 To .ListRows.Count
If .ListColumns("Station").DataBodyRange(i) = Station And .ListColumns("Nb de postes").DataBodyRange(i) = NbPoste Then
For SPF = 1 To 6
cible = .ListColumns("Station primaire froid " & SPF).DataBodyRange(i)
If cible <> "" Then
Qté = CInt(Replace(Replace(Split(cible, "]")(0), "[", ""), "x", ""))
Vanne = Split(cible, "] ")(1)
Total = Total + Prix(Vanne, DNP, TypeRetour) * Qté
End If
Next SPF
For SPF = 1 To 3
cible = .ListColumns("Station secondaire froid " & SPF).DataBodyRange(i)
If cible <> "" Then
Qté = CInt(Replace(Replace(Split(cible, "]")(0), "[", ""), "x", ""))
Vanne = Split(cible, "] ")(1)
Total = Total + Prix(Vanne, DNS, TypeRetour) * Qté
End If
Next SPF
For SPF = 1 To 6
cible = .ListColumns("Station chaud " & SPF).DataBodyRange(i)
If cible <> "" Then
Qté = CInt(Replace(Replace(Split(cible, "]")(0), "[", ""), "x", ""))
Vanne = Split(cible, "] ")(1)
Total = Total + Prix(Vanne, DNC, TypeRetour) * Qté
End If
Next SPF
For SPF = 1 To 2
cible = .ListColumns("Vanne terminale " & SPF & " sur bat").DataBodyRange(i)
If cible <> "" Then
Qté = CInt(Replace(Replace(Split(cible, "]")(0), "[", ""), "x", ""))
Vanne = Split(cible, "] ")(1)
Total = Total + Prix(Vanne, DNT, TypeRetour) * Qté
End If
Next SPF
For SPF = 1 To 2
cible = .ListColumns("Accessoire " & SPF).DataBodyRange(i)
If cible <> "" Then
Qté = CInt(Replace(Replace(Split(cible, "]")(0), "[", ""), "x", ""))
Vanne = Split(cible, "] ")(1)
Total = Total + Prix(Vanne, DNA, TypeRetour) * Qté
End If
Next SPF
End If
Next i
End With
CalculPrixTotal = Total
End Function