Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

UDF Conversiones de Temperatura

| 5 comentarios

La Temperatura es una propiedad de la materia que está relacionada con la distribución de la energía calorífica entre la materia de un cuerpo. Cuando dos cuerpos, que se encuentran a distinta temperatura, se ponen en contacto, se produce una transferencia de energía, en forma de calor, desde el cuerpo caliente (mayor temperatura) al frío (menor temperatura), esto ocurre hasta que las temperaturas de ambos cuerpos se igualan. En este sentido, la temperatura es un indicador de la dirección que toma la energía en su tránsito de unos cuerpos a otros.

Son muchas las propiedades fisicoquímicas de los materiales o las sustancias varían en función de la temperatura a la que se encuentren, como por ejemplo su estado (sólido, líquido, gaseoso, plasma), su volumen, la solubilidad, la presión de vapor, su color o la conductividad eléctrica. Así mismo es uno de los factores que influyen en la velocidad a la que tienen lugar las reacciones químicas. Estas son algunas de las razones por las cuales es necesario saber en qué unidades se está midiendo la temperatura y si es necesaria la conversión de estas, por ejemplo, para su correcto uso en las fórmulas químicas y/o para su comparación con valores de temperatura expresados en distintas unidades.

La temperatura se mide con termómetros, los cuales pueden ser calibrados de acuerdo a una multitud de escalas que dan lugar a unidades de medición de la temperatura. En el Sistema Internacional de Unidades, la unidad de temperatura es el kelvin (K). Sin embargo, fuera del ámbito científico el uso de otras escalas de temperatura es común. La escala más extendida es la escala Celsius, llamada «centígrada»; y, en mucha menor medida, y prácticamente sólo en los Estados Unidos, la escala Fahrenheit. También se usa a veces la escala Rankine (°R) que establece su punto de referencia en el mismo punto de la escala Kelvin, el cero absoluto, pero con un tamaño de grado igual al de la Fahrenheit, y es usada únicamente en Estados Unidos, y sólo en algunos campos de la ingeniería.

 

Las siguientes funciones permiten realizar la conversión entre las distintas unidades utilizadas para la medición de la temperatura (Kelvin, Celsius, Fahrenheit, Rankine).

1. Function convkelvin(gradkelvin, graddeseado) Esta función permite la conversión de las temperaturas que se encuentren expresadas en unidades Kelvin a cualquiera de las otras 3 tipos de unidades.

2. Function convcelsius(gradcelsius, graddeseado) Esta función permite la conversión de las temperaturas que se encuentren expresadas en unidades Celsius a cualquiera de las otras 3 tipos de unidades.

3. Function convfahrenheit(gradfahrenheit, graddeseado) Esta función permite la conversión de las temperaturas que se encuentren expresadas en unidades Fahrenheit a cualquiera de las otras 3 tipos de unidades.

4. Function convrankine(gradrankine, graddeseado) Esta función permite la conversión de las temperaturas que se encuentren expresadas en unidades Rankine a cualquiera de las otras 3 tipos de unidades. En la primera componente para todas estas funciones (ya sea gradkelvin, gradcelsius, gradfahrenheit, gradrankine) se deberá colocar el valor (magnitud) de la medida; mientras que en la segunda componente (graddeseado) se deberá indicar la unidad (grado) a la cual se quiere realizar la conversión. Para esta última se consideraron valores para identificar cada uno de las unidades de temperatura donde 1=Kelvin, 2=Celsius, 3=Fahrenheit y 4=Rankine.

 

UDF FUNCION DE TEMPERATURA

Por: Alejandro Martín Caycho Valverde

