Tutoriales - Ernesto De Hood

¡Hola Amigos, Amigas y Visitantes!..
Vaya al Contenido

Cómo usar Funciones UDF… Parte TRES de CINCO

Ernesto De Hood
Publicado de en Artículos de Capacitación · 7 Enero 2017
¿Podrías compartir esta Publicación?

Cómo usar Funciones UDF… En Celdas, Cuadros de Dialogo y Formularios.

PARTE TRES DE CINCO...

Esta TERCERA PARTE; la vamos a dedicar a MEJORAR el RENDIMIENTO y/o la Administración de la Memoria RAM de nuestro Equipo de Computo al tener que EJECUTAR en Tiempo REAL… las DOS Funciones Publicas, que hicimos en la Parte No. 2… Donde les integramos sus respectivos TEXTOS de AYUDA de las propias Funciones y sus Parámetros; que, como vemos a continuación… Luce MUY Profesional.

ESTO es lo que hemos obtenido en la Practica No. 2

¡Está MUY bien!.. Como el resultado de la PRACTICA No. 2, pero… En resumen; la creación de éstas DOS Funciones de calculo PUBLICAS, ¿es TODO lo que necesitamos; como Servicio de nuestras Funciones UDF? ¿Que pasa?.. Si queremos usar la misma FUNCIONALIDAD que nos permite MIcrosoft Excel; pero,¿en alguna OTRA Aplicación de Microsoft Office?.. O Bien; que, en el Mismo Microsoft Excel se EJECUTEN nuestras Funciones UDF, con un MEJOR RENDIMIENTO cuando se trata de Hojas de Trabajo MUY EXTENSAS Bien pues, vamos a hacerlo… Vamos a MODIFICAR su Estructura para lograr de ellas una MEJOR eficiencia y adaptabilidad.

Los enlaces (en AZUL) son los accesos directos a las Páginas de las Publicaciones ANTERIORES; en el orden que se hicieron, como el que sigue a continuación…

La publicación INICIAL que fue: Cómo usar Funciones UDF… En Celdas, Cuadros de Dialogo y Formulariosdonde, puedes ver TODO lo que vamos a hacer en nuestras PRACTICAS… Divididas en VARIAS PARTES numeradas…

Siguió la que fue: Cómo usar Funciones UDF… En Celdas, Parte No. 1 donde, puedes ver la preparación de TODO el Proyecto y UN VIDEO que te enseña el significado de los CERTIFICADOS DIGITALES PERSONALES y… Varios trucos que te serán necesarios en ésta parte No. 2

Seguimos con la que fue: Cómo usar Funciones UDF… En Celdas, Parte No. 2 donde, terminamos la construcción de las DOS Funciones UDF y les integramos sus TEXTOS de ayuda general como Función y al mismo tiempo con sus respectivos Parámetros y… Ahora, continuamos en ésta parte No. 3

El compromiso que… YO necesito de ti es… Que HAGAS la practicas, califiques mi trabajo y… si consideras que te SIRVE y obtienes NUEVOS conocimientos derivados de mi esfuerzo en SERVIRTE, entonces… En YouTube, suscríbete a mi Canal, porque mis Videos van a continuar pronto, visita mi Página personal de Videos, ingresa y hazte parte de los Grupos que yo administro y finalmente…
Dale clic a “Me gusta” en la Página de TD-Informática en Facebook, como UNA o UNO más de sus seguidores. Para que… AL FINAL de nuestras practicas… Puedas obtener el Libro de trabajo de Microsoft Excel que vamos a ir haciendo (por si algo no te funciono en el camino).

Y AHORA SI… Iniciamos nuestra TERCERA PRACTICA, de varias más.

Cómo usar Funciones UDF… En Celdas… Parte No. 3 en la que vamos a MODIFICAR las Estructuras de las Funciones PUBLICAS que hicimos en la Parte No. 2 y…

