Prueba 2 2

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 40

UNIVERSIDAD CENTRAL DEL

ECUADOR
FACULTAD DE INGENIERÍA EN GEOLOGÍA, MINAS,
PETRÓLEOS Y AMBIENTAL
ESCUELA DE INGENIERÍA DE PETRÓLEOS
COMPUTACIÓN APLICADA
Nombre: Anderson Alberto Jiménez Fecha: 11/1/2017
Landa
Curso: Sexto Docente: Ing. Néstor Valdospinos
C.Ms. Sc
Tema: PRUEBA SEGUNDO HEMISEMESTRE: MACRO PARA REALIZAR
LOS CÁLCULOS HIDRÁULICOS EN EL MOVIMIENTO DEL PETRÓLEO
POR UNA TUBERÍA

1.-Objetivos

 Realizar un MACRO en el programa computacional Excel, que pueda


obtener los cálculos hidráulicos más relevantes para la transportación
de Petróleo; el cual permita ingresar y seleccionar los datos necesarios
para dichos cálculos, teniendo en cuenta las características del
petróleo y la tubería.
 Utilizar los conocimientos adquiridos a lo largo del semestre en la
catedra de “Computación Aplicada” sobre las funciones, escritura y
correcto uso de los MACROS en el programa computacional Excel.
 Observar la importancia que tiene el uso de los MACROS para la
realización de cálculos, en este caso relacionados con la mecánica de
fluidos y a su vez con la carrera de ingeniería de Petróleos.
2.- MARCO TEÓRICO

EXCEL

Excel es una aplicación desarrollada por Microsoft y distribuida en el


paquete de Office para usarse en Windows o Macintosh. Presenta una interfaz
intuitiva y amigable con archivos de ayuda incorporados. Es una hoja de
cálculo que permite trabajar con: tablas de datos, gráficos, bases de datos,
macros, y otras aplicaciones avanzadas. Ayudando en el cálculo de ejercicios
aritméticos y siendo de gran utilidad diversas áreas como educación,
administración, finanzas, producción, etc. (Pascuas, S.f)
Según (Caza, S.f) Excel se caracteriza por los siguientes aspectos:
1. Hojas de cálculo de gran dimensión, filas y columnas que forman celdas
de trabajo.
2. Agrupación de varias hojas de cálculo en un libro. Excel está compuesto
por libros, un libro es el archivo en que se trabaja y donde se almacenan los
datos.
3. Actualización automática de los resultados obtenidos en la hoja, al
modificar los datos de los cuales depende un resultado.
4. Gran capacidad de presentación y manejo de los datos introducidos.
5. Realización de distintos tipos de gráficos a partir de los datos introducidos
en la hoja de cálculo, con la posibilidad de insertarlos en la misma hoja de
cálculo o en hojas aparte, pudiendo presentar ambas informaciones juntas o
separadas.
Macros de Excel
Una macro es un conjunto de comandos que se almacena en un lugar
especial de Excel de manera que están siempre disponibles cuando los
necesites ejecutar. Una macro ayuda a automatizar aquellas tareas que
hacemos repetidamente, la cual se realiza con una serie de instrucciones
que son guardadas dentro de un archivo de Excel para poder ser ejecutadas
cuando lo necesitemos.
Elementos de un Macro:

Para automatizar una tarea mediante una macro básicamente se necesitan


los siguientes elementos:

a) Un espacio de trabajo donde se escriben las instrucciones o rutinas que


realizarán las tareas: el Editor de Macros (se accede con el atajo de teclado
Alt+F11 o desde el menú Macros).
Una vez en ese 'espacio' del Editor escribiremos o copiaremos las rutinas:
en módulos, en el objeto HOJA o en ThisWorkbook, según el tipo de macro.

b) Una acción que producirá que la tarea programada se ejecute, el cual


llamamos “Eventos” que inician una macro y pueden ser: abrir o cerrar un
libro, entrar o salir de una hoja, cambios o selección de celdas, antes de
imprimir o guardar, el “clic” en un botón de comando, al presionar un atajo
de teclado, y otros más.

c) Un lenguaje de programación. En Excel utilizamos VBA (Visual Basic


para Aplicaciones)

d) Ocasionalmente un formulario llamado Userform donde trabajar para


luego volcar los resultados en las hojas.
Creación de un Macro.

Para iniciar la grabación debes ir al comando “Grabar macro” que se


encuentra en la ficha “Programador” lo cual mostrará el siguiente cuadro
de diálogo.

Allí se puede observar que ya se ha ingresado un nombre para el macro,


las teclas rápidas, seguidamente se inserta una descripción y aceptar.
3.-DESARROLLO

Sub MiPrimerMacro()
Cells.Clear
El primer comando Cells.Clear borra todo dato y hace que la hoja quede en blanco totalmente.
Dim n, ingresocuadal, ingresodiam, ingresotem As String
Se ingresan las siguientes variables luego del Dim y se las define como variables tipo
cadena, es decir, alfanumérica.
Dim caudal, caudales, diametro, diametrom, seccionplg, seccionmc, velocidad,
velocidadmps, temperaturaf, temcent, temfarh, viscosidadc, pespecifico As Double
Se ingresan las siguientes variables luego del Dim y se las define como variables tipo
numéricas con decimales.
MsgBox "INICIO DE LOS CÁLCULOS HIDRÁULICOS" & Chr(13) &
"BIENVENIDOS", , "INICIANDO"
La función MsgBox crea una ventana, en este caso dando la bienvenida al usuario y
señalando que se ha inicializado el macro.

Range("c2").Value = "CÁLCULOS HIDRÁULICOS PARA EL MOVIMIENTO DE


FLUIDOS EN PETRÓLEOS"
Range("c2").Font.Bold = True
Range("c2").Font.Color = RGB(255, 0, 0)
Se procede a trabajar en la celda C2 utilizando Range(“c2”),posterior a eso como en esta
celda estará el título de nuestro proyecto aquí se utiliza la función Range(“c2”).Value y
se escribe el título del proyecto "CÁLCULOS HIDRÁULICOS PARA EL
MOVIMIENTO DE FLUIDOS EN PETRÓLEOS". Posteriormente se usa la función
Range(“c2”) .Font.Bold, la cual al colocar el True hace que el texto este en negrillas. Y
para terminar se usa la función Range("c2").Font.Color para que el texto tenga un color,
el cual se determinara con la función RGB(255, 0, 0), la cual escoge el color deseado en
el modelo de colores RGB; en este caso el color escogido es Rojo.
Range("a3").Value = "CAUDAL EN BARRILES POR DÍA"
Range("a3").Font.Bold = True
Range("a3").Font.Color = RGB(0, 0, 255)
Range("a4").Value = "DIÁMETRO EN PULGADAS"
Range("a4").Font.Bold = True
Range("a4").Font.Color = RGB(0, 0, 255)
Range("a5").Value = "ÁREA EN PULGADAS CUADRADAS"
Range("a5").Font.Bold = True
Range("a5").Font.Color = RGB(0, 0, 255)
Se realiza análogamente el proceso anteriormente mencionado, con las variaciones de que
se da diferentes textos a cada celda específica en la columna A, cabe recalcar que en esta
columna solo existirán textos. Todos estos textos están en negrillas y serán de color azul.
Range("f3").Value = "EN METROS CÚBICOS POR SEGUNDO"
Range("f3").Font.Bold = True
Range("f3").Font.Color = RGB(0, 100, 200)
Range("f4").Value = "EN METROS"
Range("f4").Font.Bold = True
Range("f4").Font.Color = RGB(0, 100, 200)
Range("f5").Value = "EN METROS CUADRADOS"
Range("f5").Font.Bold = True
Range("f5").Font.Color = RGB(0, 100, 200)
Se repite el proceso anteriormente mencionado, de igual forma se pone diferentes textos
en cada celda específicamente de la columna F, donde solo existirá texto. Todos los textos
de esta sección estarán en negrillas y serán de color celeste.
Columns("A:C").Select
Selection.ColumnWidth = 18
Columns("D:D").Select
Selection.ColumnWidth = 13
Columns("J:J").Select
Selection.ColumnWidth = 13
En esta parte el macro procede a seleccionar las columnas especificadas y las ensancha a
los valores que se establece. Esto se hace para mejorar la estética del macro y sobre todo
para que todo texto y valor sea visible para el usuario.