5 comentarios

  1. Por lo descrito, la función puede ser bastante útil. Pero tengo una duda, cuando descargué el archivo de ejemplo y revisé la función en el VBA, se observa el siguiente código al final de todas las funciones:

    MsgBox "Escoja el grado a convertir deseado entre los permitidos siendo 1(Kelvin), 2(Celsius), 3(Fahrenheit),4(Rankine)"

    ¿Se supone que al aplicar la función debería arrojar ese mensaje?, porque he hecho la prueba no muestra ningún mensaje con ese texto.

    • La funcion de MsgBox solo se ejecutara en el caso que el segundo argumento (graddeseado) sera un numero diferente a 1, 2, 3 y 4, pues estos son los unicos cuatro casos que tienen un proceso, si en caso fuera 5 o cualquier otro numero diferente a los cuatro casos mencionados arrojara el MsgBox pues es una señal de advertencia que se debe elegir solo 1 entre los 4 tipos de temperatura.
      Espero haberte ayudado, saludos.

  2. Interesante uso de la función pero no aparece el MsgBox al aplicar la udf.
    Saludos

  3. Muchachos, aquí les dejo el código mejroado: Es el anterior solo que:

    *Eh añadido un macro llamado INTRODUCCIÓN donde se le da unas pautas al usuario antes de utilizar las funciones.

    *También redefiní mejor el mensaje que se escribía en el MSGBOX, para su mejor comprensión.

    'Reemplazen el código anterior en el Visual basic, y peguen este de aquí.
    Sub introduccion()
    MsgBox "Para convertir los grados:: => Selecciona la celda dato; y la opción a convertir [ 1 - 2 - 3 - 4 ] Ejm: convGrado(B3;4)"
    End Sub
    Function convkelvin(gradkelvin, graddeseado)
    'El grado deseado puede ser 1 - 2 - 3 - 4
    Select Case graddeseado
    '1(Kelvin)
    Case 1
    convkelvin = gradkelvin
    '2(Celsius)
    Case 2
    convkelvin = gradkelvin - 273.15
    '3(Fahrenheit)
    Case 3
    convkelvin = 1.8 * gradkelvin - 459.67
    '4(Rankine)
    Case 4
    convkelvin = 1.8 * gradkelvin
    Case Else
    MsgBox "Error al ingresar opción del grado a convertir [ 1 - 2 - 3 - 4 ]"
    End Select
    End Function

    Function convcelsius(gradcelsius, graddeseado)
    Select Case graddeseado
    '1(Kelvin)
    Case 1
    convcelsius = gradcelsius + 273.15
    '2(Celsius)
    Case 2
    convcelsius = gradcelsius
    '3(Fahrenheit)
    Case 3
    convcelsius = 1.8 * gradcelsius + 32
    '4(Rankine)
    Case 4
    convcelsius = 1.8 * gradcelsius + 491.67
    Case Else
    MsgBox "Error al ingresar opción del grado a convertir [ 1 - 2 - 3 - 4 ]"
    End Select

    End Function

    Function convfahrenheit(gradfahrenheit, graddeseado)
    Select Case graddeseado
    '1(Kelvin)
    Case 1
    convfahrenheit = (5 / 9) * (gradfahrenheit + 459.67)
    '2(Celsius)
    Case 2
    convfahrenheit = (5 / 9) * (gradfahrenheit - 32)
    '3(Fahrenheit)
    Case 3
    convfahrenheit = gradfahrenheit
    '4(Rankine)
    Case 4
    convfahrenheit = gradfahrenheit + 459.67
    Case Else
    MsgBox "Error al ingresar opción del grado a convertir [ 1 - 2 - 3 - 4 ]"
    End Select

    End Function

    Function convrankine(gradrankine, graddeseado)
    Select Case graddeseado
    '1(Kelvin)
    Case 1
    convrankine = (5 / 9) * (gradrankine)
    '2(Celsius)
    Case 2
    convrankine = (5 / 9) * (gradrankine - 491.67)
    '3(Fahrenheit)
    Case 3
    convrankine = gradrankine - 459.67
    '4(Rankine)
    Case 4
    convrankine = gradrankine
    Case Else
    MsgBox "Error al ingresar opción del grado a convertir [ 1 - 2 - 3 - 4 ]"
    End Select

    End Function

  4. Estimado amigo saludos

    No conoce una forma de que su funcion trabaje como por ejemplo la funcion dias.lab.intl, es decir esta funcion tiene una lista desplegable con varias opciones que elegir, como podriamos hacer eso con su funcion de convercion quedaría perfecta de esa manera
    Saludos

Deja una respuesta

Los campos requeridos estan marcados con *.