Volumen de un tanque por Macros-Excel

EL post de hoy tratará sobre Macros en Excel

Hallar el volumen de un tanque mediante esta fórmula: 
V = L( a * b * ACOS (1 - H / b) + (a * (H-b) (( H * ( 2 * b - H ))  ^ 0.5)) / b)
donde:
L: Longitud
H: Altura del líquido (0 <= H <= 2*b)
2*a: Diámetro mayor.(a) sólo seria el radio mayor
2*b: Diámetro menor. ("H" se mide sobre este eje) (b) sólo sería el radio menor
V: Volumen

El resultado queda de la siguiente manera:

Columna A, identifico los parámetros a ingresar; la columna B son los valores que tomaran los parámetros y la columna D será el resultado que dará la función VolumenTanque.


Indica la forma en la que se deberán ingresar los parámetros:


Los diferentes resultados que podrá mostrar:


El código para la Macros será (Recuerden que deben presionar alt + F11):

Function VolumenTanque(n1 As Double, h As Double, dm As Double, d As Double) As String
Dim frase As String
Dim cil As String
Dim eli As String
Dim unidades As String
Dim error As String
Dim error1 As String

frase = "el volumen es:"
cil = "Es un tanque cilíndrico y"
eli = "Es un tanque elíptico y"
unidades = "cm^2"
error = "Los valores ingresados deben ser mayores a cero"
error1 = "La altura (H) debe ser mayor a cero y menor o igual a"

If h > 0 And n1 > 0 And dm > 0 And d > 0 Then
  
  If h <= 2 * dm Then
  
    If dm = d Then
      VolumenTanque = cil & " " & frase & " " & n1 * (dm * d * Application.WorksheetFunction.Acos(1 - h / dm) + (d * (h - dm) * Application.WorksheetFunction.ImSqrt(h * (2 * dm - h)) / dm)) & unidades

    Else
      If dm < d Then
        VolumenTanque = eli & " " & frase & " " & n1 * (dm * d * Application.WorksheetFunction.Acos(1 - h / dm) + (d * (h - dm) * Application.WorksheetFunction.ImSqrt(h * (2 * dm - h)) / dm)) & unidades

      Else
        VolumenTanque = "Ingrese bien los radios, el orden de los radios no es el correcto"
        
      End If
      
    End If
    
  Else
    VolumenTanque = error1 & " " & 2 * dm
  End If
    
Else
  VolumenTanque = error
    
End If


End Function

-----------------------------------------------------------------------------------------------------------------------------------------------

Bueno, espero les haya ayudado con este ejercicio en su implementación con Macros-Excel, cualquier duda dejen su comentario, gracias xD


Torlez.

No hay comentarios:

Publicar un comentario