Do
n = InputBox("Para ingresar el caudal en barriles por día escriba BPPD " & Chr(13)
& "o en metros cúbicos por segundo escriba MCPS ", "UNIDADES DEL CAUDAL")
ingresocaudal = n
Loop Until (ingresocaudal = "BPPD" Or ingresocaudal = "bppd" Or ingresocaudal =
"MCPS" Or ingresocaudal = "mcps")
Se usa la función Do para ejecutar un proceso cíclico, en este caso se abrirá una ventana
la cual se usa para pedir al usuario que ingrese las unidades del caudal del fluido, ya sea
en barriles por día, utilizando la abreviatura de “BPPD”; o en metros cúbicos por segundo,
usando la abreviatura de “MCPS” . Las abreviaturas se las usa con el fin para que al
usuario no le sea tedioso la escritura completa de las unidades del caudal a usar. Las
abreviaturas que use el usuario se las almacenara en la variable alfanumérica n, definida
al inicio del macro y posteriormente dicha valor se pasa a la variable ingesocaudal . Para
salir del Do se usa la función Loop Until, en la cual se determina la condición para salir.
En este caso la condición es que ya no se cumpla, si el usuario ingresa las abreviaturas
propuestas ya sean en mayúsculas o minúsculas.
If ingresocaudal = "BPPD" Or ingresocaudal = "bppd" Then
Se utiliza la función condicional If, es decir se usa para que el macro realice un proceso
específico si se cumple una condición, en este caso si en la variable ingresocaudal tiene
almacenado el valor “BPPD” o “bppd”.
caudal = InputBox("Ingresar el caudal en " & Chr(13) & "BARRILES POR DIA",
"INGRESO DEL CAUDAL EN BARRILES POR DÍA")
Si el usuario ingreso dichos valores el macro procede a preguntarle con una ventana el
valor del caudal en Barriles por Día, el valor ingresado se almacena en la variable
numérica caudal.

