Excel Avanzado

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

Excel Avanzado

Funciones definidas por el usuario (UDF)

Las funciones definidas por el usuario, conocidas también como UDF por sus siglas en Inglés (User Defined Functions)  permiten, por medio del uso de macros o código VBA, el contar con funciones similares a las que existen de forma predefinida en Excel.

La variedad de temas que se pueden abordar por medio de estas funciones es numerosa, si se esta comenzando a aprender el uso de este tipo de funciones convendría comenzar realizando rutinas pequeñas que favorezcan el aprendizaje del lenguaje,  a  continuación se presenta una relación de ejemplos de lo que se pueden realizar por medio de las funciones definidas por el usuario.

Cabe recordar que estas funciones pueden ser empleadas desde cualquier parte del proyecto, ya sean las hojas, ThisWorbook, módulos, y formularios, y si son empleadas desde las hojas la invocación se realiza de la misma forma que se procede para las funciones ya existentes como BuscarV, Concatenar, etc.

¿Cómo crear funciones en Excel? 

En ocasiones recibo la consulta ¿Cómo se hace una función en Excel?, ¿Qué es una función definida por el usuario?, ¿hay funciones personalizadas en Excel? 

En realidad crear una función en Excel es una tarea sencilla, en el siguiente artículo tienes el paso a paso de como crearlas: Crear funciones en Excel

Estas UDFs las podemos usar desde la celdas en una hoja en Excel, como también las podemos invocar desde cualquier macro. 

¿Cómo ver las funciones en Excel? 

Al momento encontrarnos en una celda podemos usar la opción "Insertar función", desde la que podemos acceder a la lista de funciones existentes, y la ayuda correspondiente a cada una de ellas.

Insertar función

Luego de ello, en la siguiente pantalla podemos seleccionar la "Categoría",  las "User Defined Functions" se encuentran en la  categoría "Definidas por el usuario"

como ver las funciones en Excel

 

Limitaciones de las UDF

Una UDF llamada desde una celda (en una hoja) no puede cambiar el entorno de Excel, esto incluye:

- Insertar, eliminar o dar formato a celdas

- Cambiar el valor de una celda distinta a aquella en la que se invoca a la UDF

- Mover, renombrar, eliminar o añadir hojas

- Cambiar cualquier configuración del entorno como activar o desactivar el cálculo automático 

 

Por ejemplo, si se llama a la UDF test desde una celda no funcionaría, pero si es invocada desde otra macro como test2, si funcionaría.

Function test()

Cells(2, 2).Interior.ColorIndex = 36

End Function

Sub test2()

MsgBox test

End Sub

 

Siguientes pasos 

Revise los siguientes ejemplos de UDF (funciones definidas por el usuario), en todos ellos encontrará muy diversos ejemplos de como aplicar estas funciones.

Si alguna de estas funciones definidas por el usuario contiene una mejora que usted considera conveniente o necesaria, por favor registre un comentario para que procedamos a revisar la publicación.

Si ya conoce algunas de estas funciones y desea revisar algunas UDFs con rangos de celdas, puede observar los ejemplos que se encuentran en https://www.excel-avanzado.com/udf-rangos-de-celdas

Conozca más acerca de este tipo de funciones mediante el artículo funciones personalizadas en Excel.

Ejemplos de funciones definidas por el usuario

