Aprenda a crear un sistema de licencias seguro para su software de Excel [DESCARGA GRATUITA]

Aprenda a crear un sistema de licencias seguro para su software de Excel [DESCARGA GRATUITA]

hola, esto es randy con excel para trabajadores independientes y bienvenido al libro de trabajo de acceso limitado y esta semana le mostraré cómo puede crear su propio sistema de licencias completamente automatizado para cualquier libro de trabajo de excel cualquier cliente en todo el mundo simple y fácilmente va a será una capacitación increíble no puedo esperar así que comencemos bien muchas gracias por acompañarme tengo una aplicación realmente fantástica y muy solicitada esta semana el libro de trabajo de acceso limitado podrás crear tus propias aplicaciones de Excel como hemos estado enseñando y luego licenciar esas aplicaciones que vencen esas licencias crear licencias múltiples y poder agregar rápida y fácilmente este tipo de código de licencia y ventana emergente a cualquier aplicación, le mostraré cómo hacer todo eso y más agradezco que se quede con nosotros en estos entrenamientos espero que vea todo el entrenamiento hay toneladas de pepitas de información nueva en este entrenamiento así que asegúrese de ver todo el tra ining, aprecio que no pida mucho, de hecho, esta plantilla es absolutamente gratuita, todo lo que necesita hacer es hacer clic en los enlaces a continuación, ya sea con su correo electrónico o facebook messenger y se lo enviaremos, por supuesto, si te gusta esta capacitación y te gusta este contenido gratuito. Espero que lo aprecies y, por supuesto, nos apoyes de cualquier forma que puedas . Las mejores plantillas disponibles para usted a un precio muy bajo y también podemos incluir los libros de códigos en PDF opcionales que le brindan una manera increíble de ver el código y, por supuesto , puede resaltar el código, puede mirarlo, está codificado por colores, está perfectamente organizado. viene con una tabla de contenido y, por supuesto, tiene un gran índice, por lo que los libros de códigos en pdf son una excelente manera de aprender y eso viene con nuestro paquete de 200 libros de trabajo, así que espero que también lo aprendas con nuestra plataforma patreon otra gran manera i estare tomando tus ideas tus comentarios te r solicitudes de funciones y ponerlas todas las semanas en cada libro de trabajo, así que si tienes algunas ideas que quieres o tal vez quieres corregir o tal vez quieres que me concentre en un área específica, haré todo eso en nuestro plataforma patreon le daré los enlaces a continuación he creado tableros adicionales correos electrónicos de automatización toneladas de excelentes funciones se agregan a estas plantillas incluso después de la capacitación de youtube y eso va a suceder todo en nuestra plataforma patreon eso y mucho más como libros de códigos en pdf obtendrá acceso temprano acceso temprano a ofertas toneladas de grandes beneficios en nuestro patreon , está bien, comencemos con esta capacitación básicamente cuando creamos estas aplicaciones como lo hacen cada semana, queremos que sean seguras y un una excelente manera de hacerlo es con un sistema de licencias. Esta semana, le mostraré cómo crear su propio sistema de licencias que puede usar con cualquier libro de trabajo de forma totalmente gratuita. Es una excelente manera de hacerlo y, por supuesto, hay muchas funciones y abdominales abilidad y básicamente lo que queremos hacer es que queremos hacer algunas cosas diferentes que quiero crear para poder enviar a mis usuarios un número de licencia para que registren esa aplicación y luego que puedan usarla según la fecha de vencimiento tal vez esa fecha de caducidad va a ser de dos meses o tal vez va a ser de un año o tal vez nunca va a caducar tal vez no caduque bien así que hay muchas cosas que quiero hacer y quiero poder rastrear Clientes quiero saber si tienen cuántas aperturas han tenido si queremos hacer eso quiero saber el estado de la licencia si está pendiente si está registrada caducada o se ha eliminado quiero saber una dirección de correo electrónico Entonces, ¿ quién obtiene esas licencias y mucho más? Y esto realmente nos ayudará a hacer eso, por supuesto, cuando tengamos muchas licencias, es posible que deseemos filtrarlas para que podamos hacer eso aquí , simplemente agregaremos un filtro automatizado. allí y mucho más, así que es un gran entrenamiento y quiero que te quedes con Por supuesto, vamos a poder actualizar los datos de la licencia y eso significa que, cuando enviemos nuestras aplicaciones, quiero saber quién tiene licencia y quién no. Quiero saber esa información si hay una licencia que se haya agregado. o actualicé a mis clientes en cualquier parte del mundo si están licenciando mi aplicación, quiero saber eso y quiero que esa información vuelva automáticamente aquí y también, a veces, lo que hacemos es dar versiones gratuitas, ¿verdad? Podemos bloquear versión que es gratuita y queremos que puedan licenciar esa versión gratuita para que podamos hacer eso podemos dar una versión gratuita totalmente segura tal vez tenga una funcionalidad limitada y tal vez o tal vez solo queremos que esté activa durante 30 días para que pueda dar tu aplicación sabes completamente gratis cuando la activan cuando la registran solo está disponible por el tiempo que decidas si son 30 días o si es un mes sabes un año lo que sea o tal vez son solo 10 días podemos configurar eso Voy a mostrarle cómo hacerlo ahora para que después de ese período de tiempo la aplicación se bloquee hasta que actualicen o compren su versión real, por lo que hay muchos beneficios excelentes que vamos a repasar en esto y hay un También hay mucho espacio para el crecimiento, así que les daré muchas ideas sobre cosas que quizás deseen implementar, así que avancemos y repasemos la descripción general de esto. Esta es una aplicación relativamente simple. eso es a propósito, quiero que sea muy, muy simple, por lo que esta aplicación tiene dos partes, está esta parte que controla todas las licencias y luego está la segunda parte que implementarías dentro de una aplicación y te mostraré básicamente tiene una pantalla de inicio, por lo que cada aplicación que desee implementar esta licencia tendrá una pantalla de inicio y si registra la aplicación y está registrada y envía esos detalles, enviará esos detalles y si no está registrado d o no se registra, dirá que este registro ha caducado , compre o actualice uno nuevo y eso es exactamente lo que queremos, no queremos que esté permitido, sin embargo, en nuestra aplicación, qué podemos hacer, echemos un vistazo a esta barrera. Vemos que ha caducado en Sabes que va a caducar si guardamos esta licencia correctamente y caduco hoy. Sabes que en realidad es posible, así que está bien, estamos el 6 de mayo. Entonces, si guardo esta licencia y ahora esta licencia hasta 2020, obviamente, eso no va a funcionar bien para 2020. Así que actualicemos que todo lo que tengo que hacer es hacer un cambio en este año y se actualizará automáticamente hasta el 6 de mayo, así que ahora está en el futuro, así que si guardo esa licencia correctamente, ahora se registrará automáticamente en el extremo del cliente. Todo lo que necesita hacer, digamos que pagó por su licencia y actualizó esta información . así que ahora todo lo que necesitan hacer es simplemente g o y observe los números de licencia de la misma manera, todo lo que deben hacer es ingresar a su libro de trabajo, intente registrarlo nuevamente , pondrán su nombre en su registro y ya está aquí, envíe esos detalles , ahora se registrará automáticamente ha sido exitoso aviso registrado 6 de mayo hasta 2023 esta es la copia del cliente haga clic en ok el libro de trabajo se abre y todo está listo para funcionar esa es una excelente manera de hacerlo así es como lo haremos le mostraré cada uno paso, así que no se preocupe, obtendremos la bebida de su elección y comenzaremos de inmediato, por lo que básicamente, nuestro libro de trabajo de licencias, nuestro libro de trabajo de acceso limitado, controla todo correctamente, tenemos a todos nuestros clientes nuestro claves de licencia que podemos automatizar generar claves de licencia automatizadas tenemos un administrador muy pequeño y valores predeterminados cuando nuestros clientes o usuarios finales licencian esas aplicaciones o licencian si son las versiones gratuitas o registradas queremos que esa información venga i En algún lugar tenemos que poner una carpeta y queremos un documento de texto en el que la información vendrá en un documento txt y tenemos que explorar esta carpeta y tenemos que buscar cualquier cosa que vaya a entrar y vamos a tomar esa información y colóquela dentro de nuestra base de datos, por lo que necesitamos saber en qué carpeta se ubicarán nuestros datos, será una carpeta de Dropbox, debe compartirse, por lo que Dropbox es una excelente manera de intentar usar otras carpetas compartidas personalmente Prefiero Dropbox, es rápido, es fácil y funciona cada vez, también vamos a asignar algunos datos de licencia dinámicos para que pueda actualizar su licencia lo que quiera. Tenemos nuevos detalles predeterminados de licencia, por ejemplo, cuando crea una nueva licencia si creo licencia aquí quiero Es posible que desee algunos valores predeterminados Es posible que desee una aplicación predeterminada Es posible que desee algunos días de vencimiento predeterminados ¿Cuándo debería caducar y cuándo aspirará? Así que si creo una nueva licencia y tal vez creé un nombre de usuario como digamos teresa y quiero crear eso, todo lo que tengo que hacer es simplemente y simplemente guardar esa licencia, ahora se creó una licencia para Teresa, ahora podemos darle esta licencia a Teresa y su aplicación será válida por un solo mes y tan pronto como ella lo registra, pondrá la fecha de registro para que podamos hacerlo a partir de hoy o tal vez queramos registrarlo a partir de cuando ella lo registre correctamente, así que si lo hago desde el registro correcto, si decido que eso va a borrar la fecha de caducidad. se basará en cuándo ella realmente lo registra, así que si guardo esa licencia, se eliminará esa fecha de vencimiento, por lo que se basará en cada vez que lo registre para que podamos decidir cuándo vamos a ganar esa fecha de vencimiento si es desde el registro que no sabemos si caduca hasta que ella realmente se registra bien, así que tenemos eso, así que tenemos algunos valores predeterminados correctos para los nuevos valores predeterminados de licencia . expirando arreglaré eso debería estar expirando we wa no caducan esos valores predeterminados y vamos a configurarlo para que caduque y luego quiero que caduque la cantidad dentro de 30 días a partir de hoy, tal vez voy a poner desde la primera apertura o desde hoy, pero lo que realmente quiero, sigamos adelante y copiemos esto Realmente quiero estos dos. Voy a copiar esa validación de datos porque estaba haciendo algunas pruebas. Prefiero tener esto y luego vamos a pegar la validación, así que quiero que estos dos sean exactamente iguales a los que tenemos aquí. entonces será a partir de hoy o desde el registro, lo configuraremos para el registro y luego lo que quiero hacer es si hay una aplicación específica, ¿verdad? Podemos tener múltiples aplicaciones, tantas como quieras realmente y luego de esa manera podemos rastrear diferentes aplicaciones y también quiero saber la celda a la que está conectada correctamente la celda a la que está conectada podemos usar el mapeo de datos en eso, está bien, le mostraré cómo se hace eso si he completado eso si ¿No lo haremos juntos bien? Entonces, ¿qué vamos a hacer bien ? así que básicamente vamos a almacenar todo esto en una base de datos muy, muy simple aquí, así que son solo tres partes de esta aplicación. Tenemos nuestra clave de licencia, el estado, el nombre de usuario de la aplicación, el correo electrónico, la fecha de registro, si hay alguna, el tipo de licencia correcto. este tipo de licencia simplemente se basa en una opción aquí, por lo que el vencimiento sería uno que no caduca, serían dos que se almacenarán aquí mismo en este tipo de licencia, por lo que este grupo de opciones está conectado a b8, así que cuando cambiemos esto veremos eso va de uno o dos, así es como obtenemos este uno o dos aquí, así que si tuviera que cambiar si tuviera que crear algo, digamos, Barry, decidí que vamos a hacer que no caduque bien y vamos a guarde esa licencia, se convierte en dos en la base de datos de licencias, por lo que ahora vemos que barry se ha configurado en dos, por lo que no caduca , lo que significa que nunca caduca, tenemos cómo cuál es la frecuencia de la cantidad correcta un año 130 días lo que sea y entonces el tipo de frecuencia caducada allí meses, días, años o lo que sea , entonces tenemos el derecho desde hoy desde la fecha de registro o algunas otras cosas ns fecha de caducidad y luego el número de aperturas si quiero saber cuántas veces han abierto su aplicación podemos configurarlo aquí, eso nos ayudará si obtenemos algo que se ha usado en exceso que nos permitirá saber allí mismo, muy bien, así que vamos a tener eso junto con un filtrado o es posible que queramos filtrar ciertas cosas que solo queremos vea esas licencias activas, podemos borrar ese filtro o una fecha de registro específica si queremos saber, digamos más de 5 122, podemos hacer este tipo de filtros aquí, lo cual es realmente útil simplemente ingresando el formato de fecha adecuado va a filtrar automáticamente que podemos hacer lo mismo con el número abierto y luego el correo electrónico del usuario, por lo que tenemos un filtro genial que escucha relativamente simple . Entraré en eso y una base de datos con licencia que es todo lo que hay en cuanto a nuestra licencia ahora con nuestro cliente versión t, todo lo que tenemos aquí son más o menos algunas cosas. Tengo una pantalla de inicio aquí que querrás implementar, así que cuando te dé esta aplicación, lo que haré es darte esta aplicación aquí, pero voy a incluir esta pantalla de inicio aquí, todo lo que necesita hacer, de hecho, déjeme hacerlo ahora, así que lo que quiero hacer es asegurarme de que obtenga todo, así que todo lo que necesito hacer es solo ir a la pantalla de inicio, lo siento, está fuera de la pantalla, voy a copiar o duplicar la hoja, lo moveré aquí para que pueda verlo bien, así que lo que voy a hacer es Voy a mover esto aquí arriba y luego voy a hacer clic con el botón derecho . Voy a mover o copiar eso y luego lo que quiero hacer es copiarlo directamente en el libro de trabajo disponible para usted, así que voy a hacer un libro de trabajo de acceso limitado y quiero moverlo al final y solo voy a crear una copia aquí que va a crear esa copia, así que ahora tenemos la pantalla de inicio, querrás t para personalizar esto, obviamente, no sería, solo pongamos el nombre de su libro de trabajo o lo que sea que pueda ser su pantalla de inicio, lo que sea, sabe lo que quiera que sea, coloque un logotipo aquí, haga clic aquí y arrastre esta hoja en su aplicación y también lo que quiere hacer es asegurarse de arrastrar, por supuesto, crear esa ventana emergente para que esta ventana emergente ahora también tenga una ventana emergente, como notó, aquí está el código Le mostraremos eso en un segundo, así que dentro de nuestro administrador de almacén, tengo una pequeña ventana emergente, esta ventana emergente en particular, este formulario de usuario es muy simple, tiene una clave de licencia, podemos tener un nuevo registro o tenemos una clave de licencia. así que vamos a tener que si se trata de un nuevo registro, se puede generar automáticamente una clave de licencia, lo cual es muy útil y les mostraré cómo hacerlo bien, así que comencemos para que todo lo que tengamos dentro de nuestra aplicación de cliente sea una pantalla de inicio tenemos información aquí en columnas y b desea asegurarse de que estén ocultos y ubicados ked bien, no puede dar acceso al usuario ocultar esos bloquear la hoja de trabajo proteger la hoja de trabajo debajo de la revisión aquí asegurarse de que protejamos la hoja para que tengamos eso y, por supuesto, con una contraseña de esa manera no podrán acceder cualquier información en las columnas y estar donde está nuestra información de licencia, así que digamos que va a lanzar su aplicación, por supuesto, no tendrá ninguna información de usuario en ella, no tendrá ninguna apertura allí, así que lanzará es algo así como y no hay clave de licencia, está bien, así que todo se borrará, podría hacer un estado, hagamos su estado pendiente, está bien, así que es posible que desee liberarlo en esta condición, darle un estado y darle un nombre de aplicación, eso es así. el usuario no verá eso, por supuesto, estará oculto y bloqueado, por lo que verá esta pantalla, simplemente irá a registrar su aplicación y, por supuesto, será un nuevo derecho, quizás aún no tenga una licencia les das una versión gratuita y no la tienen, así que y quiero hacer un nuevo registro, va a firmar una licencia automática para ellos, le darán su propio nombre, así que jodamos a jim johnson johnson y pondrán su correo electrónico y de esta manera pueden registrar automáticamente su versión gratuita en digamos jim james gmail.com, está bien, estamos listos para continuar con el correo electrónico y enviaremos esos detalles, esto nos permite crear una versión gratuita, una versión gratuita de acceso limitado si queremos vamos a enviar esos detalles va a registrar automáticamente esa aplicación su aplicación se ha registrado con éxito hasta el 5 de junio les va a dar 30 días puede preestablecer que por cualquier cantidad de tiempo su registro ahora se incluye automáticamente así que ahora esta aplicación está abierto está listo para funcionar durante los próximos 30 días si echamos un vistazo dentro de nuestro propio libro de trabajo ahora esto es aquí está nuestra solicitud de licencia y ahora lo que vamos a hacer es entrar y estamos va a actualizar los datos de la licencia y vemos que tenemos dos licencias que han sido actualizadas o añadidas y vemos esa nueva jim johnson aquí la que acabamos de crear es automáticamente sabemos que la han registrado tienen un mes tienen una abierta y todo viene automáticamente en nuestra aplicación muy fácilmente para que sepamos que acaban de registrarla sabemos que han dado 30 días y luego tal vez podamos enviarles un correo electrónico en 30 días diciendo hey si te gusta tu aplicación tal vez quieras comprarla y si lo hacemos, dicen que sí, sí, realmente lo hacen, pagan por ello, podemos hacer dos cosas: podemos crear una nueva licencia para ellos con una nueva fecha de vencimiento o podemos tomar su licencia existente y podemos restablecerla automáticamente a digamos que tal vez queremos darles un año o tal vez no va a caducar , simplemente podemos guardarlo y automáticamente al final de los 30 días podrán registrar su aplicación automáticamente incluso usando el mismo número de licencia Genial, entonces eres un pariente. d de tener una idea de esto y lo que haremos es asegurarme dentro de este libro de trabajo de acceso limitado que también obtenga este formulario de usuario aquí que vio ese formulario de usuario nuevamente en la pantalla de inicio aquí y ese es este aquí De acuerdo, eso estará disponible para usted en el libro de trabajo y en la pantalla de inicio, tomará este formulario de usuario y tomará esta pantalla de inicio y la colocará en cualquier libro de trabajo junto con un poco de código. vamos a hacer que esto suceda, bueno, eso será a través de vba, por supuesto, un poco de vba y solo unas pocas líneas de código, sami, vamos a continuar, así que lo primero que quiero hacer es poder crear nueva licencia guardar licencia eliminar licencia o quiero actualizar los datos de la licencia parpadeando los datos de la licencia lo que va a hacer es cualquiera de nuestros usuarios que hayan realizado cambios en su licencia, ya sea que se hayan registrado , ya sea que haya expirado o algo así va a ingrese a nuestra aplicación automáticamente , de acuerdo, para que entendamos que hemos Obtuvimos los valores predeterminados de administración. Esto es relativamente simple . Tenemos una base de datos. Tenemos una pantalla de inicio . bien , lo primero que quiero hacer es mostrarles cómo vamos a crear esta pantalla y cómo vamos a obtener esa capacidad, solo unas pocas macros para hacer eso. a través de vba que vio brevemente alt f11 o el desarrollador y luego, por supuesto, visual basic lo llevará allí a primera hora. Tengo algunos módulos diferentes, como puede ver, tengo algunos dos libros de trabajo diferentes abiertos. Tengo el administrador del almacén. aquí abierto y también tengo nuestro libro de trabajo de acceso limitado abierto aquí, así que tenemos estos dos libros de trabajo abiertos, ahora nos vamos a centrar en nuestro libro de trabajo de acceso limitado y tenemos algunos módulos que tengo módulos de aplicación tengo macros de licencia y esta macro de registro de usuario esos son los tres módulos que w Vamos a repasar las macros de licencia, en eso nos vamos a centrar primero, estas son las que crean una nueva licencia y vamos a trabajar en eso, como notará cuando creamos una nueva licencia, vamos a establecer algunos valores predeterminados y vamos a implementar eso y continuaré y les mostraré cómo se hace eso, lo primero que quiero hacer es mostrarles algunas variables que tenemos la fila de la licencia necesitamos saber qué fila de la base de datos la columna vamos a usar el mapeo de datos en esa columna y básicamente lo que eso significa es que vamos a mapear estas celdas particulares aquí e4 con el nombre de usuario que vamos a imaginar k4 con el estado y quiero que se asignen a sus columnas individuales, observe aquí el nombre de usuario e4 a la derecha este estado aquí k4, así que estamos mapeando esto en la fila uno que nos ayudará a hacer rápidamente dos cosas, una nos ayudará a guardar los datos en esta tabla y también lo ayudará a cargar rápidamente los datos una vez que un usuario haga clic en una licencia seleccionada o usuario, esa información se va a cargar en la tabla de arriba, está bien, así es como lo haremos ahora, tenemos una columna oculta aquí que tenemos, solo quiero saber si la licencia se está cargando cuando la cargamos. para ir rápidamente a verdadero y volver a falso , tenemos una identificación seleccionada. Quiero saber cuál es la identificación de la licencia. Tengo una fila de la base de datos. Quiero saber qué fila asociada a la fila de la base de datos a la que está asociada esta licencia en particular . lección, así que sé que esta en particular para fred fretters está pendiente y es para el administrador de contactos, así que quiero saber qué fila es la licencia que termina en nueve seis cero siete tres, así que quiero saber que está en la fila cuatro para que podamos ver nueve seis cero siete y está en la fila 4. Para hacer eso, vamos a comenzar con el rango con nombre, un rango de nombre dinámico llamado clave de licencia, así que si vamos al administrador de nombres de fórmulas y vemos que tenemos una clave de licencia usando el desplazamiento y básicamente vamos a utilizar el desplazamiento de la fila del encabezado, vamos a ir una fila hacia abajo porque queremos excluir la fila del encabezado que es importante porque cuando no tenemos datos podría crear un error, por lo que siempre queremos incluir la fila del encabezado pero excluirla en el conteo entonces simplemente contaremos todas las filas, incluida la fila del encabezado, y luego restaremos una que es un rango con nombre dinámico compensado que abarcará todas las claves de licencia, así que lo que quiero hacer es averiguar qué fila se basa en el licencia seleccionada, así que cuando miro a los usuarios con licencia y veo que vamos a envolverlo si el aire está haciendo coincidir la clave de licencia en b3 y estamos buscando en la clave de licencia y luego, cuando se encuentra, vamos a simplemente agregue 3 a eso porque si se encuentra, devolverá 1, pero quiero que devuelva 4 porque quiero ese número de la fila 4, la razón de esto es porque nuestro primero comienza en la fila 4. Si me has estado siguiendo entiendo que quiero un ikea nuevo, esto es nuevo, ¿cómo lo creo? una nueva clave de licencia automatizada, bueno, la mejor manera de hacerlo es usar rand between podemos usar rand between primero vamos a comenzar con rand between y quiero comenzar con entre 0 y este número realmente grande aquí y entonces quiero ocho caracteres de eso y luego la razón es que una vez que tengo aquí este rand entre aquí, entonces lo que quiero hacer es determinar si quiero las cubiertas quiero el texto decimal a hexadecimal dec 2x y eso va a crear un cadena alfanumérica que puede cerrar tanto números como letras y uno aleatorio que nos ayudará a crear una clave de licencia única usando dec a hexadecimal, está bien envolviendo eso alrededor de rand between esto crea el número aleatorio esto crea una cadena automatizada de decimal a hexadecimal aquí así que que cada vez note que cambia cada vez , lo cual está bien cada vez que la hoja de trabajo calcula que cambia y eso es exactamente lo que quiero, así que lo que vamos a hacer es cuando tengamos una nueva clave de licencia, tomaremos lo que sea si vamos a colocarlo directamente en el lado b3 b3 es donde se colocará tenemos un enlace aquí esto está vinculado a b3 por lo que esto es simplemente para mostrar solo lo que esté en b3 cuando guardamos ese nuevo número de licencia es eso nuevo número de licencia que se guardará automáticamente en la base de datos, así que lo generaremos usando esta fórmula y cuando selecciono una fila específica, quiero saber qué fila seleccionada aquí, observe que nuestro formato condicional se activa automáticamente y se basa en lo que sea que esté en b6, así que si resalto que vamos a ver tres formatos condicionales diferentes, entonces cuando administre esas reglas, veremos que dos de ellas se ocuparán de los números de fila pares o impares y uno se basará en la fila seleccionada, las filas seleccionadas se basarán en b6 y simplemente le daremos ese fondo verde oscuro con una fuente blanca en negrita, entonces lo que quiero hacer es resaltar filas pero solo filas con datos y entonces hay dos cond iones una columna d debe contener datos y dos debe ser para filas impares, por lo que para esas filas impares voy a colorearlo de verde claro y darle un borde claro para filas pares, incluso cuando el mod de la fila 2 es igual a cero, esos son pares filas, le daré ese fondo blanco y simplemente le daré el borde verde y así es como obtenemos esa fila alterna automáticamente tan pronto como agreguemos datos aquí, solo crearemos eso automáticamente, muy, muy simplemente basado en la columna d está bien, así que ese es el formato condicional, así que también tenemos el tipo de licencia ahora, les mostré esto antes si vence y no vence, así que tenemos esos dos y también he usado algunos cuadros de texto aquí, así que si tomamos un mire que vemos que nuestra opción aquí no tiene texto y eso es porque quería crear algunos cuadros de texto para poder obtener el tamaño de fuente correcto, así que lo hice y creé un grupo de opciones aquí y si hacemos clic derecho aquí formateamos el control y vemos que básicamente está ligado a b8 b8 va a e ya sea 1 o 2 en función de ese tipo de licencia sin vencimiento o con vencimiento ahora echamos un vistazo, tengo algún formato condicional aquí, observe que cuando dice nunca caduca o caduca correctamente, entonces tenemos una diferencia de no caducar, así que yo Tengo una pequeña fórmula aquí en h8 y eso se basará en lo que sea que esté en ba , ya sea 1 o 2. Si es 1, sabemos que va a caducar, así que dirá que caduca en, sin embargo , si no es 1, entonces significa 2 se llamará nunca caducado, así que es solo una fórmula basada en lo que hay aquí y tengo un formato condicional aquí que también se basará en el mismo b8, así que si manejamos las reglas allí, vemos que tenemos tengo dos reglas correctas, así que en la primera vamos a decir si b8 es igual a 2, le daremos este fondo verde si b8 es igual a dos, también esta, voy a eliminar algunos de esos bordes, así que si tomamos un mire dentro de los bordes aquí baje esto echando un vistazo dentro del tablero ya que vemos que el borde izquierdo y derecho Se eliminaron los ders en eso y se borraron y eso será solo para que no tengamos ningún borde cuando va a ser una cosa sólida; sin embargo, si hacemos clic en expirar, vemos que tenemos dos bordes aquí, así que eso es todo lo que tenemos que hacer para eso es genial, así que volvamos a eso, así que comencemos con nuestra primera macro, que es una nueva licencia, una nueva licencia, lo que quiero hacer es asegurarme de que creamos automáticamente aquí estos valores predeterminados en particular. cierto, quiero el valor predeterminado basado en ese aviso, tenemos el valor predeterminado que dice administrador de contacto, si cambio esto a administrador de empleados y hago clic en nueva licencia, esto cambiará automáticamente a empleados, por lo que estos valores predeterminados se basarán en eso y vamos a hacer eso a través de una sola macro , lo primero que haremos dentro de esta macro que está vinculada a ese botón, necesitamos saber la fila predeterminada siempre y luego nos centraremos en la licencia que estamos simplemente va a borrar el contenido de todos los c Ells y ahora lo que quiero hacer es establecer algunos valores predeterminados y tengo que corregir este valor predeterminado probablemente porque eso no es realmente así que lo primero que quiero hacer es ir de 7 a 12 7 a 12. esas son las filas esas son todas las predeterminadas y quiero básicamente dentro de k4 quiero poner pendiente dentro de b7 quiero poner caducando y esta dentro de esto y esto así que eso es básicamente en eso así que en realidad b7 este tengo que cambiar un poco , así que ese es el único si sabes que el tipo de caducidad b7 está a punto de caducar y luego lo que quiero hacer es asegurarme de que esté configurado aquí en uno excelente, porque de esa manera todavía no funciona, así que si es Sin vencimiento, lo hará en un momento, aunque si se trata de un aviso de licencia sin vencimiento, los usuarios correctos si supiera que la nueva licencia no cambia, debería cambiar la de no vencimiento, así que haremos eso ahora mismo. Todo lo que tenemos que hacer. es solo hacerlo si es igual a no caducar, simplemente cambie esto a uno o dos, así que hagámoslo, así que todo lo que vamos a hacer es simplemente recorrer esas reglas y si hay algún problema, simplemente continuaremos y reanudaremos a continuación, así que lo que haremos es tomar f y el valor de fila predeterminado, este es el rango de los rangos en la columna f de la pantalla de administración y la fila predeterminada a la derecha si echamos un vistazo a la columna f f contiene nuestras celdas k4 b7 b8 estas son todas las celdas donde queremos colocar estas fechas, por lo que vamos a hacer un bucle simplemente del 7 al 12 eso y luego también vamos a colocar lo que estamos colocando en esa celda, vamos a colocar lo que esté en la ubicación e esa columna e y la fila predeterminada, así que colocaremos lo que sea que esté aquí, por último, todo lo que necesitamos hacer es solo lo primero es si esto no está aspirando cambiar esto a 2 si está expirando cambiar esto a 1. así que eso es todo lo que tenemos que hacer en la última línea así que sigamos y hagámoslo ahora mismo así que si el rango de estrellas b7 ese valor es igual y luego no hagamos que no caduque, entonces el rango de puntos b8 es igual a dos, de lo contrario, es igual a uno, es igual a dos, está bien, así que solo vamos g para copiar esto y luego cambiarlo a uno debajo de else right, de lo contrario, d7 es igual a uno, está bien, eso debería ser suficiente, sigamos y echemos un vistazo a eso y luego haremos una nueva licencia y veremos que cambia a sin caducar bien, volveremos a cambiar los valores predeterminados aquí ahora vamos a cambiarlo para que caduque y lo dejaremos en ese caducar y luego volveremos a la nueva licencia y volveremos a cambiar caducando perfecto, está bien, la última línea de código quiero configurar esa identificación de licencia inicial recuerde que nuestra fórmula aquí se encargará de esa identificación de licencia automática aquí en b5 así que quiero tomar lo que sea que esté en b5 lo voy a colocar directamente dentro de b3 quiero tome eso automatizado y colóquelo aquí porque aquí ya no se calcula, no se cambiará tomando el valor aquí, cambiará continuamente hasta que lo coloquemos en b3, así que tomaremos lo que sea que esté en b5 y colóquelo en b3 que establecerá esa identificación de licencia inicial, está bien, muy bien, ahora lo notará otra cosa tan pronto como hicimos un cambio aquí, así que si cambiamos esto a, digamos dos meses, eso automáticamente aquí lo cambiará, sigamos adelante y coloquemos el vencimiento aquí, así que ahora verá que en realidad lo configuraremos. desde el registro, avancemos y pongamos esto a partir de hoy, así que si lo configuramos en un día actual, sabemos que la fecha actual hoy, por supuesto, es el día de grabación del 6 de mayo de 2022, por lo que vemos que dos meses serán julio. 6. Si lo cambiamos a un mes, será el 6 de junio. Si cambiamos esto a un año, se establecerá un año, así que vemos desde el día actual ahora, por supuesto, es a partir de la fecha de registro que no. No quiero cambiar hasta que el usuario realmente lo registre, ¿de acuerdo? Entonces, ¿cómo podemos automatizar esto? Entonces, si hago un cambio en cualquiera de estos i8 a j8, entonces quiero que algo cambie aquí, asumiendo que es a partir de hoy, así que eso es todo. basarse en un evento de cambio cuando realizo un cambio, sin embargo, solo cuando el uso r hace un cambio cuando hago este tipo de cambio aquí no quiero que suceda nada bien quiero quiero mantener esa fecha de caducidad cualquiera que sea la fecha de caducidad para permanecer igual así que dos tipos diferentes de cambio es por eso que necesitamos diferenciar esos tipos de cambios cuando lo estamos cargando, esto irá a verdadero, así que queremos asegurarnos y luego volver a falso, así que queremos asegurarnos cuando hagamos un cambio en estos, queremos asegurarnos de que b2 es falso y eso va a pasar en el evento de cambio cuando hago un evento de cambio de celda un evento de cambio de hoja de trabajo aquí algo va a pasar así que entremos a nuestra hoja de licencias aquí y nos concentraremos en ejecutar una macro para configurar el fecha de caducidad pero no en la carga de la licencia, queremos asegurarnos de que b2 sea falso cuando hagamos un cambio en i8j arcade, vamos a ejecutar una macro que es la siguiente macro que vamos a revisar llamada fecha de caducidad del conjunto de licencias, así que cuando volvemos a las macros de licencia , vemos que la siguiente macro que estamos vamos a repasar se llama fecha de caducidad de la licencia . Necesitamos establecer la cantidad de frecuencia siempre que la cantidad de frecuencia sea este número aquí ubicado en i8. También queremos establecer la frecuencia de caducidad como una cadena. Necesito saber con qué frecuencia son los días correctos. semanas meses o años y luego también quiero saber aquí qué hay en k por supuesto entonces lo que vamos a hacer es que necesitamos saber el ex la fecha de vencimiento como una fecha y también quiero saber la fecha de inicio la fecha de inicio es muy importante, la fecha de inicio, por supuesto, será a partir de hoy, está bien, así que vamos a poner eso en una variable y, por supuesto, necesito calcular la fecha de vencimiento en función de las variables, está bien, lo primero que queremos hacer es si no caduca, entonces solo vamos a borrar el contenido y eso significa que si no caduca, oh, no necesito borrar nada para que veas que todo se borra , nada correcto, no queremos para calcular cualquier cosa si no caduca bien, así que queremos asegurarnos que no lo hagamos bien, pero asumiendo que está por vencer, entonces queremos calcular que estamos saliendo del sub si no está por vencer y estamos borrando el contenido de i10 a k10 y simplemente lo que va a hacer es borrar esta es una celda combinada, por lo que debemos borrar todo el co, no solo la celda individual, sino todo el camino desde i-10 hasta k10 porque es una celda combinada, pero si está por vencer podemos continuar estamos saliendo si es que no caduca porque queremos calcular la fecha de caducidad, quiero asegurarme de que tenemos los valores correctos, quiero asegurarme de que no haya espacios en blanco para que podamos calcular la fecha de caducidad, debemos asegurarnos de que tenemos la cantidad de frecuencia, la frecuencia y necesitamos tener el origen, por lo que quiero asegurarme de que todos contengan valores, si alguno de ellos está en blanco, saldremos del sub y también de lo que quiero asegurarme es si eso se establece a partir de si se basa en el derecho de registro , no sabemos la fecha de registro porque porque el usuario lo registrará para nosotros, ellos serán los que realicen el registro, por lo que establecerán la fecha de registro a menos que desee establecer el registro drake, pero si a6 h6 está en blanco y es del registro, entonces queremos para establecer sin embargo, digamos que es, digamos que ya lo registraron o que lo está registrando para ellos , va a establecer la fecha de registro y también es para el registro, entonces podemos calcular los vencimientos y luego trabajaremos porque tenemos una fecha de registro para moverse desde la derecha pero, sin embargo, si h6 está en blanco, entonces no podemos calcular el vencimiento porque no tenemos una fecha de registro cuando se basa en el momento en que están registrados, por lo que puede registrarlo para ellos o ellos pueden registrarse está bien, si se registran, no podemos calcular la fecha de caducidad, está bien, continuando aquí, saldremos del sub si h6 está en blanco y es del registro, solo vamos a borrar la fecha de caducidad, no podemos registrarnos hasta que haya un registro real la fecha de inicio está bien , pero lo que quiero saber ahora es que quiero establecer esa fecha de inicio ahora que la fecha de inicio se basará en dos parámetros la fecha de inicio se basará en la fecha de registro aquí o se basará en la fecha actual en base a esto, por lo que necesitamos saber ese punto de partida, entonces, ¿cuál será ese punto de partida? Será esta fecha o la fecha actual y vamos a determinar eso por lo que se encuentra aquí en k8, entonces si k8 es igual a hoy , entonces la fecha de inicio es igual a la fecha de hoy, que es la función de fecha, de lo contrario, la fecha de inicio es simplemente lo que está en h6 que configurará nuestra fecha de inicio y, a continuación, quiero configurar esa cantidad de frecuencia uh va a basado en i8 o cualquiera que sea el número y luego nuestra frecuencia de caducidad, que será en j8, así que estamos configurando eso, entonces lo que vamos a hacer es usar mayúsculas y minúsculas porque tenemos diferentes casos ya sean días, semanas, meses o años, necesitamos establecer ese vencimiento d Comimos en base a esos y la gran función para usar es la fecha en y junto con el caso de selección cuando usamos el caso de selección en función de esa frecuencia, sabemos si la frecuencia del caso son días, vamos a agregar fechas a eso, así que vamos para agregar el uso d, que es para días , agregaremos la cantidad de días y la basaremos en la cantidad de días según esa fecha de inicio; sin embargo, si son semanas, usaremos nuevamente la fecha en y vamos a usar las semanas que es ww estamos sumando el número de semanas y nos basamos en la fecha de inicio si son meses estamos sumando el número de meses m para meses la cantidad de frecuencia que es el número de meses y luego en función de la fecha de inicio años igualmente cuatro denota el año y el número de años y la fecha de inicio que establecerá automáticamente esa fecha de vencimiento en función de esos tipos de cualquiera de esas cuatro condiciones diferentes, esas cuatro diferentes opciones, entonces todo lo que tenemos que hacer es simplemente tomar esa fecha de vencimiento y ponerla d directamente en i10 que va a poner esa fecha de caducidad, por supuesto, lo formateé como una fecha larga, así que se basará en esa fecha larga para que podamos verlo y luego eso es todo lo que tenemos que hacer, así que es muy, muy fácil. podemos generar una fecha de caducidad basada en múltiples condiciones con solo un poco de código, está bien, fantástico, ahora lo que quiero hacer es poder guardarlo correctamente si estoy guardando esos cambios, quiero asegurarme de que eso se guarda en la base de datos y, por supuesto, quiero desvanecer el mensaje aquí para que el usuario sepa que eso se ha guardado y eso es, por supuesto, dado que tenemos un mapeo de datos, será muy, muy fácil, así que lo primero que queremos hacer es queremos para asegurarnos de que determinamos si es una licencia nueva o una licencia existente, sabemos que si no hay una fila asignada correctamente, hay un error, no se encuentra, el número de licencia no se encuentra dentro de esta base de datos, sabemos que será una marca. nueva licencia por lo que tenemos que asignar es una nueva fila, por lo que lo primero que debe hacer es determinar qué hay en b4, ya sea nuevo o existente, así que vamos a si b4 es igual a vacío, entonces sabemos que es una nueva licencia basada en esta hoja de licencia, vamos a configurar esa fila de licencia como la primera fila disponible dentro de nuestra base de datos de licencias usando y xlr más una que es la primera fila disponible, así que una vez que tengamos esa primera fila disponible, queremos establecer ese número de licencia, tomaremos lo que esté ubicado en b3 y vamos a colocar eso directamente en la columna a y nuestra fila de licencia que establecerá ese número de licencia, solo necesitamos hacer eso para la nueva licencia; de lo contrario, en la fila existente, podemos establecer esa variable de la fila de licencia en función de lo que hay en b4 todo lo demás, estas líneas de código lo haremos, ya sea nuevo o existente, y usaremos el mapeo de datos de la columna 2 a la 12. Ya hemos colocado en la columna 1 nuestra licencia, por lo que no necesitamos para empezar vamos a empezar en la columna 2 vamos a llegar hasta la columna 12. vamos a tomar lo que sea que esté en k4 y lo colocaremos directamente en la fila lo que sea que esté en e6, por supuesto, e6, lo que significa aquí, ubicado aquí, y lo colocaremos directamente dentro de nuestra base de datos ubicada aquí, así que simplemente vamos a recorrer eso y ubicar a todos directamente aquí y lo haremos con solo estas tres líneas de código mientras recorremos la columna de licencia que va a 12. Luego vamos a tomar dentro de nuestro base de datos dentro de esa fila de licencia dentro de esa columna de licencia, vamos a colocar lo que esté en este rango aquí mismo, ese rango está ubicado en la fila uno y la columna de licencia fila uno, así que lo que sea que esté en este rango este rango este rango simplemente vamos para colocar lo que sea que esté aquí y lo colocaremos directamente dentro de nuestra base de datos, así que eso es todo lo que tenemos que hacer para agregar los detalles de la licencia a continuación, queremos ejecutar una macro que actualizará esa base de datos remota. solo actualice nuestro local, necesitamos actualizar una base de datos remota que vamos a incluir en breve porque quiero asegurarme de que toda esta información de licencia se cargue en todo el mundo para nuestros usuarios correctamente, de esa manera es una base de datos muy segura para que cuando nuestros usuarios tengan una licencia sepan si su la licencia está vencida o no y toda esa información, entonces lo que quiero hacer es volver a ejecutar la macro que va a cargar esa lista justo cuando hago un cambio que cuando la guardo quiero volver a cargar esta lista y va a se basará en la fecha de registro, por lo que se ordenará automáticamente, por lo que si tuviera que cambiar esto a 4 1 correctamente y luego guardarlo , veremos que estará en un orden diferente, por lo que ahora se guardará aquí ahora 401 está en la parte inferior, sin embargo, si lo cambiamos, volvamos a seis uno. También quiero que se ordene correctamente, así que si lo guardo ahora, vemos que está en la parte superior derecha y se selecciona automáticamente. También quiero seleccionarlo automáticamente. Entonces, ¿cómo vamos a hacer eso bien en primer lugar? Lo primero que queremos hacer es entrar en esta macro y luego también quiero ejecutar ese mensaje de desvanecimiento que guarda el mensaje de fedor que el mensaje de desvanecimiento está justo aquí, todo lo que vamos a hacer es tomar una forma esa forma que viste brevemente llamada mensaje de guardar licencia esa es esa forma que está aquí si no queremos ver esa selección queremos ver que entramos en nuestro panel de selección y vemos que está justo aquí llamado mensaje de guardar licencia si yo fuera a mostrar eso mostrarlo verías que está justo aquí puedo cambiar la forma tal vez cambie el aspecto puedo cambiar el formato tal vez escanear quiero que se destaque un poco ponerlo naranja, puedo hacer eso aquí , ahora podemos verlo, así que es este mensaje el que aparece cada vez que guardamos una licencia , ves que automáticamente se ajustará lentamente y luego desaparecerá y eso es todo lo que tenemos que hacer. es ejecutar un ciclo y cambiar esa transparencia de esa forma y luego eventualmente simplemente ocultarla a través de gh visible es igual a falso eso es todo lo que hace así que esa es esta macro esta macro y estas dos macros que aún no hemos repasado cargar la lista y vamos a repasar esto básicamente esta macro es lo que vamos a hacer para simplemente cargue esta lista y luego tenemos otra macro esas dos macros que vamos a revisar ahora mismo borre el filtro que borrará el filtro, lo que significa que si hemos configurado algún filtro aquí, lo borrará , así que tenemos dos para fred fretters borrar ese filtro va a mostrar que están bien así que tenemos esas dos macros la primera se llamará limpiar filtro vamos a ir en orden borrar filtro y básicamente lo que quiero hacer es quiero cree un filtro avanzado basado en lo que tenga el usuario, así que si decido instalar 7.3, quiero asegurarme de que aparecerán todas las licencias que contengan 7.3, así que necesito crear un filtro avanzado con las que están aquí. Entonces, ¿cómo puedo hacerlo bien dentro de nuestra base de datos de licencias? ¿Qué vamos a ser? haciendo es que vamos a crear criterios, vamos a adjuntar esos criterios aquí, así que observe que la clave de licencia tiene un asterisco 73 asteriscos adjuntos, si agrego más, estarán aquí, así que si decido borrar ese filtro aquí y quiero basarlo en un correo electrónico de usuario y quiero hacer digamos fred otra vez nuestra palabra favorita y quiero saber solo esos correos electrónicos que contienen la palabra fred si volvemos a nuestro lugar de licencia que vemos ahora en el correo electrónico del usuario en nuestros criterios fred se ha envuelto alrededor de ese comodín que significa que cualquier cosa que contenga fred antes y después se mostrará dentro de nuestros resultados nuestros resultados se mostrarán aquí, así que lo haremos con un filtro avanzado y luego, por último, una vez que obtenga esos resultados, los ordenaré de forma descendente según nuestra fecha de registro, por lo que las fechas de registro más recientes aparecerán en la parte superior y las más antiguas aparecerán en la parte inferior y lo mismo cuando borramos el filtro también va que se mostrará aquí para que veamos que nuestras fechas de registro se mostrarán automáticamente aquí en función de esa fecha, por lo que lo primero que queremos hacer es borrar los filtros, así que vamos a borrar el contenido de nuestras licencias justo cuando Borro esos filtros . Quiero borrar cualquier otra cosa aquí, pero ¿cómo lo hacemos bien? Así que vamos a borrar ese filtro. Entraremos en un momento en cómo sucede todo, borrando eso y luego también quiero borrar cualquier criterio. eso podría estar aquí, cualquier criterio aquí también debe borrarse, por lo que esa es la segunda línea de código dentro de nuestra base de datos de licencias o3 a v3, vamos a borrar todos esos criterios, luego vamos a ejecutar la macro que simplemente va a esta siguiente macro que aparece llamada carga de lista, así que aquí es donde vamos a entrar en todos esos criterios, ahora viste una vez más que si hago un cambio aquí, vemos que ese criterio aparecerá automáticamente aquí, ¿cómo sucede eso? bueno lo primero que quiero hacer yo Quiero asegurarme de que cuando hagamos un cambio de cambio en cualquier lugar desde d13 hasta k13 es cuando quiero que suceda algo y eso se basa en el cambio de ventilación, de modo que cuando volvamos a la licencia volvamos a la evento de cambio de hoja de trabajo vamos a hacer algunos cambios de pie vamos a ejecutar un filtro avanzado basado en un cambio de filtro basado en cambios en estas celdas aquí desde d13 hasta k13 y quiero asegurarme si el valor objetivo no es igual vacío y quiero diferenciar necesito hacer un poco de diferenciación observe estos tres campos estos son campos de fechas o números estos van a ser campos de texto así que necesito manejar estos un poco diferente bien así que si solo quiero sé una fecha, por supuesto, no quiero poner asteriscos alrededor de esto cuando miramos en la base de datos de licencias, quiero mostrar solo esas fechas aquí , solo las fechas, así que queremos asegurarnos de que al abrir estos tres campos estamos no voy a poner asteriscos asi que ne ed para diferenciar entre esos dos tipos de campos porque son de fecha o numéricos, así que para hacer eso, lo que voy a hacer es diferenciar si la columna de destino es inferior a 8, ¿por qué sería inferior a 8? Echemos un vistazo aquí. esta es, por supuesto, la columna 4 5 6 7 y 8. Entonces, cualquier cosa menor que a o mayor que 11 o 12, digamos que creo que fue 11 o mayor que 10, lo siento, entonces queremos hacerlo, eso significa 4 8 9 y 10 8 9 y 10 los manejaremos de manera diferente para la columna 11, será texto, por eso voy a diferenciar aquí si la columna objetivo es menor que 8 o si la columna objetivo total es mayor que 10 esos van a ser campos basados ​​en texto, pongamos eso aquí texto , luego nos centraremos en el texto, pongamos nuestros campos basados ​​en texto, de lo contrario, será la columna de fecha o número, la fecha o la columna de número, así que para los campos de base de texto, lo que quiero para hacer quiero envolverlos alrededor de los asteriscos correctamente porque quiero saber esos comodines te campos basados ​​en xt quiero saber cualquier tipo de campo o cualquier tipo de registro que contenga eso, entonces, ¿cómo hacemos eso? Entonces, lo que quiero hacer es encontrar una relación entre esta fila, esta celda aquí y esta derecha . aquí, entonces, ¿qué es? Bueno, echemos un vistazo a qué columna es esta, esta es la columna aquí, la columna 15 y sabemos que es la fila 3. la columna 15, la fila 3. a la derecha, la clave de licencia aquí es la columna 4 . la fila 13 llama a la fila 13. Entonces, ¿cómo sé bien la diferencia? Eso va a ser una diferencia de 6 columnas. Va a ser una diferencia de 6 columnas. Para hacer eso, todo lo que puedo hacer es hacer una diferenciación. Discúlpeme. 11 columnas de diferencia. esta es la columna 4 y esta es la columna 15 a la derecha esto se llama 15 por lo que es una diferencia de 11 columnas, está bien, así que la diferencia de 11 columnas es correcta si estoy haciendo un cambio en la columna 4 y quiero que ese cambio se refleje aquí, necesito para agregar 11 columnas correctas, eso es todo lo que vamos a permitir, agregaré esas 11 columnas para que las licencias En la base de datos sabemos que es la fila 3 donde queremos hacer que cambie la columna de destino, digamos 4 correcto para la clave de licencia más 11 será 15. Entonces sabemos que la columna 15 de la fila 3 es donde queremos que aparezca ese criterio y queremos mostrar lo que el usuario haya ingresado, pero lo que quiero hacer es envolver eso alrededor de esos comodines, el asterisco anterior y el asterisco posterior, y eso es solo para campos basados ​​en texto, pero ¿qué pasa si es un campo de día si ? es un campo de fecha o número, simplemente coloque ese valor objetivo exactamente como lo agregó el usuario sin el asterisco antes o después , eso es todo lo que tenemos que hacer, de lo contrario, ¿qué quiere decir ? un valor, pero ¿y si borran el valor? saber todo así que de nuevo aclarado aquí queremos también ser para eliminar aquellos para simplemente eliminar sea ​​lo que sea, hagámoslo una vez más, pendiente correcto, si ponen pendiente aquí, quiero saber solo los derechos pendientes, así que simplemente agregaré pendiente aquí, pero quiero si borran el contenido aquí si eliminan los valores aquí también quiero asegurarme de que estén borrados aquí amigo, solo asegúrate de que quiero declararlo aquí, así que solo vamos a asegurarnos de que simplemente vamos a borrar el contenido para asegurarnos de que todo esté bien . probablemente lo ponga aquí también, pero está bien y luego lo que voy a hacer es ejecutar la macro llamada carga de lista, que es la siguiente macro que vamos a ingresar dentro de nuestro pedido, así que está aquí, carga de lista, eso es todo lo que tenemos que hacer cuando hacemos eso, lo que quiero hacer es borrar cualquier dato de licencia, lo primero que queremos hacer es tomar todos los datos, cualquier dato ubicado desde d14 hasta k y hacia abajo y borrar eso y eso es justo lo que vamos a hacer aquí también quiero borrar esta fila seleccionada si He seleccionado una fila específica que se ubicará en b6 que ocurre en el cambio de selección cuando realizo un cambio de selección aquí dentro de las licencias, me concentro en el cambio de selección aquí, entonces quiero asegurarme de que d contiene un valor que significa el usuario selecciona cualquier celda entre d14 y k99 y, por supuesto, d debe contener un valor correcto, no podemos si algo sucede allí y d no contiene un valor, no queremos que suceda nada si d vamos a hacer algunos cosas que quiero configurar b6 en la fila de destino y también quiero asegurarme de que vamos a configurar la clave de licencia b3 vamos a obtener eso en un momento en el nivel bajo pero quiero hacerlo ya que estamos en esta hoja b3 tomará lo que sea que esté dentro de d, eso significa que cada vez que selecciono algo que escala la licencia quiero ponerlo directamente aquí, está bien, eso es todo para la selección, luego vamos a cargar la licencia, así que eso es todo a través de esa macro también vamos a entrar porque esa macro es la próxima que viene, así que eso es g va a ser la carga de la licencia , así que continuemos con esta carga de lista, esa es la macro que vamos a tener, ya hemos colocado nuestros criterios justo cuando agregamos algo aquí, ya hemos colocado nuestros criterios, así que ahora todo lo que tenemos que hacer es simplemente determinar la última fila de nuestros datos, ejecutar nuestro filtro avanzado basado en los encabezados, asegurándonos de que los encabezados sean exactamente iguales a nuestros datos originales y luego hacer que esos resultados se muestren desde a8h, así que eso es exactamente lo que vamos a hacer ¿Queremos asegurarnos de que la última fila se base en la base de datos de licencias? Si es menos de cuatro, vamos a salir del sub. Vamos a ejecutar nuestro filtro avanzado basado en los datos originales de a3 a la columna l. teniendo ese criterio de o2 a v3 si bajamos esto vemos que el criterio es de o2 a v3 y los resultados vienen de aa a ah eso es lo que vamos a tener queremos único verdadero vamos a obtener el último fila de resultados necesito saber la última fila de resultados en este caso es 4 pero quiero t o asegúrese de que si es menos de 3, eso significa que no tenemos datos, podemos salir del sub y luego nuevamente quiero ordenarlos descendentemente según esa fecha de registro, así que primero vamos a borrar los campos de clasificación y luego vamos entonces nos vamos a centrar en aclarar que luego lo que vamos a hacer es agregar una clave de licencia, necesitamos llamar a esa hoja nuevamente porque estamos dentro de with sword ae3 es el primera fila dentro de la columna que queremos ordenar y queremos ordenarla descendiendo las fechas más nuevas primero, me basaré en todos los datos basados ​​​​en el aa3 y la última fila de resultados y luego aplicaremos eso filtrar, entonces todo lo que tenemos que hacer es simplemente traer los datos, traerlos a nuestra licencia, de modo que d4 a k en la última fila será la palma 11 y la razón es que nuestra primera fila comienza en la fila 14, justo aquí, nuestros datos comienza exactamente en la fila 14. Por lo tanto, quiero compensar que nuestros datos aquí provengan de la fila 3, por lo que la diferencia es de 11 filas, por lo que necesitamos para agregar 11 a eso, voy a traerlo todo, traer todos esos datos, está bien, ahora lo que quiero hacer es notar cuándo lo traje bien, quiero asegurarme de que lo resaltemos, noten que quiero resaltar si eso si la carga en la fila que se cargó correctamente, sé que la identificación seleccionada está aquí, pero lo que quiero hacer es buscar esa identificación aquí, si se encuentra, quiero tomar cualquier fila que se encuentre y quiero colocar esa fila directamente aquí y de esa manera automáticamente se selecciona automáticamente, sabemos cuál está seleccionado, así que lo que vamos a hacer es asegurarme de que b3 contenga un valor correcto si no tenemos ninguna identificación . no puedo encontrarlo aquí porque no está aquí, así que quiero saber qué fila, por ejemplo , si hago clic en nueva licencia a la derecha y borro el filtro, no hay nada que seleccionar, no hay nada que seleccionar porque no hay nada aquí. no se encuentra o al menos no se encuentra es la nueva hay la nueva licencia que está bien pero yo no se encuentra aquí y si no se encuentra no quiero que se seleccione solo si se encuentra y borro el filtro ahora que se encontró verás que he seleccionado algo así que ahora se encuentra así que si no se encuentra no lo hacemos necesito seleccionar cualquier cosa, así que si lo que vamos a hacer es tomar la clave de licencia y ponerla en una variable de b3 y luego la buscaré, si no se encuentra, podría generar un error. así que vamos a envolverlo en zoom en el aire a continuación y en el aire ir a 0. Bien, entonces lo que quiero hacer es colocar la fila en la que se encuentra, así que voy a ver dónde estoy. buscando estoy buscando en la columna d14 hasta el final estoy buscando la clave de licencia estoy buscando en los valores estoy viendo un agujero y quiero extraer la fila en la que se encuentra y quiero colocar esa fila directamente dentro de b6 si se encuentra si no se encuentra, podría crear un error, por eso hemos hecho esto bien, eso es todo lo que tenemos que hacer para seleccionarlo automáticamente, así que cuando borre el filtro de esta manera cuando elimino la fila aquí, se borra, pero borro el filtro nuevamente , ya se encontró y se volverá a seleccionar aquí, está bien, genial, ahora la macro que acabamos de repasar recuerda en el cambio de selección, es ese cambio de selección que estamos va a cargarlo, esta es la macro que estamos revisando ahora, así que para esta macro todo lo que tenemos que hacer es asegurarnos de que tenemos una fila de base de datos, no podemos cargar nada sin una base de datos o, por lo tanto, esto será automáticamente calculado en base a esa licencia que ya tenemos en el evento de cambio de selección, ya llevamos la licencia a la columna d y la colocamos directamente en b3 cuando hicimos eso calculó la fila de la base de datos siempre que tengamos una fila que podamos cargarlo, así que vamos a asegurarnos de que b4 esté vacío, podemos salir del sub, vamos a poner eso en una variable y luego todo lo que vamos a hacer es configurar la carga de la licencia en Cierto, recuerde que esto es muy importante para que no activemos una nueva fecha de caducidad en la que no lo hagamos. ant para activar eso y luego , después de cargar todos los datos, simplemente vamos a configurarlo en carga falsa en todos los datos simplemente usando el mapeo de datos inverso esta vez estamos tomando todo de nuestra base de datos dentro de nuestra fila de licencia y licencia columna y la estamos colocando directamente dentro de los rangos que se encuentran en la fila uno de la base de datos, así que esta vez estamos tomando toda la información de nuestra base de datos aquí y la estamos colocando en cualquier celda k4 o e6 que estemos colocando directamente dentro de esta pantalla aquí y eso es todo lo que tenemos que hacer usando el mapeo de datos nos ahorra un montón de tiempo cuando eliminamos una licencia simplemente quiero borrarla excepto la licencia quiero conservar la licencia y base de datos quiero borrar todo lo demás y luego quiero establecer el estado como pendiente, así que si entro aquí y quiero eliminar, sigamos adelante y eliminemos este borrando la licencia ¿ está seguro de que desea eliminarlo? haga clic en sí es va a eliminarlo automáticamente y luego vemos t Ahora que esto se eliminó y vemos que siempre se eliminó aquí, así que lo haremos adentro, así que lo primero que quiero hacer es informar al usuario si está seguro de que desea eliminarlo y si dice que no, nosotros vamos a salir del sub, necesitamos determinar si se ha guardado o no , ¿cómo sabemos si se ha guardado? Bueno, sé si se ha guardado si b4 contiene una fila, así que si b4 está vacío, sabemos que no. se ha guardado, así que si hago algunos cambios aquí y decido que quiero eliminar este aquí o sigamos adelante y hagamos una nueva licencia, esto es lo que quiero hacer, hacer algunos cambios aquí y decidí eliminar esto, entonces lo sabemos que no hay una fila asociada, haga clic en sí, simplemente borrará el contenido correctamente, así que si aún no se ha guardado , si b4 es igual a vacío, vamos a no guardar, podemos omitir la eliminación de la fila e ir directamente a aquí. sin embargo, si se ha guardado, vamos a hacer estas cosas, la fila de licencia será b4, vamos a borrar el contenido entre b y l borrar no eliminar la fila pero borrar el contenido establecer el estado en la columna b para eliminarlo y luego vamos a ejecutar una macro que agregará o actualizará la licencia que no hemos hecho esa macro sin duda lo haremos, esta es la misma macro que ejecutamos cuando ejecutamos el guardado correctamente, así que cuando ejecutamos el guardado aquí hasta aquí es la misma macro agregar o actualizar, así que ejecute la macro para actualizar la base de datos remota que es lo que necesitamos para entrar en un momento, así que está en eliminar y continuar todo lo que vamos a hacer es ejecutar la macro que agrega una nueva, simplemente borra el contenido y luego vuelve a cargar la lista , por lo que esas son las dos macros que ejecutamos, así que después de eliminar, solo vamos a actualizar esta lista y luego vamos a configurar, vamos a ejecutar la macro que agrega nuevo, que borrará todo y establecerá esos valores predeterminados, eso es todo, eso es todo lo que tenemos que hacer. eliminado genial, pero observe cuando guardamos cuando lo guardo, tenemos que tener esto datos en línea no puedo mantenerlos solo en Excel porque nuestros usuarios de nuestras aplicaciones necesitan acceder a estos datos, por supuesto, no acceden directamente, todo sucede detrás de escena en un entorno seguro, pero debemos asegurarnos de que sea accesible para nosotros. Necesitamos encontrar básicamente una base de datos en línea. Ahora podríamos usar muchas. Hay muchas posibilidades diferentes. Airtable Google Sheets y otras cosas, pero lo que vamos a usar es algo llamado almacén de datos. Ahora el almacén de datos está disponible a través de, por supuesto, una aplicación. que hemos usado algunas veces llamado integra mount o anteriormente llamado integromat y ahora llamado make probablemente bueno cambiaron el nombre ya que nunca lo pronuncié bien, así que se llama make now y make nos permitirá tener una base de datos de algunas de las cosas que nos permiten hacer eso es algo que aquí llaman almacén de datos, así que si miramos aquí podemos ver nuestro almacén de datos, así que hacer clic en más aquí nos permitirá saber que creamos un almacén de datos que se llama almacén de datos y demás Lo que he hecho es simplemente crear una base de datos llamada datos de licencia, puede crear esto, así que si navego por esto, podemos verlo muy, muy similar, tenemos una clave y una licencia, son lo mismo, así que está bien, lo tenemos. una aplicación de estado, por lo que tenemos exactamente la misma base de datos que tenemos en Excel , no es diferente de esta base de datos aquí, excepto por la columna de clave de licencia doble que, excepto la clave doble, eso es todo, pero todo lo demás es igual y uno está automatizado . así que es exactamente igual que esto y he usado el mismo nombre y todo lo demás para que sea mucho más fácil cuando lo duplicamos, está bien, puedes hacerlo ahora para hacerlo bien para crear eso, digamos que quieres crear eso, ¿cómo lo harías? creamos un nuevo almacén de datos, bueno, si agregamos un almacén de datos aquí para hacer eso, solo tenemos un almacén de datos disponible en la versión gratuita, pero si lo editamos correctamente, entonces si continúa y agrega un almacén de datos y luego qué lo que haces es obtener una pantalla como esta, tendrás un anuncio aquí y luego qué Lo que puede hacer es crear una estructura de datos correcta y ya he creado una estructura de datos aquí llamada estructura de datos de licencia estructura de datos de licencia y lo que vamos a hacer es crear esa estructura, necesitamos saber un poco un poco más de información sobre eso, así que regresemos aquí y luego podemos hacer clic en editar eso, de modo que cuando agregue uno nuevo, lo que quiere hacer es editar todos los campos y para hacer eso todo lo que necesita hacer es simplemente haga clic aquí para agregar elementos, así que vamos a agregar elementos básicamente agregando las columnas ahora vamos a decir qué tipo de columna es le vamos a dar si la editamos vamos a ver que esto se llama clave de licencia y es un tipo de texto. No le dimos ningún valor predeterminado diferente. escriba y observe que tenemos aquí debajo, por lo que les hemos dado a todos ellos la fecha de registro, este he creado un tipo de fecha, por lo que este es el tipo de fecha del campo y tipo de licencia frecuencia cantidad este será un campo de tipo numérico tipo de número, por lo que para cada columna he creado esta estructura y esto nos permitirá crear este almacén de datos, así que lo he hecho para cada columna, así que una vez que hayamos hecho eso, puede crear esa base de datos , todo lo que tenemos que hacer es guardar la información de hacerlo, así que lo que quiero hacer es que quiero cada vez que hago un cambio en mi aplicación quiero cargue esos detalles en esta tabla en particular, así que básicamente lo que quiero hacer dentro de esto si se encuentra el registro quiero que se actualice si no se encuentra quiero agregar uno nuevo así que, por ejemplo, echemos un vistazo a este último lisa lopez nosotros veo esa fecha de vencimiento uno en 30 días y tenemos vencimiento el 4 de junio. Entonces, si entro en mi solicitud y veo al menos a López aquí 30 días el 4 de junio, pero decido que vamos a vencer en un año, ¿verdad? solo voy a hacer el cambio aquí un año y luego automáticamente lo básico, voy a sa Así es, se guardará y actualizará automáticamente y luego lo que haremos será ingresar a nuestra base de datos aquí y echar un vistazo dentro y simplemente actualizar esto y veremos que el cambio se refleja tan pronto como lo hagamos. actualice la base de datos vamos a ver que ese cambio ya se ha reflejado aquí lisa lopez ahora dentro de un año a partir de hoy el 6 de mayo. está bien, pero ¿qué pasa cuando agregamos uno nuevo? Quiero asegurarme de que cuando agreguemos uno nuevo y la nueva licencia se agrega automáticamente a la base de datos, así que avancemos y cambiemos esto para que Debbie cree una nueva. No necesitamos nada más. un nuevo registro nunca se ha creado y quiero asegurarme de que esto también se agregue a la base de datos en una nueva fila, así que si echo un vistazo a esta actualización de datos, veremos que ahora tenemos el último aquí ya se ha añadido a debbie, así que vamos a añadir una Entonces, ¿cómo vamos a hacer eso? Lo haremos a través de algo llamado escenario, así que si echamos un vistazo aquí adentro, vamos a crear un escenario completamente nuevo. Ahora los escenarios están aquí y entramos allí y básicamente esto va a ser algún tipo de alguien, algo sucede, algo más sucede, podemos crear diferentes carpetas aquí y tengo esta llamada libros de trabajo de acceso limitado, nos centraremos en dos escenarios aquí, el primero se llama actualizar datos de licencia si desea crear un escenario completamente nuevo , todo lo que necesita es aquí, puede cambiar el nombre y lo que haremos es crear algo llamado enlace web, ya hemos hablado de esto antes si ve mi videos, así que lo primero que quiero hacer es crear un enlace web. Esto se activará correctamente. Quiero crear un activador cuando hago un cambio o elimino un registro. Quiero crear un activador que se active llamado enlace web y así que bajamos aquí, vamos a hacer clic en el enlace web y va g para llamarlo, lo llamaremos gancho web personalizado gancho web personalizado aquí y luego lo que vamos a hacer es enviar esto al almacén de datos, así que lo primero que haremos es crear este libro web personalizado, así que vamos a hacer clic en agregar, le darás el nombre que quieras, así podemos darle un nombre de prueba por ahora y luego lo que vamos a hacer es simplemente vamos a guardar eso, así que vamos a crear una web automática que desea copiar esto y lo pondremos dentro del código, está bien, así que lo siguiente que queremos hacer es enviar algunos información a nuestro almacén de datos a nuestro almacén de datos y luego haremos clic en agregar otro módulo, así que básicamente he creado qué almacén de datos, así que vamos a escribir el almacén de datos aquí y automáticamente aparecerá aquí ahora solo tenemos una base de datos y lo que quiero hacer es agregar o reemplazar un registro y ahora ya lo hice , así que veamos lo que ya hice. así que no necesitamos guardar este porque ya se ha hecho y quiero ir a este llamado almacén de datos de webhooks para que vea que tenemos un libro web, este ya lo hice y lo creé un libro web aquí está mi gancho web aquí bien, tal como ya lo hemos hecho y lo he copiado en el portapapeles y voy a agregar eso en el código lo que va a hacer es enviar todo esa información que actualizamos la voy a enviar a este enlace web y la va a enviar a los datos y luego lo que vamos a hacer se llama agregar o reemplazar un registro ingresando a un lugar de registro entonces yo Voy a enviar algo de información aquí, así que antes de entrar en esto, déjame mostrarte cómo lo envío desde el código al almacén de datos y luego vamos a entrar, así que primero repasamos el código y entendemos cómo obtenga la información dentro de esto y luego cómo la enviamos o actualizamos o agregamos un nuevo registro al almacén de datos, así que entremos en el código, pero recuerde que es esto enlace web que vamos a hacer este libro web aquí mismo, el que termina en nueve tv, ese es el que nos vamos a centrar aquí, así que dentro de una aplicación tenemos algo llamado módulo llamado macros de aplicación, no macro y lo primero que quiero hacer es verificar que irá aquí abajo llamado agregar o actualizar datos de licencia, esa es la macro que estamos ejecutando cuando hacemos un cambio o hacemos que se actualice, guarde eso, recuerde que esto es lo mismo macro en la que nos centraremos cuando la eliminemos aquí, agregue o actualice la licencia o también es la que guardamos correctamente, así que cuando la guardemos, esta licencia de agregar o actualizar es la que quiero repasar con usted, así que adentro nuestro módulo de aplicación agrega o actualiza los datos de la licencia, por lo que este es el lugar al que quiero ir . Lo primero que debemos mencionar es un objeto http porque necesitamos enviar la información a través de http. Una URL es una cadena y una respuesta. obtener una respuesta de vuelta y adyacente como una cadena . Necesito saber la fila de licencia que va ing para estar basado en la fila en b4 ya que conocemos esa fila y si es 0 salir del sub si no tenemos una fila no hay datos que podamos configurar necesito configurar toda la información quiero enviar toda la información aquí y la única forma de hacer eso es tener una fila, así que para hacer eso debemos asegurarnos de que vamos a configurar el objeto http crear msxml2 server xml http y básicamente lo que va a hacer configurarlo para enviar información a través del web está bien quiero borrar la variable necesito crear una variable llamada datos de licencia quiero toda esa información dentro de una variable de cadena llamada datos de licencia quiero asegurarme de que eso se borre y lo que vamos a hacer es nosotros vamos a centrarnos en la base de datos de licencias ahora tenemos una gran cantidad de datos, quiero decir que hay como 12 columnas de datos. mapeo de datos y cree algo muy, muy rápido y lo llamaremos campo uno campo dos campo tres, así que voy a crear este se llamará campo uno esto se llamará campo 12 y todo lo demás recordaremos en qué orden está hemos creado lo importante es que nuestra base de datos aquí tiene exactamente el mismo orden excepto por esto el primero al que no vamos a agregar un 2 3 hasta el 12. todo está en el mismo orden, así que podemos mapearlo prácticamente, conocemos el campo 1, el campo 2. así que no necesitamos nombrarlos, pero es realmente nos ayudará menos en el código si usamos algún tipo de mapeo de datos para automatizar los datos, así que eso es exactamente lo que vamos a hacer , vamos a configurar esa primera clave de licencia. Quiero saber la clave de licencia. quiero poner eso en una variable, pero puede que no sea este paso, en realidad puede que no sea necesario, pero está bien, este puede no ser necesario en este momento, está bien, así que lo que vamos a hacer es que probablemente nos deshagamos de esta línea para la columna de licencia es igual a 1 a 12. porque tenemos 12 columnas 1 a 12 quiero mapearlo y w Lo que quiero hacer es construir una cadena con todos esos datos y luego poner una etiqueta. Quiero crear una etiqueta y datos, así que voy a poner eso dentro de nuestra variable de cadena para que los datos de la licencia sean lo que sea. ya existe en caso de que haya alguno existente será igual a los datos de la licencia y el campo que quiero darle aquí está nuestra etiqueta nuestra etiqueta tiene el campo de palabra y nuestra columna de licencia por lo que se llamará campo uno campo dos campo tres bien aquí esto juntos es nuestra etiqueta esto juntos es igual a cualquiera que sea nuestra información aquí están nuestros datos en la fila y en la columna así que básicamente vamos a hacer coincidir el campo uno es igual a la licencia el campo dos es igual a esto así que vamos para crear la cadena y construir esta cadena a medida que recorremos todas las columnas para que con solo tres líneas de código podamos poner todos esos datos en una sola cadena separada por los nombres de los campos, entonces lo que voy a hacer es toma ese enlace web aquí está el que luego termina en nueve tv aquí está o su libro web voy a poner el signo de interrogación al final y voy a poner los datos de la licencia esa cadena contiene todos nuestros datos todo aquí y lo que voy a hacer es ir para enviarlo a través de la web, vamos a usar estas cuatro líneas de código para hacer eso. Vamos a obtener una respuesta en el texto. Quiero asegurarme de que la respuesta sea aceptada. bueno, dirá acéptelo si hay un problema, no lo dirá si la respuesta no es igual a aceptada, entonces quiero que el usuario sepa que verifique su Internet o verifique su enlace web o verifique algo correcto cuando obtenga este archivo recuerda que esto no va a funcionar para ti, de lo contrario, usarías todas mis operaciones, correcto, sami, así que queremos asegurarnos de que no lo sepamos, así que tendrás que poner tu propio enlace web, por eso es importante. también tome y mire estos videos para asegurarse de que comprende cómo colocar su propio web hook y poner su propio w eb gancho aquí muy importante porque este no va a funcionar para usted eso es todo eso es todo lo que tenemos que hacer, así que cuando ejecute esto va a enviar todo , entonces, ¿cómo se ve cuando se está ejecutando? Echemos un vistazo rápido a lo que voy a hacer es hacer clic en ejecutar una vez que va a esperar a que escuche bien, así que voy a ejecutar esta macro, puedo ejecutarla de diferentes maneras, puedo ejecutarla o simplemente puedo ejecútelo cuando lo guarde en esta licencia. Vamos a volver rápidamente aquí. Veremos que aparece, así que vamos a echar un vistazo y ver qué sucede. Esto nos permite ver qué sucedió. tenemos algunos resultados esto es lo que vino en el campo uno aquí está nuestro campo de licencia dos es nuestro campo de estado tres y entonces tenemos todo bien hay un espacio en blanco que está bien así que tenemos toda la información aquí bien algunos de los campos están en blanco y estamos Básicamente, entramos aquí, así que tenga en cuenta que tenemos nuestro campo , nuestra etiqueta y, por supuesto, nuestro valor aquí y entonces lo que quiero hacer es poner eso en el almacén de datos, así que lo primero que tenemos es que vamos a cerrar esta parte para que podamos verla claramente y cerrar esta aquí, así que recuerda es agregar o reemplazar un almacén de datos de registro agregar o reemplazar un registro, eso es lo que vamos a hacer dentro de este almacén de datos que sabemos que el campo uno es importante, recuerde que el campo uno aquí está nuestra clave de licencia que es muy importante , así que el campo uno i' Luego voy a poner dentro de nuestra clave. Quiero sobrescribir un registro existente si es posible. Vamos a actualizarlo o agregar uno nuevo. Esta opción es solo así que lo que vamos a hacer es sobrescribir. un registro existente y lo vamos a asignar al campo uno . Quiero asegurarme de que nos basamos en el campo uno en base a eso que vamos a abrir, por lo que buscará si se encuentra esa clave de licencia. va a sobrescribir lo que sea que esté allí , bien, vamos a poner la clave de licencia en el campo uno, el campo de estado dos, así que todos estamos lo que vamos a hacer es arrastrarlos en el campo de orden tres y el siguiente campo cuatro al siguiente, así que todo lo que tenemos que hacer es simplemente traerlo o, por supuesto, puede hacer doble clic aquí . también, cualquiera que sea el campo que esté activo, no queremos dos de ellos y, a medida que lo agregamos, aquí están nuestros datos, las etiquetas de nuestras columnas se activan automáticamente en función de nuestro almacén de datos, por lo que todo se pone en orden, es muy simple, todo lo que hacemos es simplemente arrastrar en todo el camino hasta el campo 12 eso es todo y haga clic en Aceptar así es como actualizamos automáticamente el almacén de datos muy simple y lo último es asegurarse de guardar los cambios y luego encenderlo correctamente la versión gratuita de make nos permite ejecutar dos escenarios para que podamos hacerlo muy bien, estamos ejecutando dos trampas, está bien, genial, así es como actualizamos la base de datos de datos, así es como actualizamos esta pequeña macro actualizará automáticamente nuestra base de datos, es genial, tenemos todo bien, pero lo que quiero hacer es también quiero comprobar si hay nuevos datos de licencia y quiero asegurarme de que cuando ingresen los datos de nuestra licencia, vayamos y esta macro simplemente esté buscando una carpeta, no necesitamos ingresar a esa macro, todo lo que hace la macro es simplemente buscar esa carpeta de nuestros datos, sin embargo, esa carpeta es muy importante, esa carpeta será donde ingrese la información cuando los usuarios realicen actualizaciones. Quiero que esa información regrese aquí, entonces, ¿cómo vamos a hacer eso? se guardará tanto en la aplicación como en nuestra base de datos remota aquí llamada datos de licencia, por lo que entendemos eso, pero ahora, ¿cómo capturan nuestros usuarios finales esos datos, obtienen esos datos o buscan su licencia y obtienen esa información? estará en nuestra base de datos remota y se ubicará dentro de los módulos remotos, así que ahora tengo exactamente el mismo módulo aquí, se llama macros de registro de usuario, pero es el mismo módulo que vamos a colocar dentro, así que voy a abdominales abra ese administrador de almacén en el que estábamos trabajando con la licencia, así que esta aplicación en particular, digamos que este es su usuario final y esto es lo que vamos a hacer, así que vamos a crear, así que observe cómo sucedió todo porque es ya me registré, así que voy a ir al final y lo que voy a hacer es crear esta pantalla de inicio aquí como viste, así que vamos a arrastrar y soltar o crear tu propia pantalla de inicio no es tan importante, lo importante son estos asuntos ocultos, así que repasamos esto brevemente, tenemos detalles de registro , tenemos un nuevo registro, si necesitamos generar uno nuevo, podemos usar exactamente la misma fórmula y , de nuevo, tenemos las 12 variables. los 12 dentro de nuestra base de datos, así que todo lo que hay allí, así que lo que queremos hacer es darle al usuario la capacidad de guardarlo, de modo que cuando libere este libro de trabajo, tendrá todo vacío, ¿cierto? Probablemente pueda, creo que probablemente tendrá un nombre de aplicación pero puede tener el resto emp muy bien, digamos que publica este libro de trabajo y se lo da a un usuario, dice que está bien, puede usar una versión gratuita durante 30 días, está bien, guardémoslo, está bien, queremos darles la posibilidad de tener una versión gratuita durante 30 días y luego queremos que se registren, revisaremos ese escenario, así que ahora lo repasamos una vez antes, solo brevemente, pero lo que quiero hacer es mostrarles exactamente cómo sucede en el interior, bueno, el primero es un formulario de usuario Bien, ahora tenemos un formulario de usuario. Recuerde este mismo formulario de usuario. Tengo dos libros de trabajo abiertos. Tengo nuestro libro de trabajo de acceso limitado. Tenemos el mismo formulario de registro y, por supuesto, tengo el mismo formulario ubicado en nuestro almacén. Ingrese a nuestro administrador de almacén, así que todo lo que necesita hacer es simplemente tomar el de donde y simplemente arrastrarlo a su libro de trabajo, muy, muy simple aquí, está bien, echemos un vistazo dentro de este formulario de usuario dentro, por supuesto, nuestro administrador de almacén, ¿cómo es esto ? fórmulas formas relativamente simples tengo una opción si donde es un nuevo registro o tienen un derecho de clave de licencia si tienen un derecho de clave de licencia tal vez lo compraron y tal vez les envió una clave de licencia por correo electrónico y quiere que pongan esa clave de licencia allí porque esa clave de licencia puede tener una fecha de vencimiento de un año y su registro actual o el nuevo registro puede tener solo 30 días gratis, así que obtuvimos información y luego tres campos, queremos que pongan su nombre y queremos que pongan su correo electrónico , este es importante para el marketing o poder contactarlos o poder rastrear su licencia, así que si miramos dentro de las propiedades que tenemos, tengo un grupo de opciones, este se llama clave existente, este campo se llama nuevo registro, así que tengo que diferencie entre aquí tengo la clave de licencia este campo se llama clave de licencia este campo se llama nombre de usuario y este se llama correo electrónico del usuario luego tengo botones aquí uno se llama botón enviar y otro se llama cancelar acabo de usar un fondo personalizado aquí en ellos, he creado una imagen aquí, así que este pequeño mapa aquí es solo una pequeña imagen que he usado esta imagen, solo un jpeg, muy, muy simple, está bien, así que asegúrese de que los miembros de Patreon puedan obtener todas estas imágenes si lo desean y uh, obtienen todos los recursos, así que asegúrese de unirse a nuestro patreon. Hay toneladas de beneficios por venir, por lo que estos formularios de registro muy básicos nos permiten hacer todo eso. Hay algunas cosas detrás de escena que quiero hacerle saber, así que cuando ejecutemos este formulario. Bien, sigamos, salgamos de aquí y ejecutemos este formulario aquí. Cuando ejecute ese formulario, quiero asegurarme de que si tienen un nuevo registro, quiero asegurarme de generar automáticamente un nuevo registro, pero si tienen uno. quiero que lo pongan bien, así que tenemos que diferenciar entre nuevo formulario o licencia, si tienen uno, deberían ponerlo, si es un registro nuevo, tal vez quieran una versión de demostración, pueden ponerlo, pueden registrarlo ellos mismos, lo cual es un poco genial , pero cuando t regístrenlo ellos mismos, por supuesto, pueden tener un tiempo muy limitado, lo cual es muy bueno y pueden configurarlo ustedes mismos. el código detrás de él vamos a revisar para ver algún código ahora hicimos un cambio correcto si echamos un vistazo aquí clave existente recuerda que es el que es el que a veces tengo más de uno aquí se pone un poco confuso , especialmente cuando tienen el mismo formulario correcto si hacen un cambio en esto quiero que suceda algo viste que sucedió algo nuevo registro quiero que pongan una licencia automática pero quiero borrarlo si tienen su propia clave entonces lo viste bien lo viste de nuevo repasemos el nuevo registro quiero poner cualquier código de registro automático que haya aquí si es uno nuevo quiero borrarlo así que ¿cómo vamos a hacer eso qué vamos a hacer esto basado en el clic cuando hacen clic en la tecla existente ¿Qué quiero hacer? Quiero asegurarme de que cualquier información que ya esté guardada dentro de b8 b11 b12 entre en estos campos, lo que significa que si tienen alguna información guardada aquí de b8, una clave de licencia existente o un nombre de usuario existente o un el correo electrónico entrará bien, así que eso es lo que quiero hacer, quiero poner eso, sin embargo, ¿qué pasa si hacen clic en el nuevo registro justo nuevo, oh, esto es todo, así que si quieres ver estos son todos los botones nuevo registro y en el evento de clic cuando hacen clic, queremos que suceda algo, ¿qué queremos que suceda? Bueno, lo primero que quiero hacer es saber si ya se registraron , si ya registraron una versión gratuita, si ya tienen una. clave de licencia aquí ciertamente no queremos darles una nueva clave, esta es la nueva clave que se crea aleatoriamente , queremos darles lo que sea que esté ubicado en b8, pero si b8 está vacío, si no existe , queremos asignar un uno nuevo basado en lo que hay en b7, así que eso es exacto y lo que vamos a hacer si b8 su clave de licencia existente no es igual a vacío, luego use la licencia anterior que creó, entonces yo es el valor de la clave de licencia del formulario es igual a lo que esté en b8, sin embargo, si no han creado si hay si b es vacío, entonces simplemente les daremos una nueva, una clave de licencia generada basada en la fórmula basada en lo que hay en b7, la vamos a asignar, así que esto asignará la nueva clave, ya sea la creada previamente o la nueva uno aquí y eso es todo lo que es realmente fácil eso es todo lo que tenemos que hacer para crear esta funcionalidad aquí mismo volvamos a este aquí así que eso es todo lo que tenemos que hacer para crear esta funcionalidad diferente aquí genial, ¿qué pasa si es un nuevo registro? bien, quiero que agreguen su nombre y quiero agregar su información aquí y luego quiero poder enviar esos detalles para que puedan registrarse automáticamente para el rick royce aquí y luego enviar un correo electrónico al rick quiero que envíen eso automáticamente y quiero eso en formación para guardar guardada, así que cuando envíe esos detalles, quiero asegurarme de que se guarde automáticamente ahora que la información se crea y guarda automáticamente, así que ahora echemos un vistazo atrás aquí, volvamos al principio, sucedieron muchas cosas aquí así que de vuelta al inicio ahora la información ahora que la clave de licencia se ha guardado ahora el nombre se ha guardado ahora el correo electrónico se ha guardado ahora tenemos toda esta información y ahora también se ha enviado a nuestra base de datos para que el nuevo registro sea se actualiza automáticamente y les mostraré cómo sucede eso en un minuto, así que echemos un vistazo adentro atrás, echemos un vistazo atrás dentro de esa base de datos nuevamente aquí dentro y nuestros almacenes de datos y podemos dejar lo que no queremos guarde los cambios en eso y navegamos que vemos ahora dentro de nuestra base de datos hasta el final en la parte inferior tenemos a rick royce y todo ha cambiado y, por supuesto, les mostraré cómo entra eso, así que lo haremos algunas cosas aquí, así que entremos en el macro para ver exactamente qué sucede, esa es la macro que sucede cuando hacen cambios cuando hacen clic derecho en guardar, así que cuando ingresan a este registro y hacen clic en enviar detalles si hago doble clic aquí vemos que el botón enviar va a ejecute esta macro aquí llamada registrarse y verificar la licencia registrarse y verificar la licencia para eso y dentro de nuestros módulos dentro de estas macros de registro de usuario aquí es donde todo se cerrará, así que aquí es donde todo y es el mismo dentro de su libro de trabajo limite el acceso. He creado el mismo módulo, está bien, así que nos vamos a centrar aquí, así que llamamos registrarse y verificar la licencia, así que dentro de eso, de nuevo, lo que quiero hacer es enviar toda la información que vamos a enviar. nuevamente, dimensione ese objeto http como una cadena de URL de objeto, solo respondimos y json la cadena, el tipo de registro de clave de licencia y las cadenas de datos de licencia y también la fila de campo tan larga y la fecha de vencimiento como una cadena, por lo que el primer th lo que quiero hacer es asegurarme de que completaron toda la información requerida correctamente si la clave de licencia con este formulario de registro estamos enfocados en este formulario que hemos cuadriculado la clave de licencia está vacía o el nombre de usuario es vacío o el correo electrónico está vacío si cualquiera de esos por favor hágale saber al usuario que llene todos los campos y vamos a salir del sub bien, entonces necesito determinar si es un registro nuevo o es un registro existente entonces cómo ¿Sé eso bien? Si nuevamente aparece la opción aquí, recuerde que teníamos ese campo llamado nuevo registro. Si ese valor es igual a verdadero, entonces es un nuevo registro. ¿Cómo sabemos eso? Echemos un vistazo rápido dentro del formulario aquí y podemos ver que este esto, si echamos un vistazo a este campo aquí, vemos que este es un registro nuevo y actualmente está seleccionado, por lo que sabemos que el valor aquí es verdadero, si hacemos clic aquí, habilitamos, vemos que este valor es falso, por lo que solo queremos determinar así que voy a establecer una variable si eso sucede si el nuevo registro es igual a verdadero, entonces sabemos que es un nuevo registro . Quiero configurar la variable de tipo de registro aquí llamada nueva, entonces sé que es nueva, así que quiero configurar algunos valores predeterminados. Quiero configurar el b9. Nuestro estado es activo, ¿y qué? estoy usando ahora simplemente voy a completar esta información bien todo esto traer toda esta información aquí para que el b9 esté activo quiero configurar el nombre de usuario poner eso directamente en b11 basado en el campo nombre de usuario y el valor quiero establecer el correo electrónico dentro de b12 según el campo de formulario correo electrónico del usuario quiero establecer la fecha de registro como la fecha actual la fecha actual según la fecha registrada quiero establecer b14 en uno recuerde que este es el tipo de licencia caducando voy a configurarlo para que caduque dos es para no caducar recuerda que lo repasamos así que también quiero establecer la frecuencia ahora aquí es donde tú como desarrollador puedes decidir qué quieres enviar decidí bien 30 días para gratis, les voy a dar 30 días gratis, así que la frecuencia es de 30 días que expiran días a partir de las fechas de vencimiento y desde el registro vamos a configurarlo en función de la fecha de registro que es solo nuestra configuración predeterminada, por lo que estos se basan en valores predeterminados basados ​​​​en algo que decidí que quiero darles 30 días a partir de el día en que se registraron y luego lo que quiero hacer es solo actualizar el vencimiento del registro; de lo contrario, si ya hay una fecha de vencimiento, no necesitamos agregar uno, pero si no hay una fecha de vencimiento, entonces yo simplemente quiero configurar b18 es igual a la fecha actual más 30. solo estamos configurando una fecha de vencimiento de 30 días que son todos los números correctos estamos restableciendo las aperturas actuales quiero saber la cantidad de aperturas que vamos a configurar b19 a 1. así que básicamente eso va a completar toda esta información aquí mismo, así que ahora todo esto es información correcta, así que ahora que se ha completado, quiero poder enviar esa información, sin embargo, ¿qué pasa si es una clave existente si es una clave existente todo lo que quiero hacer es tal vez actualizar el nombre de usuario, el correo electrónico y la fecha de registro, todo lo demás es igual, así que si es un nombre de usuario, todo lo que estamos haciendo es actualizar, eso significa que no estamos actualizando , ¿por qué existiría? Digamos que lo compraron y usted es les va a enviar la información les va a enviar la clave a la que va y esa clave dentro de esa clave ya tendrá una fecha de vencimiento, por lo que no queremos ajustar ese derecho, tal vez le haya dado un año o tal vez no sea una fecha de vencimiento, por lo que para un registro existente, la información de la licencia viene con esa clave de licencia, por lo que es muy importante, así que está allí automáticamente, así que todo lo que tienen que hacer es simplemente enviar la información y la información de la licencia volverá . usted entiende lo que estoy diciendo, así que cualquiera que sea la licencia, volverá bien, así que si les ha dado esta licencia, esta información de licencia, todo lo que necesitamos para buscar aquí o digamos este aquí, vamos a y al menos los lípidos que necesitamos buscar sabemos la fecha de vencimiento todo lo que tenemos que hacer es buscar su licencia y determinar está bien eso es un año a partir de la fecha actual el 6 de mayo es la fecha de vencimiento para que podamos encontrar esa información y traer esa licencia información nuevamente en él, así que aquí vamos, así que la clave de licencia estamos configurando la clave de licencia se basará en el valor de la clave de licencia aquí, así que las claves de licencia lo configuraremos en una variable según el cuidado y luego qué lo que vamos a hacer es colocar esa clave de licencia directamente dentro de b8, ahora esto es independientemente de si es una clave de registro nueva o existente, simplemente colocamos la reparación de la clave de licencia y, por supuesto, va a venga directamente de este campo aquí clave de licencia, así que lo pondremos directamente dentro de b8, así que ahora tenemos todos los campos completos ahora una vez que hayamos completado todo vamos a enviar eso a nuestra base de datos voy a enviar eso todo para enviar todas esas actualizaciones, ya sean nuevas o electrónicas. existiendo a la información , así que vamos a configurar ese objeto tal como lo hicimos antes, vamos a construir esa cadena de datos nuevamente , estamos construyendo un flujo de datos, vamos a establecer el tipo de registro igual al registro que quiero para enviar el tipo de registro también junto con todos los datos, lo primero que quiero hacer es que será nuevo o existente y será el tipo de registro porque quiero tomar algunas decisiones basadas en eso porque si es un registro nuevo no necesito saber la fecha de vencimiento , ya sabemos la fecha de vencimiento 30 días a partir de la fecha actual, sin embargo, existe esa fecha de vencimiento almacenada aquí, así que necesito extraerla correctamente, necesitamos saber cuál es esa fecha de vencimiento . porque todo lo que ha hecho es enviarles la clave de licencia, por lo que aún no sabemos la fecha de vencimiento, por lo que debemos enviar la información que necesito saber, nueva o existente , necesito enviarla, entonces lo que quiero hacer es quiero construir ese flujo de datos de licencia que quiero para construirlo con todos nuestros datos, pero esta vez vamos a ejecutar un bucle, no nuestro bucle de base de datos, recuerde la última vez que hicimos un bucle desde nuestra base de datos, esta vez voy a ejecutar un bucle de 8 a 19 y agregar todo eso adentro también agregando los campos, así que esta vez vamos del 8 al 19 o, en este caso, del 1 al 12 y simplemente agregamos 7. Si agrego 7 i a la fila del campo, sé que comenzará en la fila 8 .bien, entonces los datos de la licencia serán simplemente los datos de la licencia y el campo le daremos un nombre y la fila del campo esto nos permitirá hacer uno, la razón por la que vamos a 112, entonces le daremos esas etiquetas del 1 al 12. y luego todo lo que quiero darle es dónde está el valor el valor proviene de la columna b y la fila del campo más siete fila del campo derecho comienza en uno a la derecha pero nuestras filas de valor comienzan en ocho b ocho b nueve entonces tenemos que sumar siete hasta llegar a diecinueve tan genial, así que una vez que hemos agregado eso en esa cadena, hemos construido esta cadena, contiene todos nuestros datos, también contiene es de qué tipo, ya sea nuevo o existente , entonces todo lo que tenemos que hacer es enviarlo, así que lo pondré en una URL. Voy a crear un enlace web nuevo, una web nueva y un escenario nuevo. y ya lo he hecho aquí, así que si echamos un vistazo aquí dentro, tengo un nuevo escenario aquí mismo, este de aquí, sí, ese es el indicado y si hacemos zoom aquí, he creado un nuevo enlace web, vamos mire esto , este es el libro web donde vamos a aceptar toda esa información, tenga en cuenta que termina en l2b justo aquí i a b aquí, así que esa es la web que vamos a aceptar toda la información esta completamente nueva el escenario aquí está bien, pero queremos que sucedan algunas cosas aquí porque están sucediendo algunas cosas diferentes si es un registro nuevo quiero que suceda aquí si es un registro existente quiero que suceda algo así que hemos agregado algo llamado enrutador aquí y se puede encontrar un enrutador aquí mismo, así que lo que vamos a hacer es hacer algunas diferencias alquilar cosas si se trata de un registro nuevo, todo lo que debo hacer es enviar la información al almacén de datos y luego enviarla a nuestra aplicación a través de Dropbox para que podamos actualizar nuestra propia aplicación si es una aplicación existente, debemos hacer algunas cosas para lo primero que queremos hacer es tomar esa cadena y colocarla directamente dentro de nuestra URL junto con todos los datos de la licencia que enviaremos aquí y obtendremos una respuesta aquí, así que esto en este punto aquí, vamos a cambiar directamente a eso porque nuestra respuesta vendrá aquí, pero hay muchas cosas que suceden en el medio, en primer lugar, recuerde que enviaremos toda esa información aquí si buscamos aquí vamos a enviar toda esa información , por ejemplo, el tipo de registro, recuerde que será nuevo o existente, luego toda la información de los campos 1 a 12. esa es la información que se enviará, entonces lo que quiero hacer es quiero tomar una decisión necesito hacer algunas cosas diferentes, así que estamos agregando un enrutador, un enrutador es básicamente una división, entonces lo que quiero hacer es agregar un filtro, un filtro para que podamos agregar un filtro haciendo clic aquí, así que si es un registro nuevo quiero hacer algo, entonces, ¿qué es eso? bueno, si hago clic en vamos a salir de aquí y quiero volver a entrar vamos a ir aquí y vamos a entrar guardemos esos cambios en caso de que hayamos hecho alguno y listo de vuelta al diagrama original aquí, así que este es el que miraré, echemos un vistazo aquí, así que aquí hay un filtro que podemos, podemos acercarnos aquí, así que voy a agregar un filtro aquí, así que si es un nuevo registro va a ser un nuevo tipo de registro es igual a nuevo, así que aquí, pero eso no sucedió aquí, pero ¿y si es un registro existente? Si es un registro existente . aqui vemos que le damos una etiqueta que se llama matricula existente y si le ponemos una condicion la condicion es la matricula t ype debe ser igual a existente esto si hago clic aquí se llamará nuevo registro también basado en el tipo de registro variable pero este es si es nuevo entonces quiero hacer esto por supuesto si es nuevo y quiero hacer todo esto si existe, así que comencemos con si es nuevo si es un nuevo registro todo lo que tenemos que hacer es enviarlo al almacén de datos agregar o actualizar reemplazar un registro y crear o sobrescribir un archivo de texto bien entonces lo primero que queremos hacer es simplemente agregar todos esos datos tal como lo hicimos antes, el campo dos sobrescribe el derecho existente y luego todos los campos campo uno campo dos hasta doce simplemente agregando eso adentro agregando o actualizando en este caso vamos a casi siempre va agregarlo porque es un registro completamente nuevo, por lo que no estaría ya en nuestro almacén de datos, entonces lo que quiero hacer es dentro de un almacén de datos, pero quiero asegurarme de que actualizamos nuestros registros justo cuando hago clic en nuestra aplicación aquí i quiero asegurarme de que esa información llegue s ent se activa automáticamente y quiero asegurarme de que esa información se actualice automáticamente, está bien, entonces, ¿cómo tenemos eso ? podemos obtener eso, así que será a través de Dropbox y será a través de archivos de texto dentro de nuestro Dropbox y, por lo tanto, dentro de mi Dropbox he creado una carpeta dedicada llamada datos de licencia y es esta carpeta la que hemos buscado. esta misma carpeta que se encuentra aquí y ahí es donde quiero que venga toda la información, quiero saber, quiero obtener toda esa información y quiero ponerla directamente dentro de ese archivo de Dropbox en un archivo txt, entonces, ¿cómo vamos a hacer eso? bueno, vamos a hacer eso a través de nuestro, por supuesto, en hacer aquí, así que vamos a hacer eso aquí llamado crear o sobrescribir un archivo de texto si hago clic aquí y una vez que hayamos agregado Dropbox, lo vincularemos haciendo clic dropbox queremos buscar algo que diga s crear o sobrescribir un archivo de texto que es lo que estoy buscando y es esto lo que voy a hacer una vez que conectes tu Dropbox vas a configurar esto para sobrescribir y vas a mapear la ruta y dónde ¿Quiero esa ruta? La quiero en los datos de la licencia y luego la quiero en mi ruta. Ahora, tenga en cuenta que estas son barras inclinadas hacia adelante . Todo lo demás es donde se encuentra su Dropbox, así que tenga en cuenta que lo tengo en mi Dropbox original. directorio aquí aquí está la ruta aquí d dropbox para que se deshaga de esto, no necesita cambiar las barras diagonales inversas a barras diagonales delanteras para que los datos de la licencia estén donde estarán aquí , entonces lo que quiero hacer es darle un nombre específico voy a llamar a este archivo licencia subrayado y luego quiero asegurarme de que sea único, así que voy a usar el campo 1, el campo 1, por supuesto, es nuestra clave de licencia y luego quiero hacer txt porque es el documento de texto que quiero crear y luego lo que quiero hacer es poner los 12 campos dentro e documento de texto y quiero separarlos quiero crear un delimitador o separador único y voy a usar la barra inclinada c barra inclinada está bien, eso es lo que vamos a usar aquí, así que lo usaremos así que simplemente lo agregó, así que básicamente simplemente arrastrándolos dentro de aquí creando ese documento de texto y es ese documento de texto el que quiero agregar aquí, lo que significa que en mi aplicación si decido agregar, aclaremos todo esto, aclaremos esta información, hagamos una más. bien, entonces podemos aclararlo todo aquí, vamos a registrarnos una vez más, está bien, vamos a crear un registro y luego haremos un nuevo registro y esto hará a sally smith, está bien, podemos crearlo y luego simplemente haremos que sally agregue gmail, así que enviaremos esos detalles y lo que hará será crear ese archivo de texto y vamos a echar un vistazo dentro de mi buzón aquí y ahora ahí está solo apareció echamos un vistazo dentro de este archivo de texto vemos que tenemos toda la información En el número de licencia y luego el delimitador, el activo, la información, su nombre nuevamente, el delimitador, el correo electrónico y toda la demás información, las 12 columnas se encuentran aquí, ahora todo lo que necesito hacer es usar vba para escanear esta carpeta y cargar cualquier información que lo ubique. viendo si existe aquí por supuesto aquí es si echamos un vistazo aquí tenemos nuestro campo uno esta es nuestra licencia todo lo que tenemos que hacer es buscar para ver si tenemos esa licencia si existe en una fila actualizar el fila si no existe, todo lo que tenemos que hacer es agregar una nueva y esa es su macro, así que echemos un vistazo dentro de esa macro y luego vamos a entrar en el resto, está bien, echemos un vistazo dentro esa macro y acabamos de registrarla, así que está bien y luego volveremos a esa pantalla de inicio, así que continuamos con la macro, así que hay una macro que va a hacer eso, así que continuemos con esta macro antes de terminar, así que vuelvo a enviar eso y luego lo que quiero hacer es si el tipo de registro i s existente, queremos establecer la fecha de vencimiento en función de los detalles de registro, está bien, registro, así que obtendremos una respuesta correcta y lo que quiero saber es si, ¿cómo obtenemos esa respuesta? Echemos un vistazo. no hay respuesta en este escenario, no necesitamos una respuesta porque es una nueva novedad, ya hemos establecido la fecha de vencimiento correctamente, ya la hemos establecido porque es completamente nueva, la hemos establecido en 30 días , pero ¿y si es un existente si está existente quiero hacer otra cosa vamos a actualizar un registro así que aquí existe de nuevo si está existente lo primero que haremos es un campo, simplemente haré clic en la tecla de campo aquí vamos a actualizar lo existente y vamos a insertar registros faltantes y nuevamente quiero simplemente agregar la clave de licencia aquí podemos agregar la clave de licencia aquí está bien, ya se agregó porque existe, así que en cierto modo dejó eso en blanco y luego queremos agregar el estado de la aplicación todo basicall y todo lo que hemos hecho aquí y luego lo que quiero hacer es obtener el registro aquí mismo, esto es realmente importante , quiero extraer lo que quiero extraer, quiero extraer la información de la licencia correctamente porque necesito obtener eso Necesito saber cuándo es la fecha de vencimiento, así que lo que quiero hacer es obtener un registro basado en este campo uno, quiero extraer esa licencia en particular y le mostraré cómo va a funcionar en un momento y luego qué. quiero hacerlo, vamos a obtener la información de la licencia, entonces lo que quiero hacer es enviar información a Dropbox nuevamente tal como lo hicimos antes, no hay diferencia entre el archivo que envía toda esa información a Dropbox y luego lo que quiero hacer es obtener esa información de licencia el miércoles y te mostraré exactamente cómo va a funcionar y quiero poner eso dentro de la respuesta ¿cómo lo hacemos? déjame mostrarte un ejemplo de eso, está bien, así que vamos digamos que ella compró esto bien, así que vamos a borre la clave de licencia y luego vamos a borrar todo lo demás y ahora Sally decidió que iba a comprarlo, así que vamos a agregar aquí y luego simplemente actualizaré el data traerá la información de sally aquí aquí está sally smith justo aquí y luego lo que quiero hacer es asegurarme de que decidamos que está bien sally decidió que lo comprará, así que le daremos un no vamos dale un año que vence, está bien, así que le daremos un año y luego mostraremos que está bien, así que ahora tiene un año, así que voy a guardar esa licencia aquí y decidimos que lo hará. vamos a darle a sally este número de licencia, gracias por su compra y ha decidido que lo que voy a hacer es simplemente copiar este número de licencia y ahora sally le enviaremos un correo electrónico a sally este número de licencia y sally queremos obtenerla por un año, así que vamos a decir que está bien registrar clave de licencia licencia existente existente ella va a o ponga su nombre aquí, así que le hemos dado , le hemos enviado por correo electrónico esta clave de licencia y ahora es un año, así que pongamos a sally en gmail , está bien, ahora le enviamos esto por correo electrónico, así que ahora queremos asegurarnos de que esto registro entonces lo que quiero hacer es obtener esta licencia quiero buscar en base a esta licencia quiero buscar toda la información actualicemos los datos asegúrese de guardarlo asegurándose de que lo guardé porque eso es muy importante, quiero asegurarme de que esa nueva fecha de caducidad se haya guardado . está bien, amigo, aquí es el 26 de mayo, el 6 de mayo de 2023, Sally ya se actualizó en la base de datos, así que eso es bueno, ahora lo que quiero hacer es asegurarme de que esa fecha llegue aquí en base a esto, así que cuando envíe esos detalles va a buscar que el registro lo va a sacar de su aplicación El catión se ha registrado con éxito hasta el 6 de mayo de 2023, así que eso es todo, fue tan rápido, pero entendiste bien, volvamos al principio, podemos ver eso, así que ahora hemos buscado esta fecha de vencimiento y la trajimos aquí, ¿de acuerdo? Entonces, toda la información, ¿cómo sucedió eso? Por supuesto, a través de este derecho, es este escenario aquí , ahora vamos a bajar aquí, por lo que es un registro existente. Hemos enviado la información aquí en su nombre. registro y vamos a devolver esa información a la respuesta, así que dentro de esa respuesta quiero el tipo de licencia quiero la cantidad de frecuencia quiero la frecuencia caducada quiero la fecha de caducidad y quiero la fecha en un formato determinado y quiero para traer todo eso a la respuesta y esa respuesta va a volver aquí, de dónde viene eso, viene directamente a esta variable aquí, entonces sabemos en primer lugar si existen tipos de registro, entonces quiero establecer la fecha de vencimiento e basado en los detalles de registro , así que la fecha de vencimiento se basa en esta información, esta información que vino en ese archivo de texto dentro de esa respuesta, ¿cómo se ve? Bueno, echemos un vistazo, hagámoslo una vez más, voy a pausar el codifique aquí y vea cómo se ve dentro de la respuesta, así que todo lo que tenemos que hacer es bueno para guiarlo a través de esto nuevamente. Voy a hacer esto una vez más . ya se ha registrado y lo voy a borrar como si ella nunca se hubiera registrado aquí, sí, está bien, así que tenemos eso y lo voy a borrar, está bien, ahora vamos a registrar la aplicación . voy a pegar en esa misma tecla, pega en ese mismo nombre correctamente y solo te doy un gmail asegurándome de que sea necesario, está bien, así que ahora vamos a enviar los detalles, pausará el código tan pronto como lleguemos a ese punto y nosotros voy a poder ver cómo se ve esa respuesta , está bien, aquí está el co de entonces echamos un vistazo vemos la respuesta correcta con todo lo que tiene toda la información vemos que nuestra fecha de vencimiento aquí es cinco seis dos dos tres entonces es todo y por supuesto está delimitado en base a la parte posterior que reenvía la última barra diagonal ce4 entonces tenemos nuestro delimitador, así que lo que quiero hacer ahora es tomar esa respuesta y la dividiré en función de ese delimitador y luego pondré cada una de esas variables en valores dentro de las celdas para hacer eso vamos para configurar , avancemos y tabulamos aquí mientras lo movemos, así que vamos a configurar nuestros datos de gastos en función de una división. Queremos dividir esa respuesta completa en función de nuestro delimitador aquí y luego, entonces, lo que quiero hacer es i luego quiero recorrer cada uno de estos vamos a pasar aquí quiero recorrer cada uno de estos del 14 al 18 y quiero agregar la información basada en aquí por lo que se basa en esta matriz aquí expande los datos ahora nuestras matrices, por supuesto comienzan con 0 a la derecha, entonces 0 1 2 3. entonces necesito saber nuestro campo fila st las artes se apagan en 14 directamente de 14 a 18. Entonces, si hago 14 menos 14, obtendrá cero, por lo que será nuestro primer valor en nuestra matriz, por lo que a medida que recorremos esto, colocará ese bucle a través de esta frecuencia cuántica uno años de frecuencia, así que a medida que repetimos esto, dividirá toda la información y colocará esos datos directamente aquí, genial, así que puede ver mientras toco eso ahora si el rango b18 correcto si nuestra fecha de vencimiento es menor que la fecha actual let el usuario sabe que el registro ha caducado correctamente, asegúrese de que y vamos a salir del sub; sin embargo, si b18 es igual a vacío, infórmele al usuario que usted sabe que eso significa que no hay una fecha de vencimiento. ve que la aplicación se ha registrado durante toda la vida y se ha movido hacia abajo; sin embargo, su aplicación se ha registrado con éxito hasta que queremos darle un formato b18 dándole ese mes ddy, entonces, mientras pasamos por esto, queremos que el usuario sepa su aplicación tiene ser registrado con éxito hasta el 6 de mayo de 2023 eso es todo lo que tenemos que hacer para traerlo y luego lo que vamos a hacer es ejecutar una macro llamada libro de trabajo abierto muy bien, así que continuemos así que ahora vemos cómo ahora, simplemente abrimos la macro, buscamos esa macro en un momento, está bien , genial, eso sucede durante todo este escenario dentro de ese escenario aquí mismo, así que sucedió, así que vemos cómo, si es nuevo, todo lo que tenemos que hacer es simplemente actualizar eso y luego, si es existente , necesitamos traer la información de licencia nuevamente a esa respuesta para que luego podamos registrar esa aplicación y, por supuesto, va a Dropbox donde podemos actualizar esto, estos son los mismos donde actualizamos nuestra aplicación para que esos esos son los únicos dos escenarios en los que debemos pensar, así que ahora vemos que está abierto, pero ¿cómo aseguramos bien esta aplicación? Queremos asegurarnos de que el usuario no tenga acceso correcto si lo guardo y cierro este libro. quiero asegurarme de que el usuario d No tenemos acceso a esto hasta el registro hasta que sepamos , por ejemplo, qué pasaría si lo eliminamos cuando les damos este libro de trabajo, si decido cerrarlo y quiero borrar todo eso y luego recordar esto. los campos están ocultos y desbloqueados para que no los vean voy a guardarlo y voy a cerrar esta aplicación ahora cuando lo haga quiero asegurarme de que no tengan acceso a eso cuando la abran así que cuando abra ese libro de trabajo, quiero asegurarme de que no tengan acceso a nada más que a la pantalla de inicio, recuerde que estas columnas están ocultas, asegúrese de registrar el aviso de la aplicación aquí y tráigalo un poco. nada que puedan hacer estas columnas están ocultas no hay nada que puedan hacer aquí excepto asegurarse de que las macros estén habilitadas y registrar la aplicación no pueden hacer nada más porque ninguna hoja es variable y ahora pueden hacer clic en nuevo y obtener y probar una versión de demostración solo y si no se ha creado ninguno o tienen una clave de licencia y pueden hacer ambas cosas, entonces queremos asegurarnos de que en el libro de trabajo se cierre cuando se cierre el libro de trabajo, que todas las hojas que no sean la hoja de inicio se oculten automáticamente y muy bien ocultas para que no pueden mostrar las hojas correctamente si trato de mostrar las hojas, tampoco funcionará porque están muy ocultas, ¿de acuerdo? Entonces, ¿cómo lo hacemos bien ? vaya a este libro de trabajo este libro de trabajo aquí este libro de trabajo quiero crear dos macros una antes de que se cierre el libro de trabajo quiero ejecutar una macro y luego otra cuando se abre el libro de trabajo así que la que vamos a cerrar por supuesto ambas ya están ubicados dentro de nuestro registro de usuario y tenemos uno que se llama libro de trabajo seguro y cerrado, lo primero que debe hacer es activar la hoja de inicio, hay muchos errores que veo cuando intenta ocultar la calle de inicio intenta ocultar el pantalla de inicio pero no estás t en él o intentas ocultar otra pantalla pero ya estás en ella, va a crear un error, por lo que lo primero que queremos hacer es siempre activar la hoja que no vamos a ocultar, lo segundo es quiero Oculte todas las hojas del libro de trabajo que no sean la que se llama inicio, por lo que ya hemos dimensionado una hoja de trabajo como una hoja de trabajo, por lo que para cada hoja de trabajo en esta hoja de trabajo del libro de trabajo, quiero darle un nombre si no es así. inicio igual si el nombre de la hoja de trabajo no es igual a inicio entonces la hoja de trabajo visible es igual a muy oculta quiero asegurarme de que esté oculta muy importante y vamos a recorrer todo y luego vamos a hacer es guardar este libro de trabajo todo eso va a suceder antes de que se cierre de esa manera cuando abren el libro de trabajo, solo se ve una hoja, por lo que podemos hacer esto, de modo que cuando abran el libro de trabajo, esta macro se ejecutará, recuerde este libro de trabajo, esta macro se ejecutará libro de trabajo abierto, está bien, lo haré probablemente comente esto, usted sabe que puede No quiero que se ejecuten macros cuando lo abra, pero no creo que vaya a necesitar este administrador de almacén porque todo lo que necesita está en este libro de trabajo. Recuerde todo . estos libros de trabajo están aquí registro de usuario dentro del acceso limitado está aquí cerrar libro de trabajo abrir carga de trabajo todo está aquí bien así que solo estoy demostrando cómo funciona bien así que dentro de este lo que vamos a hacer es verificar con el pantalla de inicio quiero saber si b19 primero quiero agregar el número de aperturas ahora podemos crear escenarios adicionales que envían información automáticamente para saber cuántos libros de trabajo cuántas veces se abren pero decidí que voy a incrementar eso, háganos saber cuántos abre tengo, así que si podemos enviar esa información en algún momento en el futuro, ahora quiero asegurarme de que tengan una fecha de registro adecuada si b14 es igual a dos, esto sería, por supuesto. que no hay caducidad fecha de caducidad o b18 el valor la fecha de caducidad es mayor o igual a la fecha actual entonces lo que podríamos hacer es decir sí queremos abrir la hoja de trabajo entonces vamos a abrir todas las hojas de trabajo aquí así que ahora tenga en cuenta si aún desea tener hojas de trabajo ocultas en su libro de trabajo, necesita agregar un activo si la hoja no es igual a la derecha, lo que significa que esto abrirá cada hoja en su libro de trabajo, cuando libere libros de trabajo, es posible que desee tener algunas hojas siempre ocultas en ese caso, debe escribir una declaración si-entonces para asegurarse de que solo algunas hojas se abran y otras hojas no estén bien, tenga eso en cuenta, por lo tanto, siempre que el nombre de la hoja de trabajo no sea igual a comenzar , entonces la hoja de trabajo es visible es igual a visible, así que esto lo hará visible, entonces lo que haremos es que usted puede decidir qué pantalla desea activar. No quiero la pantalla de inicio, así que he decidido que tenemos una pantalla en esta aplicación. tenemos una pantalla llamada inicio quiero activar eso De lo contrario, esto estaría caducado, asegúrese de volver a caducar o registrarse bien o registrarse bien , eso significa que no hay fecha de vencimiento o b14 no es igual a dos, infórmele al usuario que se registre y saldremos del sub. no abrir ninguna hoja de trabajo a menos que el registro esté completo, está bien, eso es todo, eso es todo lo que tenemos que hacer para asegurar y cerrar el libro de trabajo y asegurarlo abierto, quiere asegurarse de que estas macros se ejecuten en el evento abierto, está bien, ahora cuando mostramos ya hemos repasado este ya hemos repasado este, así que eso es todo para todas las macros, por lo que la licencia de usuario estableció el día de vencimiento ahora cuando queremos establecer una fecha de vencimiento este lo hemos hecho cuando queremos asegurarnos que configuramos un spidey específico, esto no es diferente de la macro que ya revisamos, por supuesto, esto se basa en las variables dentro de nuestra pantalla de inicio, por lo que se basa en estas variables aquí que configuramos para que aquí podamos crear automáticamente una fecha de vencimiento basada en eso, así que si decidimos que estamos vamos a usar esto, también podemos configurar automáticamente la fecha de caducidad de b18 en función de las variables que configuramos aquí en función de recordar un año, un mes o lo que queramos, así que es la misma macro, pero también la hemos puesto aquí, muy bien, todo bien, echemos un vistazo a lo que hemos repasado , le mostramos cómo crear esta increíble aplicación con un banco de trabajo de acceso limitado para crear licencias para sus usuarios usuarios y licencias ilimitados correctamente y automáticamente cómo cargar eso en una base de datos remota usando escenarios usando make así que hemos creado dos escenarios, uno para simplemente crear un enlace web para actualizar o agregar a esa base de datos y el otro desde el punto de vista del usuario, de modo que vamos a crear un registro automático para nuevos registros o estamos vamos a crear uno para los registros existentes donde vamos a extraer la fecha de caducidad y traerla como respuesta y también enviar cualquier actualización a Dropbox, luego de esos archivos de texto en Dropbox a través de una macro que estamos g para poder actualizar nuestra propia base de datos a través de eso, qué capacitación tan increíble, muchas gracias por unirse a nosotros . Traeré uno nuevo cada semana. Agradezco su apoyo. Tengo algunos cursos increíbles. Si le gusta esta licencia, pero quiere ir mucho más allá de esta licencia, incluido el control de versiones, que incluye toneladas y toneladas más. Lo tengo integrado. dentro de mi curso de tutoría, sería una excelente manera en mi curso de tutoría, le mostraré cómo definir el diseño, desarrollar e implementar sus propias aplicaciones de Excel para ingresos pasivos, por lo que tenemos muchos graduados de allí que ya están ganando toneladas de dinero . y haciendo sus propias aplicaciones, así que espero que se una a nosotros dentro del curso de tutoría, todos incluyen los enlaces a continuación, muchas gracias y nos vemos la próxima semana.

Noticias relacionadas