Range("d3").Value = caudal
Range("d3").Font.Bold = True
Range("d3").Font.Color = RGB(0, 255, 0)
caudalmc = caudal * (3.785 * 42) / (1000 * 86400)
MsgBox "El caudal en m3/s es =" & caudalmc, , "SALIDA DE RESULTADOS"
Range("j3").Value = caudalmc
Range("j3").Font.Bold = True
Range("j3").Font.Color = RGB(0, 255, 0)
Posterior a eso dicho variable es escrita en la celda D3 en negrillas y con el color RGB
(0, 255, 0), que es el color verde (este color se lo usara para todos los valores numéricos).
Luego de eso se usa el valor de la variable caudal que está en las unidades de Barriles
por Día y por factores de conversión se transforma dicho valor para que este en unidades
de Metros Cúbicos por Segundo, ese valor se lo guarda en la variable numérica caudalmc.
Después se hace brotar una ventana que indique el valor calculado del caudal en Metros
Cúbicos por Segundo. Para finalizar se hace que dicho valor se situé en la celda J3 en
negrillas y de color verde.
ElseIf ingresocaudal = "MCPS" Or ingresocaudal = "mcps" Then
El Elseif es la función que indica que se debe cumplir una condición específica para
realizar un proceso, en este caso que la variable ingresocaudal sea igual a MCPS o mcps.
caudalmc = InputBox("Ingrese el caudal en " & Chr(13) & "METROS CÚBICOS
POR SEGUNDO", "INGRESO DEL CAUDAL EN METROS CÚBICOS POR
SEGUNDO")
Si cumple la función condicional Elseif, procede a realizar un proceso parecido al anterior
empero en este caso la ventana que saldrá pedirá el caudal en Metros Cúbicos por
Segundo y se almacenara este valor en la variable caudalmc.

Range("j3").Value = caudalmc
Range("j3").Font.Bold = True
Range("j3").Font.Color = RGB(0, 255, 0)
caudal = caudalmc * (1000 * 86400) / (3.785 * 42)
MsgBox "El caudal en BPPD es =" & caudal, , "SALIDA DE RESULTADOS"
Range("d3").Value = caudal
Range("d3").Font.Bold = True
Range("d3").Font.Color = RGB(0, 255, 0)
En la celda J3 se escribe el valor de la variable numérica caudalmc, este valor estará en
negrillas y de color verde. Con este valor del caudal en Metros Cúbicos por Segundo se
procede a calcular el valor del caudal en las unidades de Barriles por Día, por medio de
los respectivos factores de conversión. El valor encontrado se lo pondrá en la variable
numérica caudal y la celda D3 en color verde y negrillas.
End If
Para indicar que se cierra la función If, se usa el End If

Se realiza el proceso anterior de la misma manera solo que esta vez se solicita al usuario
ingresar los datos referentes al diámetro.
Do
n = InputBox("Para ingresar el diámetro en Pulgadas escriba PLG" & Chr(13) & "o
en Metros escriba M", "UNIDADES DEL DIÁMETRO")
ingresodiam = n
Loop Until (ingresodiam = "PLG" Or ingresodiam = "plg" Or ingresodiam = "M" Or
ingresodiam = "m")
De igual manera que antes se usa la función repetitiva Do, para que se despliegue una
ventana la cual pida al usuario ingresar las unidades del diámetro, se usa las abreviaturas
PLG para pulgadas o M para metros, dicho valor alfanumérico va a la variable n que luego
se la almacena en la variable alfanumérica ingresodiam. El ciclo repetitivo va a concluir
cuando el usuario ingrese las abreviaturas para el diámetro indicadas previamente ya sea
en mayúsculas o minúsculas.

If ingresodiam = "PLG" Or ingresodiam = "plg" Then


Se usa la función condicional If para que el macro realice el siguiente proceso siempre y
cuando la variable ingresodiam tenga el valor alfanumérico PLG o plg.
diametro = InputBox("Ingresar el diámetro en " & Chr(13) & "PULGADAS",
"INGRESO DIÁMETRO EN PULGADAS")

Range("d4").Value = diametro
Range("d4").Font.Bold = True
Range("d4").Font.Color = RGB(0, 255, 0)
diametrom = diametro * 0.0254
MsgBox "El diámetro en Metros es =" & diametrom, , "SALIDA DE RESULTADOS"
Range("j4").Value = diametrom
Range("j4").Font.Bold = True
Range("j4").Font.Color = RGB(0, 255, 0)
Si llega a cumplir la condición el macro procederá a desplegar una ventana donde solicite
al usuario el valor del diámetro en pulgadas y se almacenara dicho valor en la variable
numérica diametro. Luego esta variable se la presentara en la celda D4 en negrillas y
verde. Con dicho valor en la variable diametro en pulgadas se utiliza el respectivo factor
de conversión para transformar a un valor en metros y almacenar ese valor en la variable
numérica diametrom.Ese valor encontrado en metros del diámetro será expuesto en una
ventana y posteriormente se lo colocara en la celda J4 en negrillas y verde.

ElseIf ingresodiam = "M" Or ingresodiam = "m" Then


Se usa la función ElseIf para ingresar un condicional específico para un proceso, en este
caso si la variable ingresodiam tiene el valor alfanumérico M o m, realizara lo siguiente.
diametrom = InputBox("Ingrese el diámetro en " & Chr(13) & "METROS",
"INGRESO DIÁMETRO EN METROS")

Range("j4").Value = diametrom
Range("j4").Font.Bold = True
Range("j4").Font.Color = RGB(0, 255, 0)
diametro = diametrom / 0.0254
MsgBox "El diámetro en Pulgadas es =" & diametro, , "SALIDA DE RESULTADOS"
Range("d4").Value = diametro
Range("d4").Font.Bold = True
Range("d4").Font.Color = RGB(0, 255, 0)
End If
Se procede a abrir una ventana en la cual se solicita ingresar al usuario el valor del
diámetro en metros, este valor se guarda en la variable numérica diametrom. Posterior a
eso dicha variable se presenta en la celda J4 en negrillas y verde. Con dicho valor en la
unidad de metros, se utiliza el factor de conversión correspondiente para encontrar el
valor numérico en pulgadas. Este valor se lo guarda en la variable numérica diametro,
luego se abre una ventana indicando el valor del diámetro en pulgadas encontrado.
Después en la celda D4 se inserta la variable diámetro en negrillas y verde. Para finalizar
el proceso de la función condicional se usa el End If.
'Calcular el área en pulgadas cuadradas y en metros cuadrados

seccionplgc = WorksheetFunction.Pi() * (diametro ^ 2) / 4


MsgBox "El Área en Pulgadas Cuadradas es =" & seccionplgc, , "SALIDA DE
RESULTADOS"
Range("d5").Value = seccionplgc
Range("d5").Font.Bold = True
Range("d5").Font.Color = RGB(0, 255, 0)
Se utiliza la variable numérica diámetro previamente definida para calcular el área de la
sección de la tubería por donde pasa el fluido. Asumiendo que el área de la tubería es un
circulo se utiliza la ecuación del área de un circulo; hay que tener claro que
WorksheetFunction.Pi() es la manera de escribir el numero irracional Pi en un macro y
que el diámetro se encuentra en pulgadas. El valor encontrado por el cálculo del área de
la sección de la tubería se almacena en la variable numérica seccionplgc. Luego aparecerá
una ventana en la cual indique el valor del área de la tubería en Pulgadas Cuadradas. Este
valor estará en la celda D5 en negrillas y de color verde.

seccionmc = seccionplgc * (0.0254) ^ 2


MsgBox "El Área en Metros Cuadrados es =" & seccionmc, , "SALIDA DE
RESULTADOS"
Range("j5").Value = seccionmc
Range("j5").Font.Bold = True
Range("j5").Font.Color = RGB(0, 255, 0)
Se procede a utilizar la variable numérica seccionplgc, que representa el valor del área de
la tubería en pulgadas cuadradas, para que por medio de factores de conversión se pueda
encontrar el valor del área de la tubería en metros cuadrados; este valor se almacena en la
variable numérica seccionmc. Luego se abre una ventana indicando el valor del área
encontrado en metros cuadrados. Para finalizar se inserta el valor de la variable numérica
seccionmc en la celda J5, y a este se lo hace de color verde y en negrilla.
'Velocidad del fluido en la tubería

Range("a6").Value = "VELOCIDAD EN PIES POR SEGUNDOS ES"


Range("a6").Font.Bold = True
Range("a6").Font.Color = RGB(0, 100, 200)
Range("f6").Value = "EN METROS POR SEGUNDOS ES"
Range("f6").Font.Bold = True
Range("f6").Font.Color = RGB(0, 100, 200)
Se procede a colocar en la celda A6 el texto VELOCIDAD EN PIES POR SEGUNDOS
ES en negrillas y de color celeste, con estas mismas características se coloca el texto EN
METROS POR SEGUNDOS ES en la celda F6. Con esto realizado ya se puede continuar
a encontrar la velocidad del fluido en la tubería.
velocidad = (caudalmc / seccionmc) * 3.28
MsgBox "La Velocidad del Fluido en Pies por Segundo es" & velocidad, , "SALIDA
DE RESULTADOS"
Range("d6").Value = velocidad
Range("d6").Font.Bold = True
Range("d6").Font.Color = RGB(0, 255, 0)
Para el cálculo de la velocidad del fluido en la tubería en Pies por Segundo, se divide las
variables caudalmc (que está en metros cúbicos) y seccionmc (que está en metros
cuadrados) y se las multiplica por el debido factor de conversión. El valor encontrado en
Pies por Segundo se lo almacena en la variable numérica velocidad, luego se abre una
ventana indicando el valor de la velocidad encontrado. Este valor se lo inserta en la celda
D6 en negrillas y de color verde.

velocidadmps = caudalmc / seccionmc


MsgBox "La Velocidad del Fluido en Metros por Segundo es" & velocidadmps, ,
"SALIDA DE RESULTADOS"
Range("j6").Value = velocidadmps
Range("j6").Font.Bold = True
Range("j6").Font.Color = RGB(0, 255, 0)
Se continúa con el cálculo de la velocidad pero en este caso se busca que este en Metros
por Segundo, por lo tanto se divide las mismas variables anteriormente mencionadas mas
no se usa ningún factor de conversión; este valor se lo guarda en la variable numérica
velocidadmps. De igual forma se procede a que se abra una ventana indicando el valor
de la velocidad del fluido en Metros por Segundo. Para finalizar esta sección se escribe
el valor encontrado en la celda J6 de color verde y en negrillas.

'Grando API del Petróleo

Range("a7").Value = "EL GRADO API DEL PETRÓLEO ES"


Range("a7").Font.Bold = True
Range("a7").Font.Color = RGB(0, 100, 200)
MsgBox "El Grado API del petróleo debe ser igual o mayor que 12" & Chr(13) & "O
menor o igual que 40", , "INGRESO DEL GRADO API"
Se procede a insertar el siguiente texto EL GRADO API DEL PETRÓLEO ES en la
celda A7 en negrillas y de color celeste. Luego se hace aparecer una ventana indicando a
manera de aviso al usuario que el Grado API a ingresar debe estar en el rango de 12 hasta
40 grados.

Dim API, temperatura As String


Dim APIN As Double
Posteriormente se define nuevas variables en este caso las variables API y temperatura
como alfanuméricas y la variable APIN como numérica decimal.
Do
API = InputBox("Ingrese el grado API del petróleo, debe ser igual o mayor de 12" &
Chr(13) & "O menor o igual a 40 ", "INGRESO DEL GRADO API")
APIN = Val(API)
Se usa la función repetitiva Do y se despliega una ventana en la cual solicita al ingresar
al usuario el valor del grado API, recordándole que debe estar en el rango ente 12 hasta
40. El valor ingresado se lo guarda en la variable alfanumérica API, posterior a eso con
dicha variable se utiliza la función Val (), la cual extrae el valor numérico de dicha
variable y así se almacena ese valor en la variable numérica APIN.

If APIN < 12 Or APIN > 40 Then


MsgBox "VUELVA A INGRESAR EL GRADO API DEL PETRÓLEO, RECUERDE
DEBE SER IGUAL O MAYOR QUE 12" & Chr(13) & "O IGUAL O MENOR QUE
40", , "INGRESO DEL GRADO API"
End If
Se procede a usar la función condicional If para que de esta manera el macro pueda
identificar si el usuario ingreso un valor fuera del rango de 12 hasta 40 grados API. Si el
usuario llega a ingresar un valor fuera de dicho rango, se abrirá una ventana indicando
que debe volver a ingresar el valor del Grado API puesto que esta fuera del rango con el
que trabaja este macro. Se cierra la función condicional con el End If.

Loop Until (APIN >= 12 And APIN <= 40)


Range("d7").Value = APIN
Range("d7").Font.Bold = True
Range("d7").Font.Color = RGB(0, 255, 0)
La función repetitiva Do se termina con el Loop Until, que se activa cuando el valor de
la variable numérica APIN se encuentra en el rango entre 12 hasta 40 grados API.
Después en la celda D7 se inserta el valor de la variable APIN, se la pone en negrillas y
en color verde.

'INGRESAR DE LA TEMPERATURA
Range("a9").Value = "LA TEMPERATURA EN GRADOS CENTIGRADOS DEL
PETRÓLEO ES "
Range("a9").Font.Bold = True
Range("a9").Font.Color = RGB(0, 100, 200)
Range("f9").Value = "LA TEMPERATURA EN GRADOS FARENHEIT ES"
Range("F9").Font.Bold = True
Range("F9").Font.Color = RGB(0, 100, 200)
En la celda A9 se procede a ingresar el texto LA TEMPERATURA EN GRADOS
CENTIGRADOS DEL PETRÓLEO ES, en negrillas y de color celeste. Con estas
mismas características se ingresa en la celda F9 el texto LA TEMPERATURA EN
GRADOS FARENHEIT ES.

30
Este número nos servirá como anclaje para la función repetitiva Go to que se utilizara
después. De esta manera cuando se pase por dicha función el macro comenzara a correr
otra vez desde este punto.
Do
n = InputBox("Para ingresar la Temperatura en Grados Centígrados escriba CENT"
& Chr(13) & "Si desea Ingresar en Grados Fahrenheit escriba FAR", "INGRESO DE
LAS UNIDADES DE LA TEMPERATURA")
ingresotem = n
Loop Until (ingresotem = "CENT" Or ingresotem = "cent" Or ingresotem = "far" Or
ingresotem = "FAR")
Se usa la función repetitiva Do, con lo cual se abre una ventana solicitando ingresar las
unidades de temperatura a usar. Si desea grados Centígrados debe escribir el usuario la
abreviación CENT, y si desea grados Fahrenheit debe ingresar la abreviación FAR. Estos
valores serán almacenados en la variable alfanumérica n, que luego será guardada en la
variable alfanumérica ingresotem. La función según el Loop Until terminara cuando el
usuario ingrese las abreviaciones previstas ya sean en minúsculas o mayúsculas.

If ingresotem = "CENT" Or ingresotem = "cent" Then


temcent = InputBox("Ingrese la Temperatura en " & Chr(13) & "GRADOS
CENTÍGRADOS", "INGRESO DEL VALOR DE LA TEMPERATURA")
Range("d9").Value = temcent
Range("d9").Font.Bold = True
Range("d9").Font.Color = RGB(0, 255, 0)
Se procede a utilizar la función condicional If, para que cuando la variable alfanumérica
ingresotem tenga los valores CENT o cent, continúe con el proceso descrito. Después de
que cumpla la condición, se abrirá una ventana en la cual se pedirá al usuario que ingrese
el valor de la temperatura en grados centígrados, este valor será guardado en la variable
numérica temcent. El valor de dicha variable se colocara en la celda D9, en negrillas y
color verde.

temfarh = temcent * 9 / 5 + 32
MsgBox "la Temperatura en Grados Fahrenheit es =" & temfarh, , "SALIDA DE
RESULTADOS"
Range("j9").Value = temfarh
Range("j9").Font.Bold = True
Range("j9").Font.Color = RGB(0, 255, 0)
Con la variable numérica temcent que contiene el valor de la temperatura en grados
centígrados, se pasa a realizar las debidas conversiones para encontrar la temperatura en
grados Fahrenheit; este valor se lo guarda en la variable numérica temfarh. Posterior a
eso se abre una ventana la cual indica el valor encontrado de la temperatura en grados
Fahrenheit. Luego en la celda J9 se inserta el texto de la variable temfarh, de color verde
y negrillas.

ElseIf ingresotem = "far" Or ingresotem = "FAR" Then


temfarh = InputBox("Ingresar la Temperatura en" & Chr(13) & "GRADOS
FAHRENHEIT", "INGRESO DEL VALOR DE LA TEMPERATURA")
Range("j9").Value = temfarh
Range("j9").Font.Bold = True
Range("j9").Font.Color = RGB(0, 255, 0)
La función ElseIf sirve para cumplir un proceso bajo cierta condición, en este caso si la
variable alfanumérica es igual al valor Far o far se realiza lo que se describe a
continuación. Se abre una ventana en la cual se pide que se ingrese el valor de la
temperatura en Grados Fahrenheit y ese valor se guarda en la variable numérica temfarh,
posteriormente el valor de la variable se mostrara en la celda J9, en negrillas y de color
verde.

temcent = (temfarh - 32) * 5 / 9


MsgBox "La Temperatura en Grados Centigrados=" & temcent, , "SALIDA DE
RESULTADOS"
Range("d9").Value = temcent
Range("d9").Font.Bold = True
Range("d9").Font.Color = RGB(0, 255, 0)
End If
Utilizando la variable temfarh se realiza la respectiva transformación de unidades de
dicho valor, de manera que la temperatura pase de grados Fahrenheit a grados Centígrados.
Este valor se almacena en la variable temcent, luego se abre una ventana la cual indica
el valor encontrado de la temperatura en grados centígrados. Este valor calculado se lo
inserta en la celda D9, en negrillas y de color verde. Y para finalizar se cierra la función
condicional con el End If.
'VISCOSIDAD CINEMATICA
'VISCOSIDAD CINEMATICA PARA API ENTRE 12 Y 14

If APIN >= 12 And APIN < 14 Then


Se utiliza la función condicional If, para que cuando la variable numerica APIN este en
el rango de ser igual o mayor que 12 y a la vez que sea menor que 14. Proceda a realizar
lo siguiente.

If temcent >= 38 And temcent <= 60 Then


viscosidadc = 6 * temcent ^ 2 - 720 * temcent + 22000

ElseIf temcent > 60 And temcent <= 90 Then


viscosidadc = 0.25 * temcent ^ 2 - 51.5 * temcent + 2710

ElseIf temcent > 90 And temcent <= 120 Then


viscosidadc = 0.2175 * temcent ^ 2 - 50.925 * temcent + 3015

ElseIf temcent > 120 And temcent <= 150 Then


viscosidadc = 0.025 * temcent ^ 2 - 7.75 * temcent + 614
Se vuelve a utilizar un If y los respectivos ElseIf, solo que esta vez se analiza en que
rango se encuentra el valor de la variable numerica temcent que es la temperatura del
petróleo en grados centígrados. Si entra en alguno de estos rangos se procede a utilizar
dicha valor para calcular con su ecuación respectiva, el valor de la viscosidad cinemática.
Este valor se almacenara en la variable numérica viscosidadc. Las ecuaciones utilizadas
para calcular la viscosidad cinemática, fueron hechas a partir de interpolaciones de la
gráfica de la Viscosidad Cinemática en función de la Temperatura, elaborada por
AMERICAN SOCIETY FOR TESTING AND MATERIALS.

Else
MsgBox "Ingrese la temperatura entre el rango de 38 hasta 150 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
Si dicha temperatura en grados centígrados no se encuentra en ninguno de esos rangos,
se utiliza el Else, para que se abra una ventana indicando que el usuario ingreso una
temperatura fuera del rango predefinido. Posterior se usa la función Go to, que sirve para
re direccionarnos al anclaje, en este caso el número 30. Con esto el usuario otra vez debe
repetir el proceso desde dicho anclaje, que es justamente el ingresar la temperatura. Así
se asegura que el usuario ingrese una temperatura correcta y pueda seguir utilizando el
macro.

End If

'viscosidad para grado api entre 14 y 16


Se repite análogamente los procesos anteriormente mencionados, solo que para cada caso
los rangos para la variable numérica APIN son diferentes; de igual manera los rangos
para la variable numérica temcent y las ecuaciones para encontrar la viscosidad
cinemática van hacer diferentes. La viscosidad cinemática encontrada se la guardara en
la variable numérica viscosidadc. Además si el usuario ingresa una temperatura que no
está amparada en el rango predefinido se usa abre una ventana indicando que la
temperatura ingresada está fuera del rango y se usa la función Go to para volver a solicitar
la temperatura al usuario.

ElseIf APIN >= 14 And APIN < 16 Then


If temcent >= 30 And temcent <= 50 Then
viscosidadc = 4.65 * temcent ^ 2 - 470.5 * temcent + 12380
ElseIf temcent > 50 And temcent <= 80 Then
viscosidadc = 0.2 * temcent ^ 2 - 36 * temcent + 1690

ElseIf temcent > 80 And temcent <= 110 Then


viscosidadc = 0.0375 * temcent ^ 2 - 8.975 * temcent + 561.5

ElseIf temcent > 110 And temcent <= 130 Then


viscosidadc = -0.05 * temcent - 80.5

ElseIf temcent > 130 And temcent <= 150 Then


viscosidadc = -0.4 * temcent + 70

Else
MsgBox "Ingrese la temperatura entre el rango de 30 hasta 150 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 16 y 18

ElseIf APIN >= 16 And APIN < 18 Then

If temcent >= 10 And temcent <= 30 Then


viscosidadc = 9 * temcent ^ 2 - 870 * temcent + 9800

ElseIf temcent > 30 And temcent <= 60 Then


viscosidadc = 0.85 * temcent ^ 2 - 101.5 * temcent + 3150

ElseIf temcent > 60 And temcent <= 90 Then


viscosidadc = 0.04 * temcent ^ 2 - 8.5 * temcent + 474

ElseIf temcent > 90 And temcent <= 120 Then


viscosidadc = 0.01 * temcent ^ 2 - 2.7 * temcent + 194

ElseIf temcent > 120 And temcent <= 150 Then


viscosidadc = 0.004 * temcent ^ 2 - 1.31 * temcent + 131.5

Else
MsgBox "Ingrese la temperatura entre el rango de 30 hasta 150 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 18 y 20

ElseIf APIN >= 18 And APIN < 20 Then

If temcent >= 0 And temcent <= 20 Then


viscosidadc = -11.5 * temcent ^ 2 - 445 * temcent + 5000

ElseIf temcent > 20 And temcent <= 50 Then


viscosidadc = 0.3 * temcent ^ 2 - 34 * temcent + 1050

ElseIf temcent > 50 And temcent <= 80 Then


viscosidadc = 0.04 * temcent ^ 2 - 7.2 * temcent + 348

ElseIf temcent > 80 And temcent <= 110 Then


viscosidadc = 0.0015 * temcent ^ 2 - 3.45 * temcent + 209

ElseIf temcent > 110 And temcent <= 130 Then


viscosidadc = 0.2 * temcent + 33

ElseIf temcent > 130 And temcent <= 150 Then


viscosidadc = 0.1 * temcent + 20

Else
MsgBox "Ingrese la temperatura entre el rango de 0 hasta 150 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 20 y 22

ElseIf APIN >= 20 And APIN < 22 Then


If temcent >= -10 And temcent <= 10 Then
viscosidadc = 14 * temcent ^ 2 - 220 * temcent + 1400

ElseIf temcent > 10 And temcent <= 40 Then


viscosidadc = 0.425 * temcent ^ 2 - 36.25 * temcent + 855

ElseIf temcent > 40 And temcent <= 70 Then


viscosidadc = 0.055 * temcent ^ 2 - 8.15 * temcent + 325

ElseIf temcent > 70 And temcent <= 100 Then


viscosidadc = 0.005 * temcent ^ 2 - 1.25 * temcent + 85

ElseIf temcent > 100 And temcent <= 120 Then


viscosidadc = 0.15 * temcent + 24.5

ElseIf temcent > 120 And temcent <= 150 Then


viscosidadc = 0.06 * temcent + 12.8

Else
MsgBox "Ingrese la temperatura entre el rango de -10 hasta 150 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 22 y 24

ElseIf APIN >= 22 And APIN < 24 Then

If temcent >= -20 And temcent <= 0 Then


viscosidadc = 10 * temcent ^ 2 - (3 * Exp(-13)) * temcent + 500

ElseIf temcent > 0 And temcent <= 30 Then


viscosidadc = 0.375 * temcent ^ 2 - 23.75 * temcent + 450

ElseIf temcent > 30 And temcent <= 60 Then


viscosidadc = 0.025 * temcent ^ 2 - 3.75 * temcent + 155

ElseIf temcent > 60 And temcent <= 90 Then


viscosidadc = 0.0075 * temcent ^ 2 - 1.525 * temcent + 85

ElseIf temcent > 90 And temcent <= 120 Then


viscosidadc = 0.0025 * temcent ^ 2 - 0.675 * temcent + 49.5

ElseIf temcent > 120 And temcent <= 150 Then


viscosidadc = 0.001 * temcent ^ 2 - 0.33 * temcent + 30

Else
MsgBox "Ingrese la temperatura entre el rango de -20 hasta 150 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 24 y 26

ElseIf APIN >= 24 And APIN < 26 Then

If temcent >= -30 And temcent <= -10 Then


viscosidadc = 8 * temcent ^ 2 + 170 * temcent + 1400

ElseIf temcent > -10 And temcent <= 20 Then


viscosidadc = 0.25 * temcent ^ 2 - 12.5 * temcent + 220

ElseIf temcent > 20 And temcent <= 50 Then


viscosidadc = 0.03 * temcent ^ 2 - 3.5 * temcent + 115

ElseIf temcent > 50 And temcent <= 80 Then


viscosidadc = 0.005 * temcent ^ 2 - 0.95 * temcent + 52

ElseIf temcent > 80 And temcent <= 110 Then


viscosidadc = 0.0015 * temcent ^ 2 - 0.385 * temcent + 28.5

ElseIf temcent > 110 And temcent <= 130 Then


viscosidadc = 0.08 * temcent + 13.4

Else
MsgBox "Ingrese la temperatura entre el rango de -30 hasta 130 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 26 y 28

ElseIf APIN >= 26 And APIN < 28 Then

If temcent >= -30 And temcent <= -10 Then


viscosidadc = 3.6 * temcent ^ 2 + 80 * temcent + 660

ElseIf temcent > -10 And temcent <= 20 Then


viscosidadc = 0.14 * temcent ^ 2 - 6.4 * temcent + 110

ElseIf temcent > 20 And temcent <= 50 Then


viscosidadc = 0.005 * temcent ^ 2 - 1.05 * temcent + 52

ElseIf temcent > 50 And temcent <= 80 Then


viscosidadc = 0.0025 * temcent ^ 2 - 0.525 * temcent + 32

ElseIf temcent > 80 And temcent <= 110 Then


viscosidadc = 0.001 * temcent ^ 2 - 0.27 * temcent + 21
Else
MsgBox "Ingrese la temperatura entre el rango de -30 hasta 110 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 28 y 30

ElseIf APIN >= 28 And APIN < 30 Then

If temcent >= -40 And temcent <= -20 Then


viscosidadc = 3.6 * temcent ^ 2 + 152 * temcent + 1820

ElseIf temcent > -20 And temcent <= 10 Then


viscosidadc = 0.17 * temcent ^ 2 - 3.8 * temcent + 55

ElseIf temcent > 10 And temcent <= 40 Then


viscosidadc = 0.015 * temcent ^ 2 - 1.45 * temcent + 45

ElseIf temcent > 40 And temcent <= 70 Then


viscosidadc = 0.005 * temcent ^ 2 - 0.75 * temcent + 33.5

ElseIf temcent > 70 And temcent <= 100 Then


viscosidadc = 0.06 * temcent + 9

Else
MsgBox "Ingrese la temperatura entre el rango de -40 hasta 100 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 30 y 32

ElseIf APIN >= 30 And APIN < 32 Then

If temcent >= -30 And temcent <= -10 Then


viscosidadc = 0.25 * temcent ^ 2 - 2.5 * temcent + 50

ElseIf temcent > -10 And temcent <= 20 Then


viscosidadc = 0.02 * temcent ^ 2 - 1.2 * temcent + 30

ElseIf temcent > 20 And temcent <= 50 Then


viscosidadc = 0.005 * temcent ^ 2 - 0.6 * temcent + 23.5

ElseIf temcent > 50 And temcent <= 80 Then


viscosidadc = 0.001 * temcent ^ 2 - 0.21 * temcent + 13.8

Else
MsgBox "Ingrese la temperatura entre el rango de -30 hasta 80 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 32 y 34

ElseIf APIN >= 32 And APIN < 34 Then

If temcent >= -40 And temcent <= -20 Then


viscosidadc = 0.275 * temcent ^ 2 - 9.25 * temcent + 130

ElseIf temcent > -20 And temcent <= 10 Then


viscosidadc = 0.03 * temcent ^ 2 - 0.9 * temcent + 20

ElseIf temcent > 10 And temcent <= 40 Then


viscosidadc = (6 * 10 ^ (-17)) * temcent ^ 2 - 0.2 * temcent + 13.5

ElseIf temcent > 40 And temcent <= 70 Then


viscosidadc = 0.001 * temcent ^ 2 - 0.19 * temcent + 11.4

Else
MsgBox "Ingrese la temperatura entre el rango de -40 hasta 70 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 34 y 36

ElseIf APIN >= 34 And APIN < 36 Then

If temcent >= -30 And temcent <= -10 Then


viscosidadc = 0.045 * temcent ^ 2 - 0.25 * temcent + 17

ElseIf temcent > -10 And temcent <= 20 Then


viscosidadc = 0.0075 * temcent ^ 2 - 0.475 * temcent + 13

ElseIf temcent > 20 And temcent <= 50 Then


viscosidadc = 0.0015 * temcent ^ 2 - 0.215 * temcent + 10.4

Else
MsgBox "Ingrese la temperatura entre el rango de -30 hasta 50 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 36 y 38

ElseIf APIN >= 36 And APIN < 38 Then


If temcent >= (-40) And temcent <= (-20) Then
viscosidadc = 0.04 * temcent ^ 2 - 0.8 * temcent + 18

ElseIf temcent > (-20) And temcent <= 10 Then


viscosidadc = 0.0075 * temcent ^ 2 - 0.275 * temcent + 8.5

ElseIf temcent > 10 And temcent <= 40 Then


viscosidadc = 0.001 * temcent ^ 2 - 0.15 * temcent + 7.6

Else
MsgBox "Ingrese la temperatura entre el rango de -40 hasta 40 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api entre 38 y 40

ElseIf APIN >= 38 And APIN < 40 Then

If temcent >= -30 And temcent <= -10 Then


viscosidadc = 0.0005 * temcent ^ 2 - 0.335 * temcent + 5.1

ElseIf temcent > -10 And temcent <= 10 Then


viscosidadc = -0.17 * temcent + 6.5

ElseIf temcent > 10 And temcent <= 30 Then


viscosidadc = -0.07 * temcent + 5.2

Else
MsgBox "Ingrese la temperatura entre el rango de -30 hasta 30 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

'viscosidad para grado api 40

ElseIf APIN = 40 Then

If temcent >= -40 And temcent <= -20 Then


viscosidadc = 0.005 * temcent ^ 2 - 0.15 * temcent + 3

ElseIf temcent > -20 And temcent <= 10 Then


viscosidadc = 0.004 * temcent ^ 2 - 0.12 * temcent + 4.4

Else
MsgBox "Ingrese la temperatura entre el rango de -40 hasta 10 GRADOS
CENTIGRADOS" & Chr(13), , "INGRESAR NUEVAMENTE LA TEMPERATURA"
GoTo 30
End If

End If

Range("a11").Value = "EL PETRÓLEO CON EL GRADO API ESCOGIDO Y A LA


TEMPERATURA INDICADA"
Range("a11").Font.Bold = True
Range("a11").Font.Color = RGB(0, 0, 255)
Range("a12").Value = "LA VISCOSIDAD CINEMÁTICA ES"
Range("a12").Font.Bold = True
Range("a12").Font.Color = RGB(0, 0, 255)
Range("d12").Value = viscosidadc
Range("d12").Font.Bold = True
Range("d12").Font.Color = RGB(0, 255, 0)
Range("E12").Value = "CENTISTOKES"
Range("E12").Font.Bold = True
Range("E12").Font.Color = RGB(0, 0, 255)
Se procede a escribir el texto EL PETRÓLEO CON EL GRADO API ESCOGIDO Y A
LA TEMPERATURA INDICADA en la celda A11, en negrillas y de color azul. Con
estas mismas características se escribe otros dos textos: el primero es LA VISCOSIDAD
CINEMÁTICA ES en la celda A12 y en la celda E12 se escribe CENTISTOKES. Para
finalizar esta sección en la celda D12 se ingresa el valor encontrado de la variable
numérica viscosidadc, de color verde en negrillas.

‘Peso específico

Range("a14").Value = "EL PESO ESPECÍFICO DEL PETRÓLEO ES"


Range("a14").Font.Bold = True
Range("a14").Font.Color = RGB(0, 0, 255)
pespecifico = 141.5 / (131.5 + APIN) * 1000
Range("d14").Value = pespecifico
Range("d14").Font.Bold = True
Range("d14").Font.Color = RGB(0, 255, 0)
Se procede a escribir “EL PESO ESPECÍFICO DEL PETRÓLEO ES” en la
celda A14 en negrillas y en color azul. Para el cálculo de este se asigna una variable de
carácter numérico en donde se aplica la fórmula aprendida en mecánica de fluidos l.Con
el valor ya ingresado del grado API se procede cálculo. pespecifico = 141.5 / (131.5 +
APIN) * 1000.De este modo el valor encontrado se lo ubica en la celda D14 con
negrilla y color verde.
MsgBox "EL PESO ESPECÍFICO DEL PETRÓLEO ES =" & pespecifico, ,
"SALIDA DE RESULTADOS"
Se usa el comando MsgBox para que se muestre un cuadro de texto al ejecutarse el
macro con el mensaje “EL PESO ESPECÍFICO DEL PETRÓLEO ES” y “SALIDA
DE RESULTADOS “para que lo miremos en el macro.

Range("E14").Value = "Kg/m3"
Range("E14").Font.Bold = True
Range("E14").Font.Color = RGB(0, 0, 255)
En la celda E14 se ubica las unidades en las cuales está el peso específico del
petróleo con negrillas y en color verde.

‘VISCOSIDAD DINAMICA
Dim Vdinamica, Nreynolds As Double

Range("a15").Value = "LA VISCOSIDAD DINÁMICA DEL PETRÓLEO ES"


Range("a15").Font.Bold = True
Range("a15").Font.Color = RGB(0, 0, 255)
Vdinamica = viscosidadc / 100 * pespecifico / 1000 * 100
Range("d15").Value = Vdinamica
Range("d15").Font.Bold = True
Range("d15").Font.Color = RGB(0, 255, 0)
Se declaran las variables de tipo numéricas en este caso para la el cálculo de la
viscosidad dinámica .
En la celda A15 se escribe el texto “LA VISCOSIDAD DINÁMICA DEL
PETRÓLEO ES” en negrilla y en color azul. Posteriormente haciendo uso del valor
obtenido anteriormente en la variable viscosidadc y con la fórmula aprendida en
Mecánica de Fluidos l se calcula la viscosidad dinámica Vdinamica = viscosidadc /
100 * pespecifico / 1000 * 100, este valor encontrado es escrito en la celda D15 en
negrilla y color verde.

MsgBox "LA VISCOSIDAD DINÁMICA DEL PETRÓLEO ES =" & Vdinamica,


, "SALIDA DE RESULTADOS"
Range("E15").Value = "CENTIPOISES"
Range("E15").Font.Bold = True
Range("E15").Font.Color = RGB(0, 0, 255)
Con el comando MsgBox se escribe LA VISCOSIDAD DINÁMICA DEL
PETRÓLEO ES para que este aparezca en un cuadro de texto con el valor encontrado
en la variable Vdinamica.
Posteriormente se coloca la palabra Centipoises las cuales son unidades de esta
viscosidad en la casilla E15 con negrilla y color verde.
‘Número de Reynolds
Range("a17").Value = "EL NÚMERO DE REYNOLDS EN ESTE FLUJO ES"
Range("a17").Font.Bold = True
Range("a17").Font.Color = RGB(0, 0, 255)
Nreynolds = velocidadmps * diametrom * 1000000 / viscosidadc
Range("d17").Value = Nreynolds
Range("d17").Font.Bold = True
Range("d17").Font.Color = RGB(0, 255, 0)
Se escribe "EL NÚMERO DE REYNOLDS EN ESTE FLUJO ES" en la casilla
A17 de color azul y en negrilla, la variable Nreynolds ya fue declarada anteriormente
como variable de tipo numérica y con los datos obtenidos anteriormente se aplica la
fórmula obteniendo el valor del número de Reynolds, este será colocado en la casilla
D17 en color azul y en negrilla.

MsgBox "EL NÚMERO DE REYNOLDS EN ESTE FLUJO ES =" & Nreynolds,


, "SALIDA DE RESULTADOS"
Se usa el comando MsgBox se usa para que se muestre el valor del número de
Reynolds en un cuadro de texto.

If Nreynolds <= 2000 Then


Range("a19").Value = "EL FLUJO ES LAMINAR"
Range("a19").Font.Bold = True
Range("a19").Font.Color = RGB(0, 0, 255)
Se procede a usar el comando if en el cual si el valor de número de Reynolds es menor o
igual a 2000, en la celda A19 se muestra el mensaje EL FLUJO ES LAMINAR en
negrilla y color azul.
Else
Range("a19").Value = "EL FLUJO ES TURBULENTO"
Range("a19").Font.Bold = True
Range("a19").Font.Color = RGB(0, 0, 255)
End If
Luego si no se cumple la primera parte en el if nos indica en la celda A19 que el flujo es
turbulento en negrilla y color azul.

‘MATERIAL DE TUBERÍA
Dim r As String
Dim Rugosidad As Double
Range("a21").Value = "EL MATERIAL DE LA TUBERÍA ES"
Range("a21").Font.Bold = True
Range("a21").Font.Color = RGB(0, 0, 255)
r = InputBox("Ingrese material de la tubería" & Chr(13) & "VIDRIO = 1" &
Chr(13) & "COBRE = 2" & Chr(13) & "PLÁSTICO = 3" & Chr(13) & "HULE = 4"
& Chr(13) & "HIERO FUNDIDO NUEVO = 5" & Chr(13) & "HIERRO FUNDIDO
SEMIOXIDADO = 6" & Chr(13) & "HIEROO FUNDIDO OXIDADO = 7" &
Chr(13) & "CEMENTO LISO = 8" & Chr(13) & "ACERO = 9" & Chr(13) &
"CONCRETO = 10", "SELECCION DEL MATERIAL DE LA TUBERÍA")
r = Val(r)
Se declaran dos variables una de tipo alfanumérico que es r y una de tipo numérico que
es rugosidad, luego en la casilla A21 se coloca el texto EL MATERIAL DEL LA
TUBERIA ES en color azul y en negrilla. Luego con el comando InputBox se crea un
cuadro de texto donde se selecciona el tipo de material puesto que si el usuario ingresa 1
el material es vidrio y así para cada uno de los materiales de tubería los cuales son
vidrio,cobre,plástico,hule,hierro fundido nuevo ,hierro fundido semioxidado ,hierro
fundido oxidado, cemento liso, acero y concreto.
Range("f21").Value = "LA RUGOSIDAD ABSOLUTA ES"
Range("F21").Font.Bold = True
Range("F21").Font.Color = RGB(0, 0, 255)

If r = 1 Then
Range("d21").Value = "VIDRIO"
Range("d21").Font.Bold = True
Range("d21").Font.Color = RGB(0, 255, 0)
Rugosidad = 0.0000015
Con el comando if en el valor ingresado si fue 1 el material es vidrio y este texto se
coloca en la casilla D21 con color verde y negrilla asi como en la celda F21 el texto LA
RUGOSIDAD ABSOLUTA ES del mismo modo en negrilla y color azul , la variable
antes declarada rugosidad se le da el valor de 0.00000015 y se escribe el valor en la
celda J21 con verde y en negrilla.

ElseIf r = 2 Then
Range("d21").Value = "COBRE"
Range("d21").Font.Bold = True
Range("d21").Font.Color = RGB(0, 255, 0)
Rugosidad = 0.0000015
Con el comando elseif en el cual si no cumple que r=1 sino que es r=2 es el siguiente
material y así hasta el número de materiales que se tiene siguiendo el mismo
procedimiento que se mencionó anteriormente.
'El material de la tubería es Plástico
ElseIf r = 3 Then
Range("d21").Value = "PLÁSTICO"
Range("d21").Font.Bold = True
Range("d21").Font.Color = RGB(0, 255, 0)
Rugosidad = 0.0000015

'El material de la tubería es Hule


ElseIf r = 4 Then
Range("d21").Value = "HULE"
Range("d21").Font.Bold = True
Range("d21").Font.Color = RGB(0, 255, 0)
Rugosidad = 0.000001

'El material de la tubería es Hierro fundido nuevo


ElseIf r = 5 Then
Range("d21").Value = "HIERRO FUNDIDO NUEVO"
Range("d21").Font.Bold = True
Range("d21").Font.Color = RGB(0, 255, 0)
Rugosidad = 0.000008

'El material de la tubería es Hierro fundido semioxidado


ElseIf r = 6 Then
Range("d21").Value = "HIERRO FUNDIDO SEMIOXIDADO"
Range("d21").Font.Bold = True
Range("d21").Font.Color = RGB(0, 255, 0)
Rugosidad = 0.0000125

'El material de la tubería es Hierro fundido oxidado


ElseIf r = 7 Then
Range("d21").Value = "HIERRO FUNDIDO OXIDADOierro Fundido Oxidado"
Range("d21").Font.Bold = True
Range("d21").Font.Color = RGB(0, 255, 0)
Rugosidad = 0.000018

'El material de la tubería es Cemento liso


ElseIf r = 8 Then
Range("d21").Value = "CEMENTO LISO"
Range("d21").Font.Bold = True
Range("d21").Font.Color = RGB(0, 255, 0)
Rugosidad = 0.0000055

'El material de la tubería es Acero


ElseIf r = 9 Then
Range("d21").Value = "ACERO"
Range("d21").Font.Bold = True
Range("d21").Font.Color = RGB(0, 255, 0)
Rugosidad = 0.00007

'El material de la tubería es Concreto


ElseIf r = 10 Then
Range("d21").Value = "CONCRETO"
Range("d21").Font.Bold = True
Range("d21").Font.Color = RGB(0, 255, 0)
Rugosidad = 0.00113
End If

Range("j21").Value = Rugosidad
Range("j21").Font.Bold = True
Range("j21").Font.Color = RGB(0, 255, 0)

'Para calcular el factor de friccion en flujo turbulento


Dim Ffriccion, Fmedio, Fasumido, Fcalculado As Double
Dim Columna1, Comuna2, Fila1 As Integer

If Nreynolds <= 2000 Then


'Flujo Laminar
Range("a23").Value = "EL FACTOR DE FRICCIÓN ES "
Range("a23").Font.Bold = True
Range("a23").Font.Color = RGB(0, 0, 255)
Ffriccion = 64 / Nreynolds
Range("d23").Value = Ffriccion
Range("d23").Font.Bold = True
Range("d23").Font.Color = RGB(0, 255, 0)
MsgBox "EL FACTOR DE FRICCIÓN ES =" & Ffriccion, , "SALIDA DE
RESULTADOS"
Se realiza el cálculo de factor de fricción , primero colocando el texto “EL FACTOR
DE FRICCIÓN ES ” en la celda A23 en negrilla y color azul y con ayuda del comando
if en donde su el flujo es menor o igual que 2000 es flujo laminar por lo que se aplica la
fórmula aprendida en Mecánica de Fluidos I la cual usa el valor del número de
Reynolds calculado con anterioridad este valor se declara la variable Ffriccion en el
cual se almacena el valor y se coloca en la celda D23 con color verde y en negrilla. Por
último con el comando MsgBox se coloca el texto donde muestra un cuadro de texto
con el valor del factor de fricción.
Else
Range("a23").Value = "EL FACTOR DE FRICCIÓN ES"
Range("a23").Font.Bold = True
Range("a23").Font.Color = RGB(0, 0, 255)
MsgBox "EL NÚMERO DE REYNOLDS ES MAYOR DE 2000 " & Chr(13) & "El
cálculo del factor de fricción se lo realizará por interacciones", , "SALIDA DE
RESULTADOS"

Columna1 = 10
Columna2 = 11
Fila1 = 30
Fmedio = 0.01
Cells(29, Columna1).Value = "F asumido"
Cells(29, Columna1).Font.Bold = True
Cells(29, Columna1).Font.Color = RGB(255, 0, 0)
Cells(29, Columna2).Value = "F calculado"
Cells(29, Columna2).Font.Bold = True
Cells(29, Columna2).Font.Color = RGB(255, 0, 0)

El comando Else se realizará si la primera parte de If no se cumple es decir el valor del


numero de Reynolds es mayor que 2000 entonces el mismo texto se escribe en la
misma celda. Posteriormente con el comando MsgBox un cuadro de texto dice EL
NÚMERO DE REYNOLDS ES MAYOR QUE 2000 luego otro texto dice El cálculo
del factor de fricción se lo realizará por iteraciones .
Luego con las variables anteriormente declaradas para el uso de columnas y filas y las
variables Fasumido,Fmedio y Fcalculado se escribe el texto de F asumido en la celda
29,columna1 en color azul y en negrilla con el comando cells del mismo modo para el
texto de F calculado. El valor de Fmedio la cual es una variable de tipo numérica
empezará en un valor de 0.01.
Do
Cells(Fila1, Columna1).Value = Fmedio
Fasumido = Fmedio
Fcalculado = 1 / (((-2 * Log(Rugosidad / (3.7 * diametrom) + 2.51 / (Nreynolds *
(Fasumido ^ 0.5))))) ^ 2)
Fmedio = Fcalculado
MsgBox "EL FACTOR DE FRICCIÓN ES =" & Fcalculado, , "SALIDA DE
RESULTADOS"
If Abs(Fcalculado - Fasumido) > 0.0000001 Then
Fmedio = Fcalculado
Cells(Fila1, Columna2).Value = Fmedio
End If
Fila1 = Fila1 + 1
Loop Until Abs(Fcalculado - Fasumido) <= 0.0000001

MsgBox "EL FACTOR DE FRICCIÓN QUE SE UTILIZARÁ ES =" & Fcalculado,


, "SALIDA DE RESULTADOS"
Range("d23").Value = Fcalculado
Range("d23").Font.Bold = True
Range("d23").Font.Color = RGB(0, 255, 0)
Ffriccion = Fcalculado
End If
Con el comando Do se procede al cálculo del factor de fricción en donde se iguala el
valor de fmedio =fasumido luego con la fórmula estudiada en la cátedra de mecánica
de fluidos ll y con los datos obtenidos anteriormente se procede al cálculo del
fcalculado, luego se iguala el fmedio=fcalculado. Con el comando MsgBox el cual
muestra un cuadro de texto donde indica el valor calculado.Para las iteraciones se hace
uso del comando If en donde si la resta de los valores de fcalculado-fasumido es mayor
0.0000001 el fmedio es igual al fcalculado luego para se realice las iteraciones en un
orden lógico de filas se pone la ya declarada variable Fila1+1 .Luego otro cuadro de
texto indica cual es el valor encontrado y el cual se usa en los cálculos .En la celda D23
se introduce el valor del texto Fcalculado en negrilla y color azul.

Dim ingresolong, longitudm, longitudft As Double


Do
n = InputBox("Para ingresar el valor en" & Chr(13) & "METROS escriba M" &
Chr(13) & "PIES escriba ft ")
ingresolong = n
Loop Until (ingresolong = "m" Or ingresolong = "M" Or ingresolong = "FT" Or
ingresolong = "ft")

Range("f25").Value = "LA LONGITUD DE LA TUBERÍA EN PIES ES"


Range("f25").Font.Bold = True
Range("f25").Font.Color = RGB(0, 100, 200)
Range("a25").Value = "LA LONGITUD DE LA TUBERÍA EN METROS ES"
Range("a25").Font.Bold = True
Range("a25").Font.Color = RGB(0, 100, 200)

Se declara las variables de longitud de carácter numérico y con el comando Do y el


comando InputBox para que se muestre una ventana donde se ingresa si la longitud es
en metros o pies, luego con el comando Loop Until ayuda a que en el momento de
ingresar la letra con la cual se designa la longitud sea mayúscula o minúscula.
En la casilla F25 se escribe el texto “LA LONGITUD DE LA TUBERÍA EN PIES
ES” en color azul y con negrilla. Mientras que del mismo modo en la casilla A25 se
coloca el texto "LA LONGITUD DE LA TUBERÍA EN METROS ES"

If ingresolong = "M" Or ingresolong = "m" Then


longitudm = InputBox("Ingresar la longitud en" & Chr(13) & " METROS")
Range("d25").Value = longitudm
Range("d25").Font.Bold = True
Range("d25").Font.Color = RGB(0, 255, 0)
longitudft = longitudm * 3.28
MsgBox "La Longitud de la Tubería en Pies es =" & longitudft, , "SALIDA DE
RESULTADOS"
Range("j25").Value = longitudft
Range("j25").Font.Bold = True
Range("j25").Font.Color = RGB(0, 255, 0)
Se usa el comando if en donde si la inicial es m es decir el valor a ingresar es en metros
con el comando InputBox aparece una ventana de texto la cual indica que se ingrese el
valor. Posteriormente este valor de la variable longitudm se lo coloca en la casilla D25
en color verde y negrilla.
Con la variable longitudtf se realiza la conversión a pies en el cual el valor en metros se
lo multiplica por 3.28 , este valor encontrado se lo mira en una ventana de texto con la
ayuda del comando MsgBox y el valor es colocado en la casilla J25.

ElseIf ingresolong = "FT" Or ingrsolong = "ft" Then


longitudft = InputBox("Ingresar la longitud en" & Chr(13) & "PIES")
Range("j25").Value = longitudft
Range("j25").Font.Bold = True
Range("j25").Font.Color = RGB(0, 255, 0)
longitudm = longitudft / 3.28
MsgBox "La Longitud de la Tubería en Metros es =" & longitudm, , "SALIDA DE
RESULTADOS"
Range("d25").Value = longitudm
Range("d25").Font.Bold = True
Range("d25").Font.Color = RGB(0, 255, 0)
End If
Con el comando else if se cumple si en lugar del ingreso ser en metros lo es en pies en
donde con el comando InputBox igualmente se crea una ventana para el ingreso de
datos, posteriormente este valor es usado y con la conversión respectiva se obtiene en
metros .Luego con el comando MsgBox del mismo modo una ventana indica el valor en
metros del valor introducido.

‘VALOR DE LAS PÉRDIDAS


Dim Perdidasm, Perdidasft As Double
Range("a27").Value = "LAS PÉRDIDAS EN LA TUBERÍA EN METROS ES"
Range("a27").Font.Bold = True
Range("a27").Font.Color = RGB(0, 0, 255)
Perdidasm = Ffriccion * longitudm * velocidadmps ^ 2 / (2 * 9.8 * diametrom)
Range("d27").Value = Perdidasm
Range("d27").Font.Bold = True
Range("d27").Font.Color = RGB(0, 255, 0)
MsgBox "Las pérdidas en la tubería en METROS es=" & Perdidasm, , "SALIDA DE
RESULTADOS"
Range("a28").Value = "LAS PÉRDIDAS EN LA TUBERÍA EN PIES ES"
Range("a28").Font.Bold = True
Range("a28").Font.Color = RGB(0, 0, 255)
Perdidasft = Perdidasm * 3.28
Range("d28").Value = Perdidasft
Range("d28").Font.Bold = True
Range("d28").Font.Color = RGB(0, 255, 0)
MsgBox "Las pérdidas en la tubería en PIES es=" & Perdidasft, , "SALIDA DE
RESULTADOS"
Se calculan las pérdidas con la fórmula indicada y haciendo uso de los datos ya
obtenidos. En la casilla A27 se introduce el texto "LAS PÉRDIDAS EN LA
TUBERÍA EN METROS ES" en color azul y en negrilla. Con uso de la fórmula el
valor encontrado se introduce en la casilla D27.Luego con ayuda del comando MsgBox
una ventana emergente indica el valor encontrado.
En la casilla A28 se introduce el texto "LAS PÉRDIDAS EN LA TUBERÍA EN
PIES ES" en donde el valor encontrado anteriormente se lo multiplica por 3.28 y así se
obtiene el nuevo valor en pies. Del mismo modo se hace uso del comando MsgBox para
observar el valor en una ventana.
MsgBox "FIN DE LOS CÁLCULOS DE LAS PÉRDIDAS" & Chr(13) & "EN EL
MOVIMIENTO DE FLUIDOS EN LA TUBERÍA"
End Sub
Por último con el comando MsgBox se escribe el texto donde indica que los cálculos de
pérdidas en la tubería terminaron.

4.- CONCLUSIONES

 Se pudo crear satisfactoriamente el MACRO que permite realizar los


cálculos hidráulicos deseados, este MACRO sirve para la realización
de algún un proyecto referente a la transportación de crudo por una
tubería; puesto que con los cálculos realizados, el usuario tendrá la
posibilidad de ver cuáles son las características de la tubería, caudal
y temperatura del crudo; optima que generaren menos perdidas.
 Hay que tener en cuenta que las variables que se la defina con el
comando “As Double” solo son valores numéricos decimales, si se
desea ingresar un texto y números se define a las variables como
alfanuméricas, es decir, con el comando “As String”. Si no se toma en
cuenta esto, el MACRO realizara cálculos erróneos, puesto que toma
al texto como un valor numérico, o el MACRO se detendrá por la
confusión.
 El uso de los MACROS en el programa computacional Excel, hace que
una tarea sea repetitiva, lógica y más amigable con el usuario, como
en este caso se lo pudo comprobar. Además si en algún momento no
se conoce un comando se utiliza la función grabar macro, se realiza la
acción, se para la grabación y se copia en la ventana de Visual Basic
el código que se grabó; así implementamos dicho código a el macro
que se desea realizar.
 Previo a la realización del MACRO es necesario tener una idea del
proyecto ya finalizado. Así se optimiza la elaboración del MACRO y se
evita confusiones al momento de la escritura del mismo. Además luego
de acabar el MACRO se debe revisar parte por parte para ver si hay
comandos comunes o redundantes, es decir, observar si se puede
utilizar menos comandos en ciertas partes y así tener un MACRO de
menor tamaño pero con las mismas funciones.

5.- Recomendaciones
 Tener mucho cuidado al momento de transcribir en el MACRO las
ecuaciones obtenidas de la interpolación de la gráfica de viscosidades
en función de la temperatura. Puesto que es en este punto se cometen
los errores humanos los que pueden causar variaciones de los valores
calculados, dando viscosidades negativas o error.
 Revisar los valores de los factores de conversión de unidades y las
formulas empleadas, puesto que al momento de la escritura se puede
cometer errores que luego hacen obtener en el MACRO valores
totalmente erróneos.

6.-BIBLIOGRAFÍA

Caza, R. (S.f). Raymundo Caza. Obtenido de http://raymundoycaza.com/que-


es-excel/
Pascuas, A. (S.f). Todo Excel. Obtenido de http://todosobreexcel.blogspot.com/

También podría gustarte