Cada uno de los siguientes ejemplos tiene los códigos en Visual Basic para Aplicaciones, puedes reutilizar todos los que necesites.

  1. Duración de Macaulay en Excel
  2. Último día del mes en Excel (VBA)
  3. Identificar color de celda en Excel
  4. Provisiones Genéricas para créditos directos (SBS)
  5. Déficit de agua en Hipernatremia
  6. Tamaño mínimo de muestra para variables cualitativas
  7. Función para factorizar por fórmula general
  8. Cálculo de lote económico(EOQ) para gestión de inventarios
  9. Cálculo del Desplazamiento de un cuerpo en MRUV
  10. Función Periodo Promedio de Cobro
  11. Función cuota de Crédito Comercial
  12. Función de Consumo Intertemporal
  13. Función para obtener el precio de una acción a través del método de dividendos a perpetuidad
  14. UDF - Índice Herfindahl Hirschmann (IHH)
  15. Suma de n términos consecutivos de una progresión aritmética
  16. 5 Ejercicios de Funciones definidas por el usuario
  17. Ejemplos de funciones definidas por el usuario
  18. Contar el número de alumnos aprobados/desaprobados en un rango de celdas
  19. Problema de Maximización de Utilidad
  20. Calcular el monto de pago total por un préstamo (El principal)
  21. Distancia entre 2 puntos
  22. Punto de Equilibrio
  23. ¿Qué es el WACC?
  24. Categoría Deudor SBS
  25. Función Vida Optima de Explotación
  26. Indicador de grasa corporal, RCC e IMC.
  27. Hallando la distancia de dos puntos
  28. Deflactar una Base de Datos
  29. Cálculo de Integrales Inmediatas Definidas
  30. Valor en Riesgo (VaR)
  31. UDF: Cálculo de cuota por departamento para recibos compartidos
  32. Calcular propina
  33. Ingreso Estimado con descuento
  34. UDF - Índices de Rentabilidad
  35. UDF - Sacar nota de un curso
  36. Funciones definidas por el usuario
  37. UDF-Cálculo de Resistencia Equivalente
  38. UDF control de calidad IKEA
  39. Función para hallar el Promedio Ponderado del Costo del Capital (WACC)
  40. UDF Calorías necesarias según Harris-Benedict (mujeres)
  41. UDF- Prueba Defensiva (Ratio de Liquidez)
  42. UDF Tabla de Equivalencias para Repostería
  43. Precio de una acción
  44. UDF para la Calificación y Evaluación de Proveedores
  45. UDF Cálculo Volumen Reservorio
  46. UDF para hallar la cantidad de horas trabajadas
  47. UDF para el cálculo de los ratios de endeudamiento GAO, GAF y GAT
  48. UDF Aplicado para el Calculo de La Demanda Agregada
  49. UDF - cálculo de la Energía Potencial, Energía Cinética y Energía Mecánica
  50. UDF aplicado aun juego cotidiano: BINGO
  51. UDF Costos totales de un presupuesto de producción
  52. Cálculo de Impuesto de Renta 5ta Categoría
  53. UDF Descuento AFP
  54. UDF - Cálculo de Límites de control
  55. UDF aplicado a el principio de Arquímides
  56. UDF Aplicado al Flujo de Caja Libre y al Periodo de Recuperación de la Inversión
  57. Funcion Calculo de BETA (Aplicación a Finanzas)
  58. UDF aplicado al Costo Unitario Total
  59. UDF aplicado al Ratio de Sharpe
  60. UDF Ahorro anual proyectado
  61. Elasticidad de la Demanda
  62. UDF Conversiones de Temperatura
  63. UDF del cálculo de pronostico usando el método estacional multiplicativo
  64. UDF Funcion de Indice Masa Corporal
  65. Ejemplo de Ley de Biot-Savart
  66. UDF Aplicado al cálculo del Índice de Ruffier
  67. Función Porcuantotevas
  68. UDF para calcular el costo de la energía consumida por un aparato eléctrico.
  69. UDF aplicado al Cálculo de la Rentabilidad Real
  70. UDF aplicado a Cálculo de Ahorro en un Cuadro Comparativo de Precios
  71. UDF aplicado a obtener la Variación de Productividad de una empresa
  72. UDF aplicado al calculo de rentabilidad de un portafolio, modelo CAPM
  73. UDF aplicado al cálculo del Indice de Masa Corporal
  74. Suma de decibeles
  75. UDF Suma de valores en negrita
  76. UDF para calcular el Descuento de AFP
  77. UDF aplicado a los rangos de Retorno Esperado de una acción
  78. Cantidad de agua requerida, según peso, calorías consumidas y horas de actividad física.
  79. UDF aplicado al cálculo del lote económico de compra (EOQ)
  80. UDF: función del Indice de Riesgo Ambiental IRA
  81. UDF Función Tipo de Cambio Forward Venta (fwventa)
  82. Velocidad Final y Altura en MRUV en caida libre
  83. UDF-cuota leasing
  84. Ejemplo de Basic Earning Power ratio
  85. Extraer números VBA - Ejemplo con Tipo de cambio
  86. Cambiar de categoría de una UDF
  87. Ideas para concatenar celdas con VBA o Macros
  88. UDF aplicado a Cálculo de las Notas Curso Excel
  89. UDF aplicado a Calculo de la CTS
  90. UDF - Estado de Resultados para cuantificar la Utilidad Empresarial
  91. Cálculo Nitrógeno Amoniacal
  92. UDF Promedio de ventas
  93. Distancia entre los puntos
  94. UDF - Tipo de Obesidad según el IMC
  95. UDF Función Utilidad Retail
  96. UDF: determinación del tamaño de una muestra estadística
  97. Formulas para sacar promedio total y nota requerida
  98. Cantidad Económica de Pedido - modelo comercial de inventarios
  99. Función sumtotaldeQ
  100. Concatenar el contenido de un rango de celdas (mail recordatorio)
  101. Función Suma de Dígitos
  102. UDF – Presupuesto
  103. UDF sacar promedio del curso de Finanzas 1
  104. UDF para calcular el pedido de materiales en el mes
  105. UDF Nota Ponderada de Curso de Postgrado
  106. Función FRC/FCS
  107. Cálculo de Tasas Efectivas y Anualidades
  108. Cálculo del WACC en Excel
  109. Crecimiento promedio geométrico del PBI
  110. Función RandomNumber en VBA
  111. UDF aplicado al conteo de datos
  112. UDF para el cálculo del valor futuro según pagos con Gradiente Geométrico
  113. Punto de Equilibrio y Valor de Equilibrio
  114. Excel Avanzado UDF aplicado al cálculo de la cuota flat
  115. Excel Avanzado: UDF aplicado a determinar la variación de productividad
  116. Excel Avanzado: UDF aplicado al calculo del número de operarios en una planta
  117. UDF aplicado al cálculo de la diagonal de un poliedro
  118. Excel avanzado: UDF aplicado a valuación de inventarios
  119. Excel Avanzado: UDF para el cálculo de Productividad de una Agencia Bancaria
  120. Excel avanzado: UDF aplicado al cálculo del área de un círculo
  121. Excel Avanzado: UDF Aplicado a eleccion de Depositos a Plazo Fijo
  122. Calculando ahorros
  123. Excel Avanzado: UDF aplicado para el cálculo de variación de costo por eficiencia
  124. Excel Avanzado: UDF aplicado al cambio de una Tasa de Interés en Dólares a Soles
  125. Excel Avanzado: UDF para dar vuelto en soles a una venta en dólares
  126. UDF aplicado a la aprobación de un curso
  127. Excel Avanzado: UDF Número de cifras de un Decimal transformado en Binario
  128. Cálculo de tiempo de trabajo de un empleado
  129. Función Excel Avanzado: UDF aplicado al cálculo del sobregiro bancario
  130. UDF Aplicado al calculo del Rendimiento Esperado de una accion
  131. Uso de Macros En la Elaboracion de un Índice Bursátil
  132. Ejemplo de "For" aplicado al Cálculo del Factorial de un Número
  133. Ejemplo de UDF para el cálculo de la retracción de una factura.
  134. UDF aplicado a la evaluación de avance de un proyecto
  135. Excel Avanzado: UDF aplicado al cálculo del promedio de prácticas y promedio final.
  136. Ejemplo de función para el cálculo de la comisión ganada por ventas
  137. Funcion para calcular el tipo de cambio proyectado
  138. Ejemplo de función para el cálculo del porcentaje de merma ideal
  139. Función para el Cálculo del Test de Diferencias
  140. Calculo de función FORGEN (fórmula general)
  141. Función para calcular pago ventas
  142. Función para la Descomposición Factorial de un Número con recursividad
  143. Función para calcular el CRAEST
  144. Función para el Cálculo de la Hipotenusa de un Triángulo Rectángulo
  145. Excel Avanzado: UDF Aplicado al cálculo del índice de Lerner
  146. Ejemplo de UDF para valorar opciones Call con el modelo Black Scholes
  147. Ejemplo de UDF para el Cálculo de Pago de Impuesto a la Renta de Cuarta Categoría
  148. Ejmplo de UDF para Calcular el Tipo de Cambio Forward Teórico
  149. Ejemplo de UDF para calcular el Volumen de un cilindro
  150. Función Ingreso
  151. Función Consumo
  152. Función definida por el usuario: Par-Impar
  153. Función Discriminante de un Polinomio Cuadrático
  154. Función definida por el usuario: Área de un triangulo
  155. Función Calificación
  156. Función BeneficioCosto
  157. Función IMC