Lo primero que vamos a hacer es… Identificar las DIFERENCIAS en la Estructura de UNA FUNCIÓN de Calculo, en Microsoft Excel, Microsoft Word, Microsoft PowerPoint y/o en cualquier OTRA Aplicación de Microsoft Office, a la que le podamos ADAPTAR un Función UDF… Que DEBAS GENERAR; para que puedan ser usadas en modo PUBLICO, dentro de un Libro de Trabajo, un Complemento para Microsoft Excel o bien para cualquier otra de las antes descritas.

Es ese pequeño detalle acerca de los conceptos de “CALIDAD de SERVICIO” en la EJECUCION, RENDIMIENTO, ADAPTABILIDAD, etc. etc… Que nos debe proporcionar CADA UNA de nuestras Funciones UDF; es el “que hace” que la información ACUMULADA en EXTENSAS Hojas de trabajo; NO sea un problema de RENDIMIENTO y… Que al momento del calculo a ejecutar (en UNA o varias  CELDAS), te permitan obtener, UN resultado de forma inmediata.

Veamos lo siguiente y… Por supuesto; son las mismas Funciones, que a su vez hicimos en la Practica anterior con el fin de COMPARAR; lo que YA HICIMOS y el COMO, lo vamos a MODIFICAR ya que también… Van a requerir que, DENTRO de su secuencia de actividades o cálculos, cuenten con UN Rango de búsqueda para CADA UNA de la Funciones… Por lo cual; vamos a mostrar las DIFERENCIAS de su Estructura.

La Función: IsrQuincenal necesita que se busque UNA linea de Valores; dentro, del Rango: “ISRQuinc17”que YA debemos tener (lo hicimos en la Practica No. 2) en una Hoja de Trabajo del Libro y a su vez… Ahora lo podemos llamar desde la Función VBA.

En tu Libro YA, generaste ésta Tabla y le asignaste el Nombre de Rango “ISRQuinc17”

De ésta Tabla o Rango seleccionado; obtenemos TRES valores, UNO desde la PRIMERA Columna y también, los DOS de la parte derecha en la TERCERA y CUARTA Columnas… Porque se busca UN valorque se encuentre ENTRE los Limites; inferior y superior, por lo cual…

Fue MUY importante; el que lo hicieras, en el Libro de Trabajo que preparamos en la Parte No. 1 de ésta Serie de PRACTICAS; porque ahora y finalmente… Vas a poder Copiar y Pegar los DATOS del Rango, que aparecen en ésta Imagen… Para que; en la siguiente secuencia de nuestra Practica, traslades “TODOS los datos que vamos a necesitar del Rango” para efecto, de nuestra NUEVA forma de búsqueda e integración de Valores en la Memoria RAM… Porque vamos a usar de modo MUY DIFERENTE los valores del Rango “ISRQuinc17”.

La Función: SpeQuincenal también necesita que se busque UNA linea de Valores; dentro, del Rango: “SubsQuinc17” que YA debemos tener (porque también lo hicimos en la Practica No. 2) en una Hoja de Trabajo del Libro y a su vez… Ahora lo podemos llamar desde la Función VBA y… Por supuesto que NO necesitamos volver a explicar lo mismo, solo te muestro la imagen con el fin de que la ubiques y recuerdes, para puedas hacer las misma adaptaciones que a la Función IsrQuincenal que vimos antes.

También generaste esta Tabla y le asígnaste el Nombre de Rango “SubsQuinc17”

De ésta Tabla o Rango; solo se obtiene, UN valor de la parte derecha (Columna No. 3), al buscar UN valor que se encuentre ENTRE los Limites; inferior y superior, por lo cual… Igualmente NO es necesario repetir la explicación anterior al respecto.

Una vez que Tenemos éstas DOS Tablas y que les has dado una definición de DOS Nombres de Rango…Tenemos lo necesario para; MODIFICAR su forma de uso y estructura que… Nos va a permitir varios cambios de ejecución, rendimiento y ADAPTABILIDAD.

¡¡¡VAMOS a hacerlo!!!.. Establece los MEJORES MOMENTOS de esta Practica…

¡Claro que PUEDES HACERLO!.. Vas a MODIFICAR el código de la generación de Funciones en VBA que le dará una NUEVA vida a los procesos y procedimientos de ésta practica… ¡Vamos a continuar!.. Abriendo el Editor de VBA en Microsoft Excel.

Usa el Icono para ir al Editor de VBA o las Teclas: (Alt+F11)

Como es obvio que esto ya lo sabes hacer y… Recuerda que… El Código VBA que vamos a usar a continuación; es una fracción del código de mi Aplicación llamada: TDI-Fiscal que está protegida y debidamente REGISTRADA, ante Derechos de Autor en México…

Razón por la cual, y… Para que puedas usarlo en TUS propios libros de Trabajo… Es necesario que, en el Módulo que vas a hacer las Funciones, como tales (porque te sirven y las vas a usar), escribas el siguiente texto, acerca de mi Permiso de uso (En seguida o inmediatamente después de la declaración: “Option Explicit”).

TEXTO que debes integrar a las Funciones, para usarlas con mi permiso en la República Mexicana.

En el caso de que tu, seas de OTRO País y NO apliques estos cálculos de Impuestos y/o… Que solo necesitas hacer las practicas o bien… Adaptar mis Funciones a las Leyes aplicables de tu país, entonces NO necesitas, generar mi permiso de uso, porque mi Aplicación para Microsoft Excel, es especifica para la PROGRAMACIÓN en Visual Básic para Aplicaciones (VBA) en el ámbito FISCAL y con los cálculos específicos en mi País…

Solo te pido que hagas mención de Quien y de que publicación obtuviste esta información, para contar contigo y con tu referencia de agradecimiento, hacia mi Persona.

En México; solo se te permite su uso, de modo PERSONAL y privado, se prohíbe su integración en Aplicaciones de carácter COMERCIAL, en cualquier tipo de programación, que… Como destino se integre a Microsoft Office de cualquier versión (Derechos reservados desde 2004, REGISTRADAS en 2006 y actualizados en cada Año Vigente).

Después de lo anterior… Continuamos con la MODIFICACIÓN directa de las Funciones… La siguiente Declaración de Variables de tipo GLOBAL, dentro del Módulo donde se van a generar las Funciones NO CAMBIA… Con el objetivo de que dichas Variables puedan ser usadas e inicializadas dentro de cualquier Función o Procedimiento de Sub Rutina… Recuerda que, las Variables Globales se usan para ingresar Valores útiles en TODO el Módulo

Estas Declaraciones de Variables las escribiste en la Practica N. 2, al Principio del Módulo y… FUERA de cualquier Función o Procedimiento “Sub”

Ahora vamos a hacer la PRIMER MODIFICACIÓN de la Función con la ELIMINACIÓN de la Declaración de “Función PUBLICA” por la Declaración de “Función PRIVADA” para que su ejecución NO sea visible a otros Módulos VBA (en publicaciones siguientes te explico a detalle), también ELIMINAR la Variable “ISRQuin17” y mantenemos e inicializamos de las demás Variables en SALDO CERO

Esta FUERON las Variables ANTERIORES que se CAMBIARAN, en aCUERDO a la siguiente Imagen.

Como vemos en ésta NUEVA Imagen, ya se hicieron las modificaciones e inicia la NUEVA Función.

Esta ES la forma en que deben quedar las MODIFICACIONES a la Función (el Nombre es diferente para poder probar su rendimiento en diferentes calculos) y observa que las demás Variables ANTERIORES NO CAMBIARAN.

YA NO necesitamos guardar y administrar, los valores del RANGO en Memoria RAM (que hiciste en una Hoja de Trabajo en el Libro), esto es… En razón de que ahora NO tenemos la necesidad de obtener los datos desde UNA Hoja de Calculo y… Con ésto; hacemos que nuestra Función UDF, deje de depender de las Hojas de Trabajo de Microsoft Excel pero ADEMÁS; hacemos que nuestro código VBA sea más ADAPTABLE, para integrarlo en otras Aplicaciones de Microsoft Office (en la siguiente Practica vas a poder ver algo de esto) y lo mejor de todo, es… Que al no reservar en Memoria RAM, UN RANGO que podría ser MUY GRANDE, logramos hacer más EFICIENTE nuestra Función, utilizando MENOS RECURSOS del Equipo de Computo y…  

Mantenemos; la creación de las otras DOS variables de tipo LOCAL (que solo son visibles en ESA Función), para que… Finalmente, las inicializamos con un Saldo inicial de CERO y evitar que alguna Variable Global se quede con un Saldo, o bien sea el remanente de algún un calculo anterior.

A esta NUEVA Función le agregas que, SOLO se EJECUTA en un Periodo especifico de Días; por lo cual, nos aseguramos que el Usuario NO ingrese datos indebidos, aunque deseara hacerlo y la dejamos como estaba.

Si NO se ingresa un valor o el valor es SUPERIOR al Periodo de Calculo, automáticamente se establece la Base máxima aceptada.

Bien… Ahora; necesitamos, SUSTITUIR el envío de los Valores del Rango con la Tabla de las Tarifas del Impuesto Sobre la Renta (ISR) que hicimos ANTES a… La Memoria RAM; para que podamos hacer, la búsqueda de Datos administrados en modo directo… Por medio de UN Procedimiento “Sub” de Tipo “PRIVADO” y poder así ASIGNARLE los Valores a la Variables Globales.

Observa que, ésta operación la habiamos hecho con la Instrucción: “Set” que… Para exentar confusiones; el Nombre de la Variable LOCAL fue EL MISMO que el Nombre de Rango de la Hoja de Trabajo, pero…QUITANDO la Letra “c” minúscula, para que tú como programador establecieras SIMILITUDES, que te ayudarían a entender el código con el correr del tiempo.

Así lo hice en mi caso anteriormente, en el que genere la Tabla de las Tarifas en la Hoja de Trabajo: “TabIsr2014-17” pero que… En tu caso… Modificaste el nombre, para que fuera EL MISMO que tu le diste a TÚ Hoja de Trabajo… Y así escomo debe quedar nuestro Procedimiento que sustituye LO ANTERIOR… Esta dividido en TRES partes solo como explicación, pero tú debes escribirlo en modo continuo.

Como vemos en las NUEVAS Imágenes, se crea una NUEVA "Sub" rutina y así debes hacer las modificaciones.

Procedimiento (Parte No. 1) “Sub” de tipo PRIVADO que debes escribir al Final del Módulo donde escribiste las Funciones UDF, observa que; SOLO se recibe UN parámetro desde la llamada de búsqueda de datos e inicializa las Variables Globales en CEROS.

Continua escribiendo la rutina tal como sigue a continuación para generar la NUEVA tabla; ya que, con el Procedimiento (Parte No. 2 y 3) de la “Sub” terminados, integramos la búsqueda de Datos con la Instrucción “If y Elseif” para que el Parámetro recibido continué su búsqueda hasta cumplir con la ubicación del Valor requerido.

Parte No. 2

Parte No. 3

Como te explique en la Practica No. 2… En acuerdo a las Leyes fiscales mexicanas; los Impuestos sobre productos del Trabajo a pagar, se hacen en modo PROVISIONAL y en Periodos específicos, pero… Al mismo tiempo; también, deben ser calculados en modo PROPORCIONAL al numero de días REALES laborados… Por lo cual en nuestras Funciones; debemos, condicionar que… Por parte de del Usuario; no se ingresen datos incorrectos y así fue como hicimos nuestra Programación VBA.

También como te dije… Posteriormente, vas a entender el código de la Función completa, pero por ahora…Así es como la escribiste hasta ahora y ASÍ ES como le vas a hacer LOS NUEVOS CAMBIOS para poder usar nuestro Procedimiento “Sub”.


¡¡¡Observa el Parámetro; porque es lo ÚNICO que se va a AJUSTAR y usar!!!.. Porque la NUEVA asignación de Valores a las Variables Globales, ahora las hace el Procedimiento “Sub” el ejecutarse con el llamado “Call”

Sabemos que mediante la instrucción “If” generamos las condicionales necesarias; para que, solo SI SE CUMPLEN… Se genere el calculo; DENTRO del periodo de Días aceptables… De igual forma; también lo hacemos para poder calcular la Proporcionalidad CORRECTA de los Días laborados y… Que ahora también YA podemos BUSCAR los datos reales, en acuerdo a la verdadera proporción calculada pero…Ahora; en acuerdo a asignación AUTOMÁTICA de CADA UNA de las Variables GLOBALES.

Ya te comente que las Tarifas son especificas, para usarse en Periodos de 15 días, pero… También existen los periodos laborales de 15.2083 días y… Si NO se calcula la proporción correcta, el calculo NO sera el correcto, afectando los Ingresos del Trabajador.

Por eso y… Después de hacer lo anterior; en teoría, ya deberíamos tener todas las Variables GLOBALES con sus Valores, debidamente ASIGNADOS y… En razón de lo mismo; continuar con, las asignaciones de valores a las Variables LOCALES.

Así lo hiciste en la Practica anterior y hasta este punto, ¡Ya Tienes! la Primera de las DOS Funciones terminadas y… FUNCIONANDO pero…

Con los cambios que YA HICIMOS; es necesario que hagas las siguientes MODIFICACIONES FINALES.

¡¡¡Observa TODO el Código; porque, se están utilizando TODAS las Variables Globales y LOCALES!!!.. Y porque también se están AJUSTANDO proporcionalmente TODOS los Valores (con excepción de la Variable “PorCiento”) finalizando IGUAL que la Función anterior.

Como ya has notado; si efectivamente, hiciste todo el proceso de ésta PracticaAsí debe quedar tu NUEVA Función para calcular el ISR, dale clic para ver el detalle y recuerda que la "Sub" "TarifaQuin" debe estar escrita al Final o despues de la Función de ISR.


Y en razón de que… YA te explique COMPLETAMENTE; el funcionamiento, de la Primera Función… A continuación; te dejo como TAREA el escribir las modificaciones Al código COMPLETO de la SEGUNDA Función… De la cual; SOLO te muestro a continuación la Imágen de La NUEVA Función UDF y… A ti te corresponde hacer el Procedimiento “Sub” ya que como sabemos… No es necesario, ser redundantes con explicaciones adicionales al respecto.
Así la hiciste ANTES…


Así te debe quedar ahora…  

Para que funcione; debes generar el Procedimiento "Sub" "TarifasSPE" igual que hiciste la "TarifaQuin" que te dije que escribieras despues de la Funcion de ISR  
La Función: SpeQuincenal; es mucho más sencilla de hacer y de entender, por lo cual solo necesitas escribirla y/o… por medio de una Suscripción a con Asesoría, Soporte Técnico y de Capacitación Anual, que te da derecho al uso de varias Aplicaciones desarrolladas por mi y a los Archivos con codigo VBA mejorados para mi uso personal, con este enlace puedes hacerlo:


Puedes obtener TODO mi código mostrado y MEJORADO de mi uso personal, además de las Licencias que necesites de mi Programa:

Solo quedo en espera de tus amables comentarios… TODO lo demás que hiciste en la Practica anterior QUEDA IGUAL.

¿Que sigue?.. Pues claro que sigue… El ¡como llamar estas Funciones UDF Privadas! y cargarlos a memoria RAM para poder USARLOS en modo PUBLICO… ¡¡¡Sencillo!!!.. Solo crea estas DOS Funciones Publicas al principio de tu Módulo y en lugar de las que hiciste:

Las Funciones UDF Publicas ejecutan las Funciones Privadas y las envían a Memoria RAM y… Para que te funcionen, debes eliminar o RENOMBRAR las Funciones anteriores, porque NO deben estar duplicadas.

CONTINUARA el próximo SABADO 14 de ENERO de 2017….



sin comentarios
¿Deseas seguirme?.. Hazlo en:
Diseñado para:
Ernesto De Hood
desde
TD-Informática, S.A. De C.V.

Copyright © 2006 - 2019
~ Ernesto De Hood ~
todos los derechos Reservados.
¿Deseas seguirme?.. Hazlo en:
Copyright © 2006 - 2019
~ Ernesto De Hood ~
todos los derechos Reservados.
Regreso al contenido