Excel VBA and Macros - Chapter 31 - Creating Function procedures and UDF to use in formulas
Вставка
- Опубліковано 6 лют 2025
- ✅ Download the file | www.exceleinfo....
🏆 Subscribe | bit.ly/youtube...
📩 Tutorials in your email: www.exceleinfo....
💯 Purchase Office 365 safely in the Microsoft Store
microsoft.msaf...
In this tutorial we will see how to develop functions in VBA from scratch, both for use and in Excel cells. When the functions defined by the user are functions defined by the user.
We will see the difference between Sub Procedures and Function Procedures. In the previous chapter we saw how to pass the arguments (ByVal and ByRef) to a procedure, making them function similar to the functions, only that the functions are used to return single or matrix values.
More examples | www.exceleinfo.com
More examples | blogs.itpro.es/...
Facebook Page | / exceleinfo
Get notificacions on Telegram | t.me/EXCELeINFO
Twitter | @EXCELeINFO
Twitter | @SergioACamposH
Download EXCELeINFO addin:
addin.exceleinf...
#MsExcel #VBA
✅ Descarga el archivo de ejemplo | www.exceleinfo.com/curso-excel-vba-y-macros-cap-31-creando-funciones-y-udf-para-usar-en-formulas
🏆 Suscríbete a este canal | goo.gl/M5zNA8
📩 Recibe tutoriales en tu correo: www.exceleinfo.com/newsletter/
Es increíble la magia de las macros. Tantos años usando Excel y no descubrimos el tesoro escondido que están dentro de las mismas. Mi agradecimiento por ayudarnos a caminar y perfeccionar nos sobre el tema .
Llegué a este capítulo y me queda claro que es una gran forma de explicar el tema, y de aprender conceptos que tengan por principio la comprensión contra la inmediatez, gracias Sergio...... un abrazo
Me encanta el curso, disfruto a cada capítulo. En este, sólo un comentario que igual ya está más que comentado... La línea "If VBA.Asc(Valor) >= 48 And VBA.Asc(Valor)
Ya llegué al cap 29. Estaré practicando todos estos conceptos. Gracias Sergio. Espero poder culminar los mas de 100 videos. Gracias.
Gracias por todo tu esfuerzo Sergio, tu canal es sin duda uno sino el mejor de contenido para excel y vba. Gracias no tenemos como pagarte.
Gracias Luis. Me ayudarían mucho recomendando el canal.
Lo haré definitivamente. Recomendaré tu canal
Coincido. Excelente canal
👍
La verdad es que en cada video estás desmembrando los entresijos de este apasioanante entorno.
Excelente explicación
Sergio, excelente información, clara y oportuna, con tu curso he aprendido en poco tiempo a hacer macros que me hacen la vida más fácil.
Indudablemente una gran labor. Llevo muchos vídeos de vba vistos y este curso es de lo mejor. Claro, conciso y con una duración por capítulo adecuada. Muchas gracias.
De nuevo Gracias. Y aun sin acabar de empaparme de todos los videos, ya estoy deseoso de que tengas un curso similar de TypeScript 😇
Ufff... Estoy agradecido contigo por compartir este conocimiento con el mundo. ¡Maestro!
Hola sergio, Excelente y clara tu explicación, llevo mas de un año buscando lo que tu nos enseñaste en segundos. muchas gracias por compartir tus grandes conocimientos.
Excelente curso. Recién empecé a ver los videos y me han parecido muy buenos. Realmente son de mucho provecho y los veré todos. Saludos Sergio
Excelente clase, Sergio. Gracias.
Hola Sergio, llevo poco tiempo siguiendo tu canal ya que me interesa sobre todo el tema de programación en VBA Excel. Darte las gracias por los conocimientos que compartes y lo bien que explicas, de los canales que he visto sobre esta temática me atrevería a decir que es el mejor. Saludos
Gracias Charly.
Sergio gracias por tu tiempo.
Saludos desde España 🇪🇸
Gracias Sergio, excelente esta clase
Excelente. Curso.. Lo único que hice distinto fue: declarar Private Const Titulo = "EXCELeINFO" y declarar la variable Cuenta como Private, para que en el procedimiento ActivarA2, esté disponible la cantidad de hojas para el ciclo For que recorrer cada hoja desde la Sheet(2) y activar las celdas "A2" de cada hoja . Saludos.. Sigo avanzando.. Desde. San Antonio de Los Altos. Estado Miranda. Venezuela. (04/07/2020). Hora: 18:05
Buena tarde Alejandro, Por favor puedes dedicar unos de tus videos para que nos instruyas sobre como podemos hacer compatibles las macros de Excel en Office de 32 bits y 64 bits. Muchas gracias.
Es muy interesante cada vez mas tus cursos, gracias
Muchas gracis por el material Alejandro
Excelente video, muy claro el tema y sin duda un tema con mucho que aportar...
Saludos...
Gracias por comentar Alejandro.
Muy bueno, para asimilar este tema creo yo que deben de dominar el tema de las funciones de Excel, saber las que ya existen, para no volver a crearlas, a menos que sea con fines lúdicos, creo yo. Si hubiéramos de crear funciones, deberían ser, a mi criterio, funciones mejoradas, como en otro tema que manejas.
excelente clase, se entendio todo. Se gano un suscriptor :3
Gracias Manu.
Excelente Sergio , como siempre muy bien explicado !
sou brasileiro e reconhece seu talento e facilidade em ensinar, parabens acaba de ganhar mais 1 inscrito.
Gracias por el video Sergio, Saludos...
Qué buen video! Muchas gracias.
Gracias Omar.
Excelente 👍
Gracias Sergio, excelente expliación
Excelente. Muy claro. Gracias
Muchisimas gracias Sergio, pero tengo una peqena duda, el valor entregado por la macro es un numero, pero al reflejarlo en la hoja aparece como texto, como solucionamos eso??
Gracias por compartir!
Gracias Yupi?
Hola sergio, muy interesantes tus videos, para desarrollar lo que necesito en la utilización VBA y Macros. Pero tengo una duda, en unos de tus videos anteriores donde nos enseñas a desarrollar fórmulas en específico la de
sub FormulaRango (), si yo quisiera ocultar los valores para que no se muestre la fórmula, como aplico la formula valor, ya que con la indicación IFNA nos arroja el valor que queremos poner y he tratado de desarrollarla pero no eh tenido resultado.
Hola Sergio, buenos días. más o menos en el minuto 5:30 comentas que es importante que el resultado de la función debe de estar definido en la última línea de la función. yo difiero un poco de eso y me gustaría exponer mi comentario respetuosamente. Lo que debemos de tener siempre en mente, es que un procedimiento tipo function en lo que se diferencia de un procedimiento tipo sub es en que devuelven un valor( o matriz) y que cuando llega al final del procedimiento, siempre va a devolver el contenido de una variable llamada de la misma manera que el procedimiento, siendo así, lo importante es asignarle a la variable (llamada igual que el procedimiento) un valor, este puede estar al inicio del procedimiento function, tal vez muchos podrían pensar que no tiene sentido colocar esta instrucción al inicio, pero seguro alguna vez nos enfrentaremos a un situación parecida a esta
Function PRUEBAS(dato As Integer) As Boolean
PRUEBAS = True
If dato = 1 Then
'LINEAS DE CÓDIGO AQUI]
PRUEBAS = False
End If
End Function
Aca se el procedimiento function devolverá el valor de PRUEBAS según corresponda. Si el flujo de ejecución no entra al bloque IF-Then, el valor de prueba que se devolverá será TRUE, que como vemos esta al inicio del procedimiento.
Tienes razón en tu comentario Alfredo, no es obligatorio que el resultado de la función esté al final de la ejecución, sin embargo, y como bien comentas, no tiene mucho sentido hacerlo al inicio del procedimiento y luego evaluar, tal vez haya casos donde sea la única opción hacerlo así.
Para no confundir a los vistantes novatos, prefiero mostrar las funciones con una secuencia lógica y que el último paso del procedimiento sea asignar el valor a la variable. Así:
Function PRUEBAS(dato As Integer) As Boolean
If dato = 1 Then
'LINEAS DE CÓDIGO AQUI
PRUEBAS = False
Else
PRUEBAS = True
End If
End Function
Agradezco tu comentario y el aporte que haces al video. Tenlo por seguro que lo tomaré en cuenta.
Excelente
es importante poner al pricipio VBA (VBA.len)que seria lo peor que pudiera pasar o cual seria la diferencia?
hola buenos días, tengo el siguiente problema, de un listado de precios tengo cada producto con su código de barras, por cada ítem de articulo tengo en una sola celda referenciados mas de un código de barras digamos en "c6" tengo 6 códigos de barra separados por comas y apostrofes, cuando quiero utilizar, funciones como buscarv o indice y coincidir, me genera problemas ya que son funciones que quieren encontrar el valor único y exacto, quería saber si existe una forma de referenciar que busque mas de un valor por cada celda, no se si estoy expresándolo bien gracias
Sergio una consulta. ¿Cómo hago para incorporar una función en el libro personal de Excel? Lo he intentando pero no me funciona.
Excelente video, mas bien tengo la duda ,y si que talvez no tenga sentido porque se trata de valores pero igual quisiera tenerlo bien en claro, de que si hago una UDF q me devuelva el formato de color de una celda, segun el relleno que tenga otra, y que se acutalice conforme voy cambiando de color a la celda involucrada lo intente hacer y solo me sale #¡VALOR! , osea si uso la funcion en una celda es asi:
Function IGUAL_COLOR(CeldaReferencia As Range)
Dim ColorBuscado As Object
ColorBuscado = CeldaReferencia.Interior.color
IGUAL_COLOR = ColorBuscado
End Function
y mi duda es si una funcion solo devuelve valores numericos o strings, o puede devolver lo que quiero
Hay alguna forma en la que se pueda ejecutar un procedimiento ..usando una funcion,es decir le paso algunos parametros..estos se pasan a una llamada de procedimiento..y se ejecuta el procedimiento?..Quiero hacer eso,pero no me deja
Hola Master, una pregunta; si yo creo una funcion como en un libro y quiero ejecutarla en otro que se tuiene que hacer, porque ya lo intente pero en el otro libro no me aparece
Saludos Sergio
He visto varios comentarios con la misma duda y no he visto una respuesta al respecto. Como hago para que una UDF esté disponible en cualquier libro que se abra? La grabé en un módulo del libro de macros personales y no me funciona en otros libros que no sea el personal. Agradezco encarecidamente tu apoyo
Buena noche Sergio como haría para udf de sumar.si.conjunto
👍👍👍
Es excelente, pero en mi laptop no me permiti llamar a la función que e creado. Tengo que ingresar el nombre del módulo para que recién funcione. Esto es normal?
y que no puedes hacer udf con rangos como argumentos? 😒
Excelente!!!