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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
Function Chercher_Abscisse_Ordonnee(code_ashrae As String, abs_ord_type As String, calcul_debit_act As Variant, unite_cal_debit As String, calcul_largeur_act As Variant, _
unite_cal_distance As String, calcul_hauteur_act As Variant, calcul_vitesse_act As Variant, unite_cal_vitesse As String, _
intrant_longueur As Double, unite_int_longueur As String, intrant_angle As Double, intrant_vitesse As Double, unite_int_vitesse As String, _
intrant_superficie As Double, unite_int_superficie As String, intrant_debit As Double, unite_int_debit As String, intrant_distance As Double, _
unite_int_distance As String, intrant_diametre As Double, unite_int_diametre As String, intrant_rayon As Double, unite_int_rayon As String, _
intrant_ratio As Double, calcul_diamhydro_act As Variant, unite_cal_diamhydro As String, calcul_section_act As Variant, _
unite_cal_section As String, calcul_reynolds_act As Variant, Optional ByVal calcul_debit_amont As Variant, _
Optional ByVal calcul_largeur_amont As Variant, Optional ByVal calcul_hauteur_amont As Variant, _
Optional ByVal calcul_diamhydro_amont As Variant, Optional ByVal calcul_section_amont As Variant, _
Optional ByVal calcul_reynolds_amont As Variant) As Variant
'Déclaration des différentes variables
Dim ligne As Integer 'Le numéro de ligne dans laquelle la fonction s'applique actuellement
Dim colonne As Integer 'Le numéro de colonne dans laquelle la fonction s'applique actuellement
Dim verif_intrant_act As Boolean 'Vérifier que tous les intrants de la position actuelle soient remplis
verif_intrant_act = False
If code_ashrae <> vbNullString And code_ashrae <> "-" And abs_ord_type <> vbNullString And abs_ord_type <> "-" And IsNumeric(calcul_debit_act) And unite_cal_debit <> vbNullString _
And IsNumeric(calcul_largeur_act) And unite_cal_distance <> vbNullString And IsNumeric(calcul_hauteur_act) And IsNumeric(calcul_vitesse_act) And unite_cal_vitesse <> vbNullString _
And IsNumeric(calcul_diamhydro_act) And unite_cal_diamhydro <> vbNullString And IsNumeric(calcul_section_act) And unite_cal_section <> vbNullString And IsNumeric(calcul_reynolds_act) Then
verif_intrant_act = True
If P_ligne_act > 0 Then Call VERIFIER_CELLULE_VIDE("jaune", Range(Cells(P_ligne_act, P_col_comp_longueur), Cells(P_ligne_act, P_col_specifique_unite))) 'Optimiser
End If
If verif_intrant_act = True And P_check_cell_vide = False Then 'Tester si les variables sont renseignées
'Convertir les différentes variables pour faire correspondre les unités dans les rapports
calcul_debit_act = calcul_debit_act * Rapport_Debit(unite_cal_debit) 'Convertir en m³/h
If IsNumeric(calcul_debit_amont) And calcul_debit_amont > 0 Then calcul_debit_amont = calcul_debit_amont * Rapport_Debit(unite_cal_debit) 'Convertir en m³/h
calcul_largeur_act = calcul_largeur_act * Rapport_Longueur(unite_cal_distance) 'Convertir en m
If IsNumeric(calcul_largeur_amont) And calcul_largeur_amont > 0 Then calcul_largeur_amont = calcul_largeur_amont * Rapport_Longueur(unite_cal_distance) 'Convertir en m
calcul_hauteur_act = calcul_hauteur_act * Rapport_Longueur(unite_cal_distance) 'Convertir en m
If IsNumeric(calcul_hauteur_amont) And calcul_hauteur_amont > 0 Then calcul_hauteur_amont = calcul_hauteur_amont * Rapport_Longueur(unite_cal_distance) 'Convertir en m
calcul_vitesse_act = calcul_vitesse_act * Rapport_Vitesse(unite_cal_vitesse) 'Convertir en m
If intrant_longueur > 0 And unite_int_longueur <> vbNullString Then intrant_longueur = intrant_longueur * Rapport_Longueur(unite_int_longueur) 'Convertir en m
If intrant_vitesse > 0 And unite_int_vitesse <> vbNullString Then intrant_vitesse = intrant_vitesse * Rapport_Vitesse(unite_int_vitesse) 'Convertir en m/s
If intrant_superficie > 0 And unite_int_superficie <> vbNullString Then intrant_superficie = intrant_superficie * Rapport_Surface(unite_int_superficie) 'Convertir en m²
If intrant_debit > 0 And unite_int_debit <> vbNullString Then intrant_debit = intrant_debit * Rapport_Debit(unite_int_debit) 'Convertir en m³/h
If intrant_distance > 0 And unite_int_distance <> vbNullString Then intrant_distance = intrant_distance * Rapport_Longueur(unite_int_distance) 'Convertir en m
If intrant_diametre > 0 And unite_int_diametre <> vbNullString Then intrant_diametre = intrant_diametre * Rapport_Longueur(unite_int_diametre) 'Convertir en m
If intrant_rayon > 0 And unite_int_rayon <> vbNullString Then intrant_rayon = intrant_rayon * Rapport_Longueur(unite_int_rayon) 'Convertir en m
calcul_diamhydro_act = calcul_diamhydro_act * Rapport_Longueur(unite_cal_diamhydro) 'Convertir en m
If IsNumeric(calcul_diamhydro_amont) And calcul_diamhydro_amont > 0 Then calcul_diamhydro_amont = calcul_diamhydro_amont * Rapport_Longueur(unite_cal_diamhydro) 'Convertir en m
calcul_section_act = calcul_section_act * Rapport_Surface(unite_cal_section) 'Convertir en m²
If IsNumeric(calcul_section_amont) And calcul_section_amont > 0 Then calcul_section_amont = calcul_section_amont * Rapport_Surface(unite_cal_section) 'Convertir en m²
'Chercher/calculer la valeur des abscisses ou ordonnée selon la catégorie de l'abscisse ou l'ordonnée pour un accessoire donné
Select Case abs_ord_type
Case "A0/A1": Select Case code_ashrae
Case "SR7_13", "SR7_14", "SR7_15", "SR7_16", "SR7_17"
Chercher_Abscisse_Ordonnee = calcul_section_act / intrant_superficie
Case "SD1_02", "SD4_01", "SD4_02", "SR4_01", "SR4_02", "SR4_03", "SR1_01"
Chercher_Abscisse_Ordonnee = calcul_section_act / calcul_section_amont
Case "ED4_01", "ED4_02", "ER2_01", "ER2_02", "ER4_01", "ER4_02", "ER4_03"
Chercher_Abscisse_Ordonnee = calcul_section_amont / calcul_section_act
End Select
Case "Ab/A0": Chercher_Abscisse_Ordonnee = intrant_superficie / calcul_section_act
' BEAUCOUP DE CAS, J'AI DÉBROUSSAILLÉ...
Case "y/H": Chercher_Abscisse_Ordonnee = intrant_distance / calcul_hauteur_act
Case "-": Chercher_Abscisse_Ordonnee = "-"
End Select
Else
Chercher_Abscisse_Ordonnee = vbNullString
End If
End Function |
Partager