Option Explicit
Function taratura(Q, Dpcir As Variant, diamval As String)
Dim giri, Ddiff, Dp As Long
Dim Dp_terra, Dp_primo As Range
Dim DpmaxPT, DpmaxP1 As Variant
Set Dp_terra = Worksheets(1).Range("F4:F9")
Set Dp_primo = Worksheets(1).Range("F11:F18")
'If IsEmpty(Range(Dp_terra)) Or IsEmpty(Range(Dp_primo)) Then:
'Exit Function
DpmaxPT = WorksheetFunction.Max(Dp_terra)
DpmaxP1 = WorksheetFunction.Max(Dp_primo)
If Dpcir(Dp_terra(Dpcir)) Then
DpcirPT = Dpcir
Ddiff = DpmaxPT - Dpcir
If diamval = "3/8''" And Ddiff <= Dpmax Then
Dp = 3.4826 * Q ^ 1.909
If Dp <= Ddiff Then
giri = "¾": GoTo ok
End If
Dp = 2.418 * Q ^ 1.7925
If Dp <= Ddiff Then
giri = "1": GoTo ok
End If
Dp = 0.8027 * Q ^ 1.7982
If Dp <= Ddiff Then
giri = "1 ½": GoTo ok
End If
Dp = 0.1222 * Q ^ 1.908
If Dp <= Ddiff Then
giri = "2": GoTo ok
End If
Dp = 0.0166 * Q ^ 1.9727
If Dp <= Ddiff Then
giri = "2 ½": GoTo ok
End If
Dp = 0.0035 * Q ^ 2.0706
If Dp <= Ddiff Then
giri = "3": GoTo ok
End If
Dp = 0.0016 * Q ^ 2.0403
If Dp <= Ddiff Then
giri = "4": GoTo ok
End If
Dp = 0.0007 * Q ^ 2.1117
If Dp <= Ddiff Then
giri = "A": GoTo ok
Else
giri = "Ap"
End If
End If
If diamval = "1/2''" And Ddiff <= DpmaxPT Then
Dp = 3.205 * Q ^ 1.6734
If Dp <= Ddiff Then
giri = "½": GoTo ok
End If
Dp = 1.072 * Q ^ 1.67
If Dp <= Ddiff Then
giri = "¾": GoTo ok
End If
Dp = 0.4727 * Q ^ 1.6783
If Dp <= Ddiff Then
giri = "1": GoTo ok
End If
Dp = 0.216 * Q ^ 1.7158
If Dp <= Ddiff Then
giri = "1 ½": GoTo ok
End If
Dp = 0.1533 * Q ^ 1.7264
If Dp <= Ddiff Then
giri = "2": GoTo ok
End If
Dp = 0.0984 * Q ^ 1.7527
If Dp <= Ddiff Then
giri = "3": GoTo ok
End If
Dp = 0.0442 * Q ^ 1.842
If Dp <= Ddiff Then
giri = "4": GoTo ok
End If
Dp = 0.0167 * Q ^ 1.9003
If Dp <= Ddiff Then
giri = "4 ½": GoTo ok
End If
Dp = 0.0066 * Q ^ 1.9063
If Dp <= Ddiff Then
giri = "5": GoTo ok
End If
Dp = 0.0025 * Q ^ 1.8928
If Dp <= Ddiff Then
giri = "A": GoTo ok
Else
giri = "Ap"
End If
End If
If (Dp_primo(Dpcir)) Then
DpmaxP1 = Dpcir
Ddiff = DpmaxP1 - Dpcir
If diamval = "3/8''" And Ddiff <= DpmaxP1 Then
Dp = 3.4826 * Q ^ 1.909
If Dp <= Ddiff Then
giri = "¾": GoTo ok
End If
Dp = 2.418 * Q ^ 1.7925
If Dp <= Ddiff Then
giri = "1": GoTo ok
End If
Dp = 0.8027 * Q ^ 1.7982
If Dp <= Ddiff Then
giri = "1 ½": GoTo ok
End If
Dp = 0.1222 * Q ^ 1.908
If Dp <= Ddiff Then
giri = "2": GoTo ok
End If
Dp = 0.0166 * Q ^ 1.9727
If Dp <= Ddiff Then
giri = "2 ½": GoTo ok
End If
Dp = 0.0035 * Q ^ 2.0706
If Dp <= Ddiff Then
giri = "3": GoTo ok
End If
Dp = 0.0016 * Q ^ 2.0403
If Dp <= Ddiff Then
giri = "4": GoTo ok
End If
Dp = 0.0007 * Q ^ 2.1117
If Dp <= Ddiff Then
giri = "A": GoTo ok
Else
giri = "Ap"
End If
End If
If diamval = "1/2''" And Ddiff <= DpmaxP1 Then
Dp = 3.205 * Q ^ 1.6734
If Dp <= Ddiff Then
giri = "½": GoTo ok
End If
Dp = 1.072 * Q ^ 1.67
If Dp <= Ddiff Then
giri = "¾": GoTo ok
End If
Dp = 0.4727 * Q ^ 1.6783
If Dp <= Ddiff Then
giri = "1": GoTo ok
End If
Dp = 0.216 * Q ^ 1.7158
If Dp <= Ddiff Then
giri = "1 ½": GoTo ok
End If
Dp = 0.1533 * Q ^ 1.7264
If Dp <= Ddiff Then
giri = "2": GoTo ok
End If
Dp = 0.0984 * Q ^ 1.7527
If Dp <= Ddiff Then
giri = "3": GoTo ok
End If
Dp = 0.0442 * Q ^ 1.842
If Dp <= Ddiff Then
giri = "4": GoTo ok
End If
Dp = 0.0167 * Q ^ 1.9003
If Dp <= Ddiff Then
giri = "4 ½": GoTo ok
End If
Dp = 0.0066 * Q ^ 1.9063
If Dp <= Ddiff Then
giri = "5": GoTo ok
End If
Dp = 0.0025 * Q ^ 1.8928
If Dp <= Ddiff Then
giri = "A": GoTo ok
Else
giri = "Ap"
End If
End If
End If
End If
ok: taratura = giri
End Function |