76 comentarios

  1. PROFESOR COMO CREAR UNA MACRO QUE ME CALCULE EL VALOR% DE MAS DE DOS VALORES Y ENCONTRAR EL PORCENTAJE QUE ESTA MAS BAJO EN LOS TRES AÑOS

    EJEMPLO ENCONTRAR EL VALOR PORCENTUAL D 2009,2010,2011 EN HURTO DE VEHICULOS

  2. Hola Federico
    Respecto a tu consulta, ingresé al ejemplo 27 - "Excel Avanzado: UDF aplicado al cálculo del promedio de prácticas y promedio final", y con base en ese ejemplo generé una UDF, la cual muestro a continuación:
    Function minimo(año1, año2, año3, año4)
    int1 = año1 / (año1 + año2 + año3 + año4)
    int2 = año2 / (año1 + año2 + año3 + año4)
    int3 = año3 / (año1 + año2 + año3 + año4)
    int4 = año4 / (año1 + año2 + año3 + año4)
    If int1 < int2 And int1 < int3 And int1 < int4 Then
    minimo = int1
    ElseIf int2 < int1 And int2 < int3 And int2 < int4 Then
    minimo = int2
    ElseIf int3 < int1 And int3 < int2 And int3 < int4 Then
    minimo = int3
    Else
    minimo = int4
    End If
    End Function
    Saludos
    Juan Jaén

  3. Hola

    He creado una UDF para determinar la variación porcentual de un dato con respecto de otro. Por ejemplo, deseo conocer el porcentaje de variación del consumo de papel del año 2012 con respecto del año anterio (2011).

    La fórmula sería la siguiente:

    Consumo Año 2011: 1500
    Consumo Año 2012: 2000
    Fórmula = ((2000*100)/1500)-100
    Resultado=33.33% -
    Interpretación: Hubo un incremento en el consumo de papel en un 33.33%
    (menos árboles en el mundo?)

    Bueno, aquí la UDF:

    Function var_porcentual(dato1, dato2)
    resultado = (dato2 * 100 / dato1) - 100
    var_porcentual = resultado
    End Function

    Es una UDF sencilla, pero considero que puede ser de vuestra utilidad...

    Quedo a la espera de comentarios...

    Buen día

    Saludos,
    Juan Jaén

  4. Molesto su atención para que me ayuden a resolver una inquietud que está referida a cómo puedo subir imagenes en este Blog.

    En mi caso y seguramente en el de muchos, es más fácil explicar situaciones, o el desarrollo de lo que hacemos o queremos hacer con la hoja de cálculo, a través de gráficos o imagenes (o copia de pantallas).

    Es por ello que acudo a ustedes a ver si me dan un alcance.

    Mil gracias

    Jorge Rojas.

  5. estima profesor estoy tratando aplicar la funcion buscarv y concatenar, para asignar el nombre a un rango, en una lista que crada con codigo nombre y apellido, a la hora de aplicar la funcion = BUSCARV (A6;ListaClientes;2;FALSO) me sale siempre #¿NUMERO? LE HE DADO TODAS LAS POSIBLES SOLUCIONES y corregido de muchas maneras la formula pero me sigue sliendo lo mismo no se si es que estas funciones no estan en mi equipos y no se como implementarlas, me seria de mucha ayuda ya que soy nuevo en el tema de exel gracias

    • Quisera explicar que al momento de utilizar nombres de tablas debemos de considerar los parametros de las funciones que queremos utilizar.

      En este caso la funcion buscarv solicita en su argumento de matriz, un rango de celdas en el que, el valor buscado debe estar contenido en la primer columna del rango seleccionado.

      Por tanto en este caso ese podria ser el problema.

  6. Hola amigos (as)

    He creado una UDF que permite calcular la muestra númerica a partir de parametros estadisticos el argumento es:

    function muestra (arg1,arg2,arg3,arg4)
    muestra=(arg1*arg1*arg2*arg3)/(arg4*arg4)
    Resultado=muestra
    end function

    Espero sus comentarios y criticas para mejorar.

    • José,
      Buenas noches,

      Podrías reducir el código a una sola línea, igualar resultado a muestra y no tendría sentido si puedes igualar directamente la operación.

      Saludos,
      Yajaira

  7. Necesito crear una función UDF que reciba dos parámetros:

    la hoja de excel y el rango de celdas. y pueda llamar la función:

    =copiar("Hoja2","A1:C10")

    Al reemplazar en forma UDF no me funciona...

    Código anterior de Excel:

    Sub Macro1()

    sheets("Hoja1").Select
    Range("D5:X30").Select
    Selection.Copy
    sheets("Hoja5").Select
    Range("A2").Select
    ActiveSheet.Paste

    End Function

    Código UDF personal:

    Public Function copiar(hoja As Worksheet, celdas As Excel.Range) As Variant

    sheets("Hoja1").Select
    Range("D5:X30").Select
    Selection.Copy
    sheets("Hoja5").Select
    Range("A2").Select
    ActiveSheet.Paste

    End Function

    Espero su ayuda, gracias!!

  8. Estimados:
    Bien, si se prueba el MsgBox y se pulsa el boton ayuda, salta la ayuda de office, esto me hace pensar que estoy haciendo algo mal y por eso no salta mi ayuda… necesito alguna respuesta:

    Sub MessageBox()
    MsgBox "El proceso tardará 5 minutos ¿Desea Continuar?", 3 + 256 + 16384, "Copia de Seguridad.", "C:\ejemplo.chm", 71
    End Sub

    • Estimado Richard:

      Creo que quieres hacer un MsgBox que alerte el tiempo que demorará el proceso y, además, guarde una copia de seguridad del documento. En ese caso te recomiendo utilizar el siguiente código:

      Sub Mensaje()

      respuesta = MsgBox("El proceso tardará 5 minutos ¿Desea Continuar?", vbYesNo, "Proceso")
      If respuesta = vbYes Then
      MsgBox "Se realizará una Copia de Seguridad."
      nbre = Format(Now, "dd-mm-yy hh mm ss")
      ruta = "C:\Users\PC\Documentos"
      ' No olvides que la ruta debe ser cambiada de acuerdo a donde quieres que se guarde la copia.
      ActiveWorkbook.SaveCopyAs ruta & "\" & nbre & ".xlsm"
      ' Agrega el codigo procedimiento que ibas a realizar.
      End If
      If respuesta = vbNo Then
      MsgBox "El proceso se ha cancelado."
      End If

      End Sub

      En caso quieras adicionar un documento de ayuda, aconsejo el siguiente código:

      Sub Mensaje()

      respuesta = MsgBox("El proceso tardará 5 minutos ¿Desea Continuar?", vbYesNoCancel, "Proceso")
      If respuesta = vbYes Then
      MsgBox "Se iniciará el proceso y se realizará una copia de seguridad."
      nbre = Format(Now, "dd-mm-yy hh mm ss")
      ruta = "C:\Users\PC\Documentos"
      ' No olvides que la ruta debe ser cambiada de acuerdo a donde quieres que se guarde la copia.
      ActiveWorkbook.SaveCopyAs ruta & "\" & nbre & ".xlsm"
      ' Agrega el procedimiento que ibas a realizar.
      End If
      If respuesta = vbNo Then
      respuesta = MsgBox("El proceso se ha cancelado ¿Necesita Ayuda?", vbYesNo, "Ayuda")
      If respuesta = vbYes Then
      With CreateObject("Word.Application")
      .Documents.Open "C:\Users\PC\Documentos\Ayuda.docx"
      ' No olvides que debes copiar la ubicación de tu documento.
      .Visible = True
      End With
      End If
      End If

      End Sub

      Espero que esta información te haya podido ayudar.

      Slds

      Manuel Dicción

  9. Pra llenar una base de datos hasta que punto es funcional usar un formulario?...

  10. Como dejo una UDF en Excel de manera que la pueda llamar desde cualquier otro archivo ...... Gracias por la atención

    • Luis,
      Para que una UDF esté disponible para cualquier archivo Excel, primero debes crear tu función y guardarla como "Complemento de Excel", se guardará por defecto en una ruta similar a esta de acuerdo a tu computadora:

      C:\Users\usuario\AppData\Roaming\Microsoft\Complementos

      Luego cierras, vas a otra hoja Excel nueva, ingresas a Archivo/Opciones/Complementos y das click en el botón inferior "Ir", te va a salir una ventana, das click en "Examinar" y aparecerá tu función guardada, la seleccionas y Aceptar.

      Con esto puedes verificar que en cualquier archivo Excel, en la categoría Definidas por el usuario, aparecerá tu función creada.

      Espero que te sirva.

      Saludos,
      Yajaira

  11. Las funciones definidas por el usuario nos permiten generalizar formulas que usamos a diario y que no se encuentran definidas en excel como los ejemplos que están en este blog. Dejo un código por el cual se puede calcular el área de cualquier polígono regular conociendo su semiperimetro y su apotema:

    Function area_poligonor(semiperimetro, apotema)
    resultado = semiperimetro * apotema
    area_poligonor = resultado
    End Function

  12. Profesor,

    ¿Como puedo verificar que una determinada UDF es más eficiente que la combinación de funciones predeterminadas?

    • Christian,
      Una UDF y la combinación de funciones deben realizar la misma acción que necesitamos hacer en Excel. Sin embargo, una UDF permite ahorrar tiempo, generar un código más sencillo y con una sola acción simplificar eso uso de varias funciones, más aún si éstas son repetitivas.

      Si verificas que la acción se realiza más rápido, con menos código y hace exactamente lo que necesitas, el uso de UDF es el adecuado.

      Saludos,

      Yajaira

  13. Como puedo actualizar el valor de una udf, ya que al copiar y pegar mi función creada a otras celdas, estas muestran el ultimo valor obtenido (el valor de la celda donde se copio)

    he intentado con F9, comandos como "application.volatile" o "Worksheets("nombre hoja").Calculatey" y no he podido resolverlo.

    este es mi función:

    Function hosp_capi(numpro As Double)

    Application.Volatile False

    Dim monto As Double
    Dim p As Double

    monto = 0
    p = 0

    For w = 0 To 5

    Select Case w
    Case 0
    p = 0.2
    Case 1
    p = 0.2
    Case 2
    p = 0.2
    Case 3
    p = 0.2
    Case 4
    p = 0.1
    Case 5
    p = 0.1
    End Select

    If ActiveCell.Offset(-2, -w) = "" Then
    hosp_capi = monto
    Exit Function
    Else:
    If ActiveCell.Offset(-2, -w) = 0 Then
    monto = monto + 0
    Else:
    monto = monto + ((ActiveCell.Offset(-2, -w) * p) * ActiveCell.Offset(-1, -w))
    End If
    End If

    Next

    hosp_capi = monto

    End Function

    Espero puedan ayudarme
    Saludos

    • olvide comentar que solo obtengo el valor que quiero pegando la formula celda por celda o bien yendo a cada celda donde he pegado la formula y dando F2

      • Tengo el mismo problema que tienes o tenías... me puedes decir como lo solucionaste???

    • Lograste solucionarlo?

  14. Hola como pudo usar varias UDF s ? es decir varias funciones como se concatenar

  15. He creado una UDF que me ayuda a calcular el valor futuro conociendo el capital inicial y la tasa efectiva, pero me gustaría crear una UDF que calcule desde la tasa nominal a una efectiva y que calcule también el tiempo.

    Function Vfuturo(C, ief, t)
    resultado = C * (1 + ief) ^ t
    Vfuturo = resultado
    End Function

    • Para calcular la tasa efectiva desde una tasa nominal anual, se debe conocer el periodo de capitalización, por ejemplo si tenemos una tasa de 12% nominal anual, y la capitalización es mensual, nuestra tasa efectiva será: 12%/12 =1% efectiva mensual, se debe conocer el número de periodos en un año, en este caso hay 12 periodos (meses) en un año, aquí el código en VBA:

      Function TasaEfectiva(TNA, num_per_año)

      TasaEfectiva = TNA / num_per_año

      End Function

  16. Hola, qué tal, quisiera saber si alguien me puede ayudar con lo siguiente: es que estoy tratando de hacer un Excel que me permita calcular las diferentes horas para liquidar una nomina, es decir, que al ingresar la hora de inicio del trabajador y la hora de salida, pueda obtener las horas ordinarias, las extras diurnas, extras nocturnas, dominicales... yo lo estuve tratando de hacer con funciones e incluyendo muchas columnas pero me salían unas funciones demasiado complejas que después no se entendían, y cuando creía que estaba listo, faltaba alguna cosa; mejor dicho se me volvió paquidérmico el proyecto. No sé si alguien lo ha hecho antes, pero sería un reto interesante. muchas gracias. por su colaboración. espero su pronta respuesta.

  17. La aplicación de esta herramienta me a ayudado a crear hojas de cálculo en excel para cálculos de funciones geométricas y poder hacer interactura a los alumnos con la matemática y el excel

  18. Hay UDFs muy interesantes.

    En las funciones propias de excel, al momento de usarlas, aparece un comentario de lo que hace la función. Asimismo, cuando se usa el boton de Insertar Función, en la pestaña de Fórmulas, aparecen comentarios para cada una de las variables de la función seleccionada.

    Mi pregunta es como se pueden poner comentarios en las UDF.
    Gracias.

    • Sergio,
      Para poder colocar comentarios en las UDF, basta con colocar el signo ' delante de tu comentario, éste cambiará a color verde y dejará de formar parte de la programación del mismo.

      Si deseas que un texto numeroso se convierta en comentario, activas la barra de Edición, seleccionas tu texto y haces click en el ícono "Bloque con comentarios"; para deshacer, haces click en el ícono "Bloque sin comentarios"

      Espero que te sirva.

      Saludos,
      Yajaira

    • Hola :),para poder insertar una descripción a las udf, debes abrir el cuadro de las macros y luego escribir el nombre de la función, notarás que el botón opciones se activa, dale clic y en la descripción escribes lo que la función hace .
      Saludos

  19. Quisera saber como puedo crear una macro porcentual que se de color verde cuando es positivo y rojo cuando es negativo.

    • hola 🙂 con esta función me salio, espero que te sirva

      Function porc(a, b)

      x = ((b - a) / a) * 100
      If x > 0 Then
      porc = x
      ActiveCell.Select
      With Selection.Font
      .ThemeColor = xlThemeColorAccent3
      .TintAndShade = -0.24997711111789
      End With
      End If
      If x < 0 Then
      porc = x
      ActiveCell.Select

      With Selection.Font
      .Color = -16776961
      .TintAndShade = 0
      End With
      End If
      End Function

      Saludos

    • Por cierto , el color lo saque utilizando el grabador de macro 🙂

    • Se podría prender el grabador y efectuar el cambio de color de texto mediante el formato condicional, luego revisas el codigo VBA, se tendrá algo parecido a esto:

      Sub Macro2()

      ' Macro2 Macro

      Cells.Select
      Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
      Formula1:="=11"
      Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
      With Selection.FormatConditions(1).Font
      .Color = -11489280
      .TintAndShade = 0
      End With
      Selection.FormatConditions(1).StopIfTrue = False
      Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
      Formula1:="=11"
      Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
      With Selection.FormatConditions(1).Font
      .Color = -16383844
      .TintAndShade = 0
      End With
      Selection.FormatConditions(1).StopIfTrue = False
      Range("A2").Select
      End Sub

  20. Quisiera saber como puedo crear una macro porcentual que se de color verde cuando es positivo y rojo cuando es negativo.

Página de comentarios 1 de 3
1 2 3

Deja una respuesta

Los campos requeridos estan marcados con *.