Cómo crear un estimador de construcción completo en Excel [+ DESCARGA GRATUITA]

Cómo crear un estimador de construcción completo en Excel [+ DESCARGA GRATUITA]

hola, esto es randy con excel para autónomos y bienvenido al estimador de construcción en la capacitación de esta semana, le mostraré cómo crear una construcción increíble o cualquier tipo de presupuesto con una función de pestaña única que nunca antes había enseñado. también podremos agregar clientes, editar clientes sobre la marcha, agregar o editar elementos sobre la marcha y vamos a tener un mini tablero único junto con la impresión de correos electrónicos y mucho más, espero que se quede con nosotros, así que sigamos empezar muchas gracias por unirse a mí tengo una formación realmente fantástica con una característica nueva y única que nunca he enseñado antes sin duda hemos enseñado tabulaciones antes pero nunca de esta manera rápidamente fácilmente simplemente voy a mostrarte cómo haga eso y mucho más a través de este increíble estimador de construcción esta plantilla es absolutamente gratis todo lo que pido es su nombre y correo electrónico y continuaré y se lo enviaré directamente por correo electrónico o a través de facebook messenger creo estos entrenamientos s todas y cada una de las semanas o pronto será cada dos semanas , pero sin duda nos aseguraremos de brindarle contenido increíble siempre y la mejor manera de hacerlo es suscribirse a nuestro canal de esa manera, recibirá una notificación cuando haga clic en esa notificación. icon bell ciertamente lo aprecio hay muchas maneras de apoyar este canal esta capacitación de contenido es gratis sin embargo si quieres apoyarnos una excelente manera de hacerlo es a través de nuestra plataforma de patreon porque en nuestra plataforma de patreon te traigo aún más de hecho, la semana pasada tuvimos capacitación adicional, por ejemplo, o tuvimos el administrador de compras, creo que fue hace dos semanas, donde creamos este administrador de compras de arrastrar y soltar realmente genial, basado en su solicitud, agregué aún más en nuestra plataforma Patreon, ahora tenemos el capacidad de agregar diferentes tiendas para que podamos crear múltiples tiendas, múltiples configuraciones de pasillos diferentes y con la pantalla de administración que ahora tenemos podemos agregar diferentes pasillos para las diferentes tiendas que tenemos, podemos asignar diferentes nt categorías en diferentes tiendas , por lo que es realmente una característica increíble, gracias por sus sugerencias sobre lo que está disponible en esta plantilla de libro de trabajo junto con la capacitación que coincide con la adición de tiendas en nuestra plataforma Patreon, así que espero que obtenga los enlaces hacia abajo en la descripción sobresale de forma gratuita y eso es solo patreon es donde todo está bien, así que comencemos esta capacitación porque tengo mucho que compartir con ustedes, así que repasamos la descripción general y luego entraremos en los detalles de exactamente cómo creé esto en cada paso, cada línea de código, cada característica de función y formato condicional que le traeré, así que tome su bebida preferida, crearé esto en cada paso del camino como lo hemos creado y yo Voy a repasar todos los detalles contigo, así que lo que tenemos aquí es una aplicación relativamente básica en el sentido de que tenemos una pantalla de administración donde revisamos algunos valores predeterminados, tenemos categorías de elementos, ahora lo que me gusta de esto es categoría de estos artículos Las series son dinámicas, lo que significa que a medida que los usuarios agregan estas categorías aquí, esas pestañas se personalizan automáticamente aquí en consecuencia, por lo que si tuviéramos que cambiar algo, si quisiéramos agregar una adicional o si quisiéramos cambiar esto, tal vez a un tipo adicional de gasto. tal vez tenía trabajo de campo quería separar su trabajo de campo y su etiqueta local o de oficina tal vez agregar algo de oficina hagamos oficina tal vez tenga gastos de oficina asociados con un proyecto como ve allí ahora tenemos oficina aquí por lo que la oficina se actualiza automáticamente dentro las pestañas y continuaremos y traeremos eso de vuelta a donde estaba, que fue la comisión y, pero pueden ver cómo es muy versátil en el hecho de que podemos hacer esa creatividad, así que cuando la agregamos y la actualizamos automáticamente notamos que esa pestaña se actualiza automáticamente y, por supuesto, cuando hacemos clic en eso, notamos que todas las comisiones se agregan por trabajo, una de las mejores características de esto es una lista desplegable y es una lista desplegable dinámica, así que w Aquí tenemos un conjunto de elementos, estos elementos son para cualquier tipo de elemento que desee, sin embargo, cuando hacemos clic en la pestaña de equipo, vemos que es equipo en este momento, la gran característica de esto es que estas son en realidad las mismas celdas que nosotros. No estamos cambiando ninguna columna. No estamos cambiando ninguna fila en el pasado. Las características de nuestra pestaña tienen columnas ocultas o filas ocultas, pero en este caso no lo estamos haciendo, así que en realidad les mostraré un truco. Es más rápido, es más fácil. y es realmente beneficioso con algunos desafíos que podemos superar fácilmente, por lo que cada uno de estos son las mismas celdas, observe e9 correcto o digamos e13 en este caso e13 tenemos una lista desplegable disponible del servicio diario semanal correcto nosotros también puede completarse automáticamente si tenemos eso, así que tenga en cuenta que podemos hacer un servicio semanal o algo así simplemente escribiendo la w aunque no esté aquí, por ejemplo, digamos que tenemos un trabajo nuevo y vamos a ver. equipo bien o sigamos adelante y salvemos este trabajo primero Agregaré un cliente aquí, un nombre de proyecto aquí y luego lo que haremos es simplemente guardarlo. Ahora, cuando ingresemos al equipo, observe que no hay nada aquí. Tenemos información. Todo lo que debemos hacer es comenzar a escribirlo. y aparece automáticamente que se completa automáticamente. Le mostraré cómo crearlo. Sin embargo, en la misma columna, observe la misma columna e9 . el baño va a salir bien, así que fíjate que salió el baño, vamos a traerlo de nuevo, el baño allí está el tocador del baño, está bien, así que fíjate que tenemos varios elementos múltiples en el baño, así que tomará un poco de tiempo para que aparezca, fíjate que tenemos eso, así que también lo que quiero hacer es tener la capacidad de autocompletar y una lista desplegable dinámica, por lo que esta lista desplegable en particular es una manera cuando dependemos de ella depende de la pestaña, así que cuando hacemos clic en la pestaña de servicio que cae la lista descendente es mensual, semanal o diaria y servicios si hago clic en mano de obra, esa lista desplegable en la misma celda es por hora o mano de obra supervisada, por lo que es una dinámica basada en la taberna que es realmente útil, toma grandes proyectos como un trabajo de construcción o construcción y lo desglosa en el proyecto los detalles y los tipos basados ​​en una categoría muy, muy importante aquí y, por supuesto, tenemos la navegación podemos imprimirla que va a imprimirla ahora queremos imprimirla queremos todos los artículos asociados con eso queremos todos los artículos el equipo el viaje y la comisión queremos que todo se separe muy claramente, ya sea que lo imprimamos o lo enviemos por correo electrónico, así que le mostraré cómo hacerlo combina todos los artículos en el presupuesto particular y los combina todos de una manera muy organizada manera y, por supuesto, podemos crear un pdf si queremos crear un pdf de eso simplemente haciendo clic en pdf que va a crear una estimación de proyecto muy bien organizada y muy hermosa y le mostraremos cómo hacerlo y, por supuesto, imprimir y emma iling va a hacer lo mismo básicamente cuando creamos un correo electrónico, va a crear un asunto predeterminado y, por supuesto, tenemos ese mismo pdf aquí, pero ahora se ha adjuntado en un formato de correo electrónico, así que vamos a repasar todo eso Voy a mostrarte cada paso del camino, así que asegúrate de ver toda la capacitación aquí, de acuerdo, no olvides comentar a continuación, dale me gusta y suscríbete, respondo a cada comentario, está bien, así que tenemos un conjunto de categorías de elementos ahora, estas categorías de elementos se basan en lo que el usuario ingresó, son esas categorías de elementos que están visibles en los proyectos, son esas categorías de elementos que también se encuentran aquí dentro de nuestra base de datos de elementos, por lo que son los mismos, son esos mismos elementos categorías que cuando queremos crear agregar o editar existentes si hacemos clic aquí vemos que estamos editando el aviso correcto existente tenemos la categoría del artículo aquí arriba si queremos crear uno nuevo seleccionamos en una nueva fila y luego también tenemos disponible para h tenga uno nuevo, observe que el nombre de la categoría elementos es predeterminado; sin embargo, si estamos en el equipo y decidimos crear uno nuevo aquí, hacemos clic aquí, vemos que el equipo está configurado de manera predeterminada, por supuesto, el usuario puede cambiar eso, pero es bueno tener esa categoría configurada como predeterminada en función de la pestaña seleccionada, tenga en cuenta que la pestaña seleccionada cambiará su apariencia y no hay elementos allí, sin embargo , hay algunas características realmente geniales aquí y continúa con la pantalla de administración tenemos un estado derecho cada uno de nuestros proyectos puede tener un estado ese estado está disponible en una lista desplegable aquí ubicada en la línea final para que podamos tener todos esos estados para saber el estado y luego tenemos un per que también tenemos en la pantalla de administración que tenemos son algunos valores predeterminados del proyecto cuál es el margen de beneficio requerido tal vez voy a hacer algo con esto dentro de nuestra plataforma patreon tal vez haga un tablero adicional cuando lleguemos o pero lo pongo temporalmente porque quiero saber donde n estamos en o por encima de cierto margen de beneficio cuando alcanzamos que nuestro margen de beneficio se puede mostrar aquí dentro aquí nuestro beneficio es del 36 por ciento y eso se debe a que podemos rastrear tanto los costos como el precio del trabajo el total costo del trabajo y el precio total, por lo que es posible que desee saber cuándo alcanzamos un cierto margen de ganancia en una estimación, por lo que tenemos eso aquí, quiero saber si vamos a incluir el impuesto a las ventas y si somos lo que es el nombre de ese impuesto sobre las ventas y cuál es la tasa de ese impuesto sobre las ventas que está disponible cuando lo imprimamos veremos que ese impuesto sobre las ventas se vuelve obvio aquí mismo en el pie de página de eso tenemos un pie de página flotante dinámico que voy a mostrarle que el impuesto sobre las ventas del cinco por ciento se mostrará en ese pie de página, llegaremos a eso, por supuesto, todo eso y también continuaremos con los valores predeterminados del administrador. También queremos saber si vamos a incluir el fecha e impresión a veces no queremos usar la fecha , así que si cambiamos esto a no, no queremos para usar la fecha a veces usamos la fecha lo que quiero decir con fecha me refiero a esta columna de fecha justo aquí justo cuando la imprimimos tal vez no queramos usar la columna de fecha también si vamos a enviarla a nuestro clientes, ciertamente no queremos que el costo asociado con eso esté dentro de la impresión, por lo que si decidimos desactivar esto, no, ese costo no estará en esa impresión, también quiero saber el estado predeterminado del proyecto cuando creo un nuevo proyecto . cuál es el estado predeterminado escribiendo una oferta para que pueda crear cualquier estado que desee y luego puede tener ese estado disponible aquí y básicamente todo lo que significa es cuando creamos un nuevo proyecto qué queremos ubicarlo aquí escribiendo el bit de acuerdo y también cuál es el mensaje de pie de página predeterminado ese mensaje de pie de página predeterminado está aquí, así que tenemos tantos mensajes de pie de página como queramos el nombre y luego el mensaje en sí aquí y lo que eso significa es que cuando lo imprimamos queremos saber qué es el mensaje predeterminado y que def El mensaje predeterminado está justo aquí, el aviso en el pie de página dice que esta estimación es válida durante 30 días de la estimación, por lo que se puede cambiar en uno impreso y enviado por correo electrónico, estará visible en ese punto, por lo que tenemos esos valores predeterminados allí y el pie de página . eso es todo para la pantalla de administración relativamente simple. Tengo un fondo realmente genial que estoy usando tanto en el administrador como en el proyecto y ese fondo es básicamente una imagen que podemos tener cuando cambiamos el diseño de la página, así que si hago clic en el diseño de la página aquí y elimino el fondo que verá y si decido agregarlo voy a poner esa imagen trabajaré sin conexión no sé por qué aparece ese mensaje en Excel un poco molesto pero lo tengo disponible para ustedes y, por supuesto, lo haré disponible en Patreon junto con todos los demás íconos y todo lo demás aquí. Lo tengo disponible aquí dentro de nuestra plataforma Patreon para aquellos de ustedes que quieran tener su adicional. tenemos un estimador de construcción y tengo este backgro y la imagen aquí y esa es la que usaré, está bien, así que va a ser útil, así que vemos eso y hemos repasado la pantalla de administración. Tenemos una base de datos de proyectos donde está toda la información de nuestro proyecto. almacenado tenemos una identificación de proyecto tenemos la fecha de ese proyecto tengo el estado quiero saber el estado de ese proyecto la identificación del cliente el cliente y el nombre del cliente el nombre del proyecto el supervisor representante de ventas el mensaje de pie de página usado el total el precio de venta de costo y la ganancia estimada, por lo que vamos a tener todo eso allí y también vamos a usar el mapeo de datos para ubicar que, básicamente, este mapeo de datos está asociado si no ha visto mis capacitaciones antes del mapeo de datos nos ayuda a reducir el código a solo unas pocas líneas cuando asociamos columnas específicas con celdas específicas, lo que significa que la columna de fecha está asociada con n3 aquí mismo en el proyecto, por lo que n3 y cada uno de ellos está asociado con eso, así es como mapeamos estas columnas datos a la celdas específicas ubicadas aquí , así que también tenemos una base de datos de elementos que identifica la categoría, lo cual es realmente importante porque vamos a necesitar saber dónde colocar que tenemos el nombre del elemento, la descripción , la unidad, escriba el el costo del artículo y el precio de venta, lo que significa que cuando hagamos cambios aquí o cuando hagamos cambios en la ventana emergente, obtendrá la información, así que si quiero editar ese tocador de baño y quiero mirar aquí y veo eso artículos aquí y quiero agregar eso aquí, pero quiero hacer un cambio en ese artículo, tal vez quiera cambiar el costo, simplemente puedo hacer clic aquí y lo editará, tal vez el costo del artículo haya bajado a 199 entonces puedo continuar y actualizar eso y puedo actualizar eso aquí mismo cuando guardo que es esa información la que se colocará aquí y se actualizará automáticamente aquí si decido que voy a cambiar la cantidad que es se actualizará automáticamente, así que cuando cambio de pestaña aquí y voy a equ ipment y luego de vuelta a los elementos, queremos asegurarnos de que se cargue y se guarde automáticamente, de acuerdo, genial , eso vendrá, nuestros datos originales provendrán de los elementos, entonces tenemos los elementos del proyecto, ahora notamos que tenemos dentro de esto. proyecto numero cuatro tenemos varios articulos tenemos equipo no tenemos ningun servicio pero si queremos poner servicio servicio mensual o queremos algun tipo de servicio semanal podemos hacer eso y tambien el envio de mano de obra y toda la informacion asociada con eso, pero necesitamos realizar un seguimiento de ellos en una base de datos justo donde está ubicado , por lo que está ubicado aquí y eso significa que todos estos elementos están asociados con el proyecto número uno . Si echamos un vistazo al proyecto número uno, tenemos varios elementos. tengo un servicio de mano de obra, tienda, envío, viajes, por lo que todos estos están asociados con la identificación del proyecto 1. Si quiero ubicar eso, solo escribo 1 aquí, va a cargar esa identificación del proyecto, vemos que tenemos varios artículos que tenemos para el equipo. t tenemos algunos artículos de servicio, artículos de mano de obra, tenemos artículos de envío, viajes, por lo que esto elimina gran parte de la confusión cuando se trata de estimar, especialmente cuando tenemos estimaciones grandes, queremos desglosar esas estimaciones en cinco o seis o siete u ocho categorías diferentes podemos hacer eso muy fácilmente con esto ahora podrías agregar esto fácilmente a cualquier tipo de proyecto correcto estimación del proyecto o trabajos del proyecto o programación del proyecto podría agregarse fácilmente los hemos creado en el pasado bien pero necesitamos almacenarlos y aquí es donde están almacenados, así que queremos saber la categoría. Quiero saber la identificación del artículo. Quiero saber la fecha en que se agregó. Si hay una columna de fecha, el nombre del artículo y la descripción. la cantidad recuerde que la fecha aquí está asociada con esta fecha específica aquí, así que eso es importante y también quiero saber la unidad correcta cuántas unidades son un par cada uno el costo del artículo el costo total el precio del artículo el precio total de las filas del proyecto es culo ciado y eso significa que la fila 9 10 u 11 está asociada con esta fila aquí 9 10 u 11. Eso significa que cuando guardo esa información quiero asegurarme de que vuelva exactamente a la misma fila que guardó antes, por lo que es importante para guardar la fila que está asociada con eso y también quiero saber la fila de la base de datos cuál es la fila asociada con esto si esta es la fila 4 fila 5 fila 6 quiero asegurarme de decir que podemos hacer eso con la fórmula fila bien excelente y, por supuesto, por último, en nuestra base de datos tenemos una lista de clientes ID de cliente nombre dirección ciudad estado código postal teléfono y correo electrónico relativamente simple con los clientes cuando agrego o actualizo un nuevo cliente quiero asegurarme de que se clasifique en orden alfabético así que si vuelvo a los proyectos y hago clic en digamos que queremos un nuevo trabajo y ponemos digamos john smith y ya no está en la lista quiero poder agregarlo muy fácilmente simplemente dice aquí un pop-up john smith no es un cliente actualmente ¿le gustaría agregar este cliente? sí va a aparecer háganos saber que podemos poner una dirección para ese cliente grita uno dos tres cuatro cinco calle principal está bien y luego tenemos la california y luego solo ingrese un código postal quiero que se agregue automáticamente y luego nosotros John puede hacer eso en Gmail, así que simplemente haga clic y guarde, automáticamente se cargará esa información y si decido que quiero editar eso, se va a editar, vamos a extraer esa información si quiero hacer un cambio muy, muy simple . y quiero guardar que quiero asegurarme de que todo se guarde en una base de datos y que se guardará aquí abajo, así que tenemos esa nueva identificación de cliente que se agrega automáticamente, tenemos la calle y toda la información que se agrega aquí y podemos sacarlo de nuevo muy fácilmente insertar y quiero asegurarme de que ese nombre se ordene en la lista alfabética, así que observe que el nombre es nuevo, el nombre está aquí y se ordena alfabéticamente, así que le mostraré cómo para hacer eso también y por supuesto En ese caso, vamos a poder agregar este panel realmente genial donde tenemos un gráfico de anillos y un gráfico circular . Queremos saber los precios por categoría y eso se basará en el proyecto que se seleccionó , así que estamos vamos a conseguir que tenemos es una aplicación muy, muy, es una especie de aplicación estricta, solo esta característica, pero en realidad hay tantas características interesantes, características integradas, la única forma de saber cuántas características si te quedas con nosotros, así que sé mis entrenamientos. tienden a ser más largos, pero les garantizo que estarán repletos de excelente contenido, nuevas características de gran aprendizaje que puede aplicar en sus propias aplicaciones hoy, está bien, si desea aprender cómo crear estas aplicaciones usted mismo y, por supuesto, venderlas por ingreso pasivo echa un vistazo a nuestro programa de tutoría, de hecho , tengo un nuevo mentorship express que tiene el mismo contenido de mi tutoría, pero está empaquetado en cinco meses en los que obtienes seis horas a la semana de capacitación y es un nuevo precio bajo i Incluiré ese enlace hacia abajo. a continuación, está bien, genial, entonces lo que vamos a hacer aquí, la primera parte es cómo creamos esta función de pestaña dinámica realmente genial, lo que significa cómo creamos estas pestañas automáticamente si queremos agregar una nueva si quiero agregar una nueva, quiero que entre automáticamente y notar automáticamente ahora que esa prueba está aquí, por supuesto, no hay elementos debajo de eso, pero podríamos crearla fácilmente y cómo queremos hacerlo si decido que quiero crear una marca nuevo elemento para esa prueba, podría hacer eso y automáticamente estará aquí muy, muy bueno, muy, muy dinámico, muy fácil de usar si elimino eso aquí, quiero que las pestañas de proyectos se actualicen automáticamente aquí, observe que la prueba se ha ido, entonces, ¿cómo? lo hacemos muy bien , está bien, entonces lo primero que queremos hacer es poder crear estas pestañas a través de él ahora todas estas pestañas ya se han creado si miramos en el panel de selección hay un máximo de ocho porque tener una restricción de espacio No, entonces, si echamos un vistazo, digamos que creo que está justo aquí en un botón de elemento justo aquí, grupo 41, creo que esto es lo que debería haber actualizado, está bien , así que si echamos un vistazo a este aquí, vea esta pestaña aquí. esta pestaña ya se ha creado, se llama categoría ocho, así que tenemos un máximo de ocho categorías, un máximo de ocho categorías, sin embargo, no hay nada en la octava, por lo que, por supuesto, se ha ocultado, se ha ocultado aquí mismo, así que todo lo que tenemos que hacer es básicamente mostrar y oculte estas pestañas en consecuencia y, por supuesto, le mostraré cómo obtenemos el contenido de esas pestañas, un truco realmente genial , cómo obtenemos los totales de esas pestañas, entonces, ¿ cómo hacemos eso? exactamente cómo creamos la posición de esto no importará porque es vba el que se ocupa de esa posición automáticamente, así que cuando lo agreguemos, observe que esa prueba está automáticamente en el lugar correcto aquí, así que echemos un vistazo a la macro que se crea ahora que macr o comienza cuando hacemos un cambio en cualquier lugar de c7 a c14, así que vamos a entrar en vba y ver exactamente cómo cambiar esas celdas puede crear y actualizar automáticamente esas pestañas en consecuencia, está bien, por supuesto, eso vendrá dentro de nuestro vba si desea acceder a vba, simplemente haga clic en los desarrolladores o alt f11 como un acceso directo que lo llevará allí y tenemos varios módulos aquí y tenemos un módulo de cliente, un módulo de elementos que cubrirá el proyecto de elementos que se centra en el proyecto, guardar, actualizar, eliminar el proyecto y las macros de la hoja del proyecto, que son algunas de las que están en la hoja, eso es lo que vamos a comenzar, así que en la pantalla de administración aquí solo algunas líneas de código cuando hacemos una hoja de trabajo cambiar justo cuando estamos haciendo un cambio de c7 a c14 ahí es donde se ubican nuestras categorías vamos a escribir una macro llamada actualizaciones de pestañas de categorías actualizaciones de pestañas de categorías esa es la macro que se ejecuta, actualizará automáticamente esas pestañas que está ubicada en el módulo llamado macros de hoja de proyecto y aquí está justo aquí es la primera macro, está bien , entonces lo primero que quiero hacer es determinar cuántos tenemos en este momento . Tengo un rango con nombre. Quiero saber cuántos. categorías que tenemos si buscamos en la lista de formularios , tenemos un administrador de nombres que estamos usando, por supuesto, nuestras categorías se llaman categorías aquí, la primera aquí y estamos usando un rango dinámico con nombre para crear eso usando la fórmula de compensación así que tenemos siete elementos en nuestras categorías, realmente lo que realmente quiero hacer es determinar cuántos hay, cuántos elementos hay, así que necesitamos recorrer todas esas categorías y crear esas pestañas o mostrar esas pestañas y colóquelos en consecuencia, está bien, así que lo que tenemos aquí es ese rango de nombres en particular, ahora con ese rango de nombres, lo que quiero hacer es determinar cuántos hay allí, así que vamos a crear una variable larga llamada cantidad de categoría y lo que estamos vamos a hacer es vamos a usar la aplicación la función de la hoja de trabajo cuenta una cuenta a por supuesto es la misma que estaríamos en la fórmula y quiero determinar dentro de este rango con nombre del administrador cuántos elementos hay en eso y esto va a ser siete ahora que sabemos cómo muchos de lo que queremos hacer es determinar el ancho ahora, si miro bien en los proyectos, quiero saber el ancho de cada una de estas pestañas, quiero asegurarme de que todas tengan el mismo ancho, está bien, pero quiero estirarlo automáticamente en estas columnas desde la columna d hasta la columna li . d a través de l todas las columnas de esa manera si aumentamos las columnas o las reducimos, van a ir junto con eso. Quiero saber cuántas de esas categorías deben caber aquí y dividir eso y determinar la cantidad de ancho para cada uno . pestaña en particular para que podamos hacer eso con solo un poco Un poco de matemáticas que el ancho de cada una de esas formas simplemente será el ancho de esas columnas de d a l y lo dividiremos por el número de categorías, por ejemplo, si el ancho fuera 70 y tuviéramos particular siete cantidades, sabríamos que tendríamos un ancho de 10, está bien, así que una división simple para hacer eso, quiero establecer esa posición inicial izquierda y la posición inicial de tom, ahora recuerde que todos estos ya se han creado, se llama categoría 1 categoría 2 categoría tres, así que ya están todas nombradas, son todas visibles o están ocultas, pero todas están en la hoja, las ocho pestañas ya están en la hoja, así que para hacer eso, lo que quiero hacer es quiero establecer esa posición izquierda inicial, vamos a establecer esa posición izquierda inicial como la columna d y la posición superior en función de la fila siete, por lo que la fila siete será esa, así que eso es lo que vamos a establecer. la izquierda solo se basa en la columna d7 o la columna d, cualquier fila estaría bien, así que una vez que tengamos esa posición superior ción y la posición izquierda inicial, podemos recorrer todas las formas y asegurarnos de que estén posicionadas correctamente, así que para hacer eso vamos a crear otra variable larga para el número de categoría igual a 1 2 8 Ahora vamos a revisarlos todos, necesitamos saber si los estamos mostrando o escondiendo y, por supuesto, dónde están posicionados, de modo que si el número de categoría es menor que la cantidad de categoría, significa que tenemos ocho, digamos tenemos nuestra categoría número siete pero llegamos al número ocho si llegamos al número ocho vamos a hacer otra cosa bien vamos a ocultar esa categoría de lo contrario vamos a mostrarla ahora para mostrarla haríamos lo siguiente así que ya tenemos las ocho formas, así que con la categoría y el número de categoría que significan en cualquier lugar del uno al ocho, vamos a establecer la posición izquierda en la posición izquierda la posición superior en la parte superior el ancho de la categoría ese ancho único que hemos ya calculado y queremos t o asegúrese de que sea visible para qué sirve vamos a actualizar esa posición izquierda quiero moverlo hacia la derecha esa posición izquierda pero qué tan bien es la posición actual además vamos a moverlo el ancho de esa forma a la derecha el ancho exacto de esa forma la moverá hacia la derecha la cantidad exacta que queremos ocultar, de lo contrario, la categoría a la derecha, lo que significa que de lo contrario, digamos que estamos en el número ocho, sabemos que no hay ocho categorías, por lo que queremos ocultar el octavo, así que pongamos esas categorías ocultas ocultas o inexistentes ocultas para categorías inexistentes inexistentes, está bien, así es como todo lo que tenemos que hacer para crearlas es relativamente simple, pero ahora lo que quiero hacer eres tú observe que no hay texto aquí, no estamos colocando el texto que el texto ya se ha colocado correctamente y observe que el texto es dinámico, por lo que están vinculados a una celda en particular porque quiero que el texto incluya la categoría del elemento que es dinámico basado en Independientemente de lo que ingrese el usuario aquí y dos, quiero saber los totales de esa pestaña de esa pestaña en particular y, a medida que los aumentamos, quiero que también aumenten, por lo que este número de elementos 46 17 cambiará cuando el usuario lo cambie automáticamente como Tan pronto como realicen las actualizaciones , aquí está la parte difícil y un gran desafío y, por supuesto, le mostraremos exactamente cómo hacerlo. Aquí está la parte difícil, justo cuando pasamos a la pestaña . Entonces, ¿cómo hacemos que esto se guarde y nos demos cuenta de que estas son las mismas celdas, pero lo que quiero asegurarme de hacer es tan pronto como me mude vamos a guardar estos datos? Toda esta información se guardará en esta base de datos aquí se verá guardada hasta el final, entonces, ¿cómo puedo saber y asegurarme de que si estamos en una pestaña específica, son esos datos los que se actualizan automáticamente, por lo que estos datos aquí son los totales aquí? proviene de nuestra base de datos, lo que significa que proviene de aquí, por lo que Vamos a entrar en eso en un momento en cuanto a cómo lo creamos, pero queremos asegurarnos de que estamos totalmente estos totales en la pestaña actual se actualizan a medida que hacemos cambios o cuando notamos que la pestaña el total en esta pestaña cambia automáticamente a medida que agregamos elementos automáticamente aquí, por lo que podemos ver que a medida que agregamos aquí un elemento diferente, se actualizará automáticamente muy fácilmente, está bien, entonces, ¿cómo lo hacemos bien, por supuesto, tenemos que vincularlo a una celda ? si echamos un vistazo aquí haciendo clic aquí, vemos que esto está vinculado a la celda b17 b18 y así sucesivamente, así que echemos un vistazo a esas columnas de llamadas de administrador a y b y veamos cómo las hemos vinculado, así que lo primero que lo que queremos hacer es vincular este particular a, por supuesto, nuestro administrador. Podríamos vincularlo fácilmente directamente aquí, por lo que hemos vinculado esto . Puedo fácilmente, probablemente sea más fácil, simplemente hacer esto es igual a administrador, lo que sea que se encuentre aquí. necesito una fórmula indirecta para ese algo por otra razón, así que aquí está lo que es, así que yo básicamente tengo esto, estos están vinculados exactamente solo para que sea un poco más fácil vincularlos directamente a las categorías en nuestra pantalla de administración a continuación tenemos b17 hasta b24 esta es la celda que está vinculada directamente a la pestaña aquí y lo que quiero hacer es básicamente crear un total y el total será para todo lo que tenemos para esta categoría, así que he creado algunos rangos de nombres que nos ayudarán con ese total y voy a le mostraré cómo funciona, así que repasemos algunos de esos rangos con nombre porque lo que realmente queremos hacer es sumar esos totales en función de lo que se encuentra en esta base de datos, la base de datos de elementos del proyecto, así que si vamos a las fórmulas y luego nombramos gerente, veremos algunas de esas fórmulas ahora los elementos del proyecto tenemos uno llamado categoría de elementos del proyecto que se asociará con la categoría porque solo estamos sumando totales en función de una determinada categoría que es muy importante y también va a ser así que vamos ing para usar este desplazamiento para hacer eso y, por supuesto, también queremos saber para una identificación de proyecto específica, tiene que ser para la identificación de proyecto seleccionada y no para todos los proyectos , también queremos saber el costo total que será ayuda ayuda nosotros para algunos de nuestros gráficos y también tenemos el proyecto, el precio total que vamos a usar, el precio total, así que tengo estos cuatro rangos con nombres particulares que nos ayudarán en esas fórmulas para que el La idea básica era que quiero sumar todo el precio total de los cuatro artículos para el proyecto uno y quiero que ese total aparezca directamente aquí . Ahora todo está bien, así que es muy fácil simplemente usar una suma, si alguna, si se basa en esta identificación del proyecto. proyecto dos basado en esta categoría la categoría seleccionada ahora esa es la categoría seleccionada que aún no hemos revisado va a aparecer directamente en b5 cualquier categoría que seleccionemos b5 va a asumir esa categoría así que esta es la categoría así que básicamente lo que yo quiero hacer es quiero sumar todos los categorías y luego lo que quiero hacer es asegurarme, sin embargo, hay un pequeño truco, así que vamos a basarnos en lo que hay en la base de datos, pero ¿y si hago esto? ¿Y si sumamos todos los elementos basados ​​en la base de datos ? eso se ha guardado, ¿qué pasa si agrego uno nuevo aquí ? según la base de datos, ¿cómo puedo obtener esto aquí? decimos que ciertamente actualizaremos esto, solo sume esto, eso está bien, eso es genial, pero ¿qué pasa cuando cambiamos a esta pestaña? ¿Cómo me aseguro de que esté actualizado? Así que la idea es esta la pestaña seleccionada cualquiera que sea la pestaña seleccionada vamos a usar este total aquí esta columna aquí l sin embargo para cada otra pestaña vamos a usar lo que hay en la base de datos tan pronto como cambiemos de pestaña guardará la base de datos i' Así que les mostraré eso, pero esa es la idea, cualquiera que sea la pestaña seleccionada en la que estemos, se sumará a este total. aquí se basará en lo que se encuentra en esta columna, todo lo demás se ubicará en lo que está en la base de datos . fórmula bien, primero que nada, quiero a17 a17 es, por supuesto, esa categoría de elemento en particular. Quiero esa categoría de elemento como la primera parte correcta porque quiero mostrar ese elemento y luego quiero espacio, así que vamos a poner un espacio. ahí y luego viene el total y básicamente la pestaña seleccionada estamos usando la columna l si no es la pestaña seleccionada vamos a basarnos en la base de datos así que aquí está aquí si b5 es igual a a17 b5 significa la categoría seleccionada es igual a a17, luego vamos a sumar lo que esté en la columna l, así que vamos a usar la suma que estamos usando y, por supuesto, la hemos envuelto alrededor del texto que quiero redondear hacia arriba, no quiero, no quiero No quiero , no tengo mucho espacio en estas pestañas, así que no queremos los decimales correctos, así que la razón por la que quiero para deshacerme de los puntos decimales, usaré el redondeo hacia arriba y lo agregaré a la suma , así que básicamente voy a sumar todo lo que está en la columna l y lo redondearé hacia arriba. no quiero decimales, así que voy a mostrar este cero y lo quiero en este formato, está bien, entonces quiero el símbolo de moneda, así que lo que va a hacer es sumar todo en la pestaña, pero solo si b5 es igual a a17 , ¿ verdad ? en este caso, estamos en el equipo, por lo que en este caso aquí es b5 es igual a un equipo de 18, esa es la pestaña en la que estamos en la misma fórmula aquí. Sin embargo, si no es la pestaña seleccionada, quiero extraer la suma de la base de datos . y vamos a usar la suma si para eso todavía vamos a usar el redondeo pero esta vez vamos a usar la suma si quiero saber el precio total del proyecto de eso vamos a estar sumando la base de datos y quiero saber el proyecto basado en esta identificación de proyecto ubicada en n2 n2 es nuestra identificación de proyecto número dos y también quiero saber según el elemento del proyecto bas ed en la categoría de a18 a la derecha, así que quiero saber todos los elementos para ese proyecto específico para el equipo y quiero sumar eso para que de esa manera obtengamos el total independientemente, lo que significa que la pestaña seleccionada siempre es será dinámico en función de los elementos que agreguemos, por lo que cuanto más agreguemos, más aumentará este número, sin embargo, tan pronto como cambiemos , ya se guardó que 815 ya se guardó en la base de datos porque cambiar estas pestañas está ejecutando la macro que En un momento pasaré a esa será la próxima macro que revisaremos , automáticamente guardará estos, así que acabo de agregar el servicio diario y semanal. Si miramos en el elemento del proyecto, nos desplazamos hacia abajo y los vemos. elementos servicio semanal diario aquí esos dos elementos se acaban de agregar para el proyecto dos dos elementos servicio derecho 20 esos son los números de elementos, así que tenemos toda esta información guardada en la base de datos para que la fórmula sumifs ahora totalice el servicio y me va a agregar n estos dos elementos, por lo que lo guardó, por lo que es realmente genial porque lo guarda automáticamente tan pronto como cambiamos de pestaña ahora cambiamos de pestaña si aún no lo sabía tan pronto como cambiamos de pestaña y vamos a entrar en esta macro va a cargar solo los elementos de ese proyecto o va a cargar solo los equipos del producto, solo los servicios que se van a cargar en esta sección, por lo que es muy, muy simple, solo usaremos un filtro avanzado para hacer está bien, pero en este momento , quería que entendiera cómo llegamos a esta fórmula y supongo que básicamente para resumir esa pestaña seleccionada justo en esa pestaña seleccionada, vamos a usar esta suma cada dos pestañas; de lo contrario , la sumaremos de la base de datos está bien, siempre y cuando los hayamos vinculado a las celdas específicas, así es como obtenemos este contenido dinámico en los encabezados de estas pestañas y podemos obtener una suma de todos esos muy fácilmente, está bien, lo estoy me alegro de haber repasado eso contigo ahora pasemos al siguiente que es que las pestañas seleccionadas ahora cuando selecciono las pestañas qué quiero hacer básicamente lo que quiero hacer es borrar quiero asegurarme de guardar los cambios que el usuario está haciendo vamos a ejecutar esto macro y básicamente es esta macro aquí la que va a guardar ese proyecto, la única diferencia es que no quiero que aparezca este mensaje de desvanecimiento, solo quiero que aparezca este mensaje desvanecido cuando el usuario haga clic en guardar, aunque todo lo demás es igual , así que cuando hacen clic aquí lo primero que sucederá es que lo guardarán lo segundo que sucederá es que quiero colorearlos de manera diferente ahora no podemos usar el formato condicional porque no son celdas, son formas, está bien y también quiero asegurarme de que esté en negrita y quiero cambiar los colores, observe que va de azul claro a azul medio; sin embargo, normalmente es de azul medio a blanco, está bien, así que quiero cambiar eso y queremos cambiarlo a negrita y lo que yo también quiero hacer es quiero para determinar la categoría de la pestaña seleccionada que es categoría aquí elementos y quiero que se use como criterio para que podamos tomar todos estos elementos del proyecto y solo queremos cargar aquellos elementos que están asociados uno con este proyecto y dos con esta categoría bien, y queremos que solo esos elementos aparezcan como resultados y luego traeremos solo esos elementos y los traeremos directamente dentro de los proyectos aquí, bien, veamos esa macro ahora y esa es la siguiente macro llamada selección de categoría que es el macro que ya ha sido asignada a estas pestañas individuales, estas formas aquí ya han sido asignadas a esta llamada selección de pestaña, así que dentro de esta macro, lo que vamos a hacer es, en primer lugar, lo que quiero saber es que quiero asegurarme de que guardé bien este proyecto, es muy importante si voy a cambiar de pestaña, necesito asegurarme de guardarlo y, por supuesto, quiero asegurarme de que el proyecto se guardó y eso significa que cuando hacemos clic en un nuevo proyecto si intenta cambiar t abs , quiero que el usuario diga, por favor, guarde este proyecto antes de cambiar de pestaña a la derecha, así que todo lo que tienen que hacer es poner un clic de cliente en guardar y se guardará automáticamente, así que eso es importante y ¿cómo sabemos eso? si b2 y echemos un vistazo a algunos de estos , tengo una carga de proyecto, quiero saber cuándo estamos cargando el proyecto ahora, esto es importante porque , en un caso, vba hará algunos cambios aquí mientras cargamos en esos tabs vba va a hacer un cambio en otra instancia el usuario va a hacer un cambio quiero diferenciar entre esos dos tipos de cambios este b1 me va a ayudar a hacer eso bien cuando vba está haciendo esos cambios cargándolo en este va a pasar a verdadero y volver a falso sucede muy rápido también quiero saber que la fila del proyecto cuál es la fila que está asociada con este proyecto tengo una rama de nombre llamada aquí un rango con nombre llamado id del proyecto y yo Tengo una identificación de proyecto ubicada aquí también, así que quiero saber qué fila está asociado con la identificación del proyecto 2. Si miramos en la base de datos del proyecto , vemos que la identificación del proyecto 2 está ubicada en la fila 5. Entonces, voy a usar un rango con nombre y vamos a usar una coincidencia para hacerlo, así que solo puedo usar esta coincidencia basada en n2, la identificación del proyecto, vamos a agregar 3 porque queremos extraer el número de fila, así que eso nos llevará. También quiero saber la próxima identificación del proyecto, vamos a usar la fórmula máxima del proyecto asegurándonos de que todos sean numéricos y agregaremos uno porque queremos el siguiente si no hay datos o hay un error, simplemente lo revertiremos a uno quiero hacer la fila del elemento seleccionado que tengo formato condicional aquí algunas reglas diferentes que la fila seleccionada va a cambiar aquí a medida que seleccionamos otra cosa, así que si echamos un vistazo al formato condicional tenemos tres reglas diferentes vamos a administrar las reglas y vamos para usar uno para la fila de selección basada en b4 simplemente resaltándolo en negro en negrita negra y luego, por supuesto, el bac azul kground , entonces tengo un formato condicional particular color muy ligeramente blanco color muy ligeramente azul es muy muy leve para las filas impares esto funcionará y para las filas pares esto funcionará observe que e9 derecha e9 es consistente, esa es nuestra fila inicial y también es la fila que vamos a usar para el aviso de aplicaciones que comienza y se aplica de d9 a l200 muy bien , así que tenemos ese formato condicional que se activará por el cambio en esto, por lo que la selección el evento de cambio en el que entraremos pondrá las filas que se hayan seleccionado aquí tenemos una categoría de elemento aquí ahora esto y tenemos la pestaña de elemento aquí ahora cuando seleccionamos una pestaña de elemento es como aquí esto va a cambie a 2. la macro que estamos a punto de repasar va a cambiar esto a 2 automáticamente y luego tenemos el equipo, así que lo que quiero hacer es tomar este 2 y quiero sacar el equipo de él ¿Cómo vamos a hacer eso? Bien, podemos hacerlo a través de ugh índice ahora nos damos cuenta de que tenemos un rango con nombre llamado categorías, ese es el mismo rango con nombre de la pantalla de administración, es este justo aquí, así que si sé que las categorías están aquí y quiero sacar el segundo elemento de las categorías porque es un 2, simplemente puedo usar el índice para eso y vamos a extraer ese equipo, por lo que usar esa fórmula de índice de las categorías basadas en el número de b6 va a extraer esas categorías, así que todo lo que tenemos que hacer con nuestra macro es simplemente hacer esto deshacerse de la categoría de palabras eliminarla en nuestra macro determinar el nombre de la forma que la llamó usando el color de la aplicación eliminar la categoría de palabras y qué nos va a dejar nos va a dejar con uno de los dos o los tres, voy a colocar ese número directamente dentro de b6, así que vamos a repasarlo ahora mismo, así que ciertamente queremos asegurarnos de que b2 contenga un valor si no es así, hágale saber al usuario que guarde ese proyecto. para desactivar la aplicación scr He estado actualizando temporalmente y vamos a hacerlo otra vez. Voy a ejecutar la macro que se va a guardar o actualizar. Quiero asegurarme de que estamos guardando. Entraremos en esta macro en un momento. Este es el macro que guarda el proyecto, lo que hará es guardar cualquier cambio nuevo en los elementos nuevos en esta fila automáticamente cuando cambio la pestaña y de esa manera ya está guardado en la base de datos, así que cuando regrese, podemos cargar fácilmente esos elementos aquí se recuerdan porque están guardados dentro de la base de datos, por lo que esta macro se encargará de eso justo antes de que hagamos cualquier otra cosa, entonces lo que quiero hacer es determinar el número de categoría, recuerde que el número de categoría se basa en el El nombre de la forma aquí es el nombre de la forma. Si intentamos ejecutar esta macro a través de esto, a menudo obtendremos un error . use la llamada de la aplicación, debe ejecutarla desde una forma que llamó entonces, lo que quiero hacer es establecer ese número de categoría y, como dije antes, si elimino la palabra categoría y la reemplazo con nada usando el comando de reemplazo, nos dejará con ese número de categoría. para poner ese número de categoría en la variable y tomaré eso, lo pondré directamente en b6, ese es el número de categoría, así que ahora que sé el número de categoría, puedo configurar automáticamente ese elemento para que sepamos que es muy importante porque quiero ese número de categoría porque necesito extraer el nombre directamente de él ese nombre nos ayudará en estas fórmulas eso fue muy importante necesitamos saber la pestaña seleccionada b5 nos permitirá saber el nombre de eso categoría seleccionada en esa pestaña seleccionada bien, ahora lo que quiero hacer es restablecer todas las mayúsculas ahora lo que queremos hacer restablecer todas las pestañas es quiero establecer esa pestaña seleccionada quiero cambiar esos colores de azul a blanco de blanco a azul y quiero ponerlo en negrita, así que lo primero lo que queremos hacer es restablecerlos a todos a su color original, que es de azul claro a blanco y sin negrita, así que eso es lo que haremos para la categoría número uno a ocho, tenemos todas esas formas que voy a configurar ese relleno que se llenó de azul a blanco y eso se puede hacer aquí mismo categoría número de categoría el relleno que queremos degradar de color y para obtener esto para obtener esto todo lo que hice fue simplemente ejecutar una macro mientras cambiaba el color y se me ocurrió este y un poco de otro código. Simplemente extraje eso, así que resultó ser un degradado horizontal dos horizontal número dos, así que eso es todo y luego el reverso fue solo uno relativamente fácil y yo queremos que el tornillo sea igual a la derecha falsa, tomamos todas las formas y hacemos que el tornillo sea falso a la derecha, no lo queremos en negrita y queremos volver a ese color original, ese color original es este azul claro en la parte superior y luego blanco en la parte inferior, sin embargo, para el seleccionado queremos hacer algo algo diferente, ¿cómo sabemos el seleccionado porque lo tengo en una variable llamada categoría seleccionada el número aquí si sé que las formas correctas de la categoría y la categoría seleccionada esta es la que hemos seleccionado esta somos va a cambiar, sigue siendo el degradado de dos colores, pero el número va a cambiar a uno, este en particular simplemente está cambiando la posición horizontal de arriba a abajo y de abajo a arriba, realmente no necesitamos cambiar los colores, son los mismos colores Solo estoy invirtiendo los colores de arriba hacia abajo y de abajo hacia arriba, por lo que este hará exactamente lo contrario, va a pasar de blanco a azul claro y es el mismo azul claro que estamos usando para colorear . así es, si echamos un vistazo a ese formato, esa forma, vemos que tenemos ese relleno aquí básicamente son solo los dos colores del blanco o en realidad es bastante azul claro a este azul claro, así que son solo esos dos colores, así que todo lo que estoy haciendo dentro de vba es simplemente basica Solo estoy invirtiendo la dirección usando estos vamos a mover eso aquí así que solo lo estoy invirtiendo vamos a mover eso aquí solo lo estoy invirtiendo dentro de vba justo aquí estoy invirtiendo esto así que uno de ellos es tipo uno aquí y uno es el tipo dos, así que todo lo que estamos haciendo es invertir estos dos hacia abajo y hacia arriba, hacia abajo y hacia arriba, pero lo estamos haciendo en vba, por lo que es relativamente simple de esa manera , por eso solo tenemos que cambiar uno a dos y dos uno así que esta es la categoría seleccionada de blanco a azul y luego también vamos a tomar esa fuente y ponerla en negrita, así que esa es la única diferencia relativamente fácil de cambiar esas pestañas a la derecha, así que es muy fácil, no necesitamos múltiples formas, no lo hacemos. No necesitamos ocultar y mostrar formas, solo necesitamos cambiar la dirección ya que estamos usando el mismo color y eso va a diferenciar esa pestaña seleccionada de la otra para que le dé esa pestaña para que el color se mezcle si está va a hacer esto , solo asegúrese de que el azul en el tablero a continuación sea suficiente y wa no para asegurarme de que la altura y ahora otra cosa buena aquí hay otra cosa que es un poco complicada que no necesariamente sabrías realmente ampliar eso ahora no queremos bordes la razón por la que no quiero bordes en estos es porque para mira, no hay borde en esta forma y no quiero un borde porque no quiero una separación, así que todo lo que hice fue bajar esta forma debajo, pero dijiste que no hay borde, pero ¿cómo obtengo esto? borde que observe que parece que hay un borde a la izquierda en el pozo superior que en realidad es una sombra a la derecha, así que cuando formateo esa forma, todo lo que he hecho es darle una sombra específica en eso y eso va a ayudar a una ranura entonces, si echamos un vistazo a la sombra , le he dado un poco de sombra y estamos usando esta sombra de aquí usando la sombra superior izquierda aquí, pero la esquina superior izquierda creo que es esta aquí, lo siento, está un poco fuera de la pantalla así que le estamos dando una sombra, movámoslo solo para que sepas qué sombra uso, soy voy a traerlo un poco aquí para que podamos verlo así que es este este de aquí ahora está en la pantalla así que es este de aquí así que la sombra superior izquierda es lo que le he dado y estamos dándole simplemente un punto y un punto, por lo que es muy, muy pequeño, pero es la sombra la que crea ese efecto de borde y de esa manera no necesitamos poner un borde real porque en Excel podemos controlar el borde superior izquierdo y derecho e inferior así que solo podemos controlar el borde o no tener borde, pero podemos usar una sombra, así es como obtenemos este efecto, por lo que nos da el efecto de pestaña; de lo contrario, no tendríamos ningún borde, así que es un buen efecto sin tener que usar bordes. está bien, lo colocaré allí, pero vba podría encargarse de eso por nosotros, solo queremos asegurarnos de que esté lo suficientemente bajo para que combine los colores, nos dé una apariencia agradable y eso es todo lo que tenemos. para hacerlo de nuevo, es la sombra que estamos usando, no un borde, muy útil para darnos esa pestaña ef perfecto sin tener que usar bordes porque no queremos que los bordes lo separen, queremos que la combinación lo muestre, está bien, así es como lo di dentro del vba, así es como puede darle esos colores en particular, está bien, ahora lo que quiero hacer. Si quiero establecer esa lista de elementos seleccionados, es muy importante que conozcamos la lista y por qué es tan importante. Echemos un vistazo aquí . Tenemos una fecha. Tenemos una lista definida dentro. Observe que en esta lista vemos que tenemos un mosaico. vio alquiler, solo tenemos esos equipos, sin embargo, cuando hacemos clic en elementos, la misma celda aquí a la derecha, pero una lista diferente, la misma celda, una lista diferente, a la derecha, ¿cómo hacemos eso? Podemos hacerlo con un rango dinámico con nombre si llevamos a casa los datos y entramos en el validación de datos aquí vemos que se llama pestaña de elemento seleccionado, tenemos un rango con nombre llamado pestaña de elemento seleccionado y eso vendrá directamente de nuestra lista de elementos, así que lo que quiero hacer es crear un rango con nombre dinámico llamado lista de elementos y está basado en los artículos y así th Eso significa que, independientemente de lo que hayamos seleccionado, quiero conocer todos los elementos únicos para este servicio, por lo que si hago clic en proyectos y hago clic en elementos y volvemos a esta lista de elementos, observe que tenemos una lista diferente con los mismos datos de rango con el mismo nombre. mismo rango de nombre exacto, se llama la lista de elementos seleccionados, veamos eso una vez más, el administrador de nombres correctos y luego tenemos la pestaña de elementos seleccionados aquí, el mismo nombre, estamos usando los elementos compensados ​​l2 y luego una fila regresiva a, así que aquí hay un rango con nombre basado en los resultados de un filtro avanzado ahora lo que quiero hacer es tomar todos nuestros elementos que quiero crear quiero saber solo esos elementos únicos basados ​​en los elementos y quiero que aparezcan aquí aviso que la categoría seleccionada está aquí si la cambio correctamente de nuevo podríamos simplemente hacer categorías de índice b6 en realidad solo puedo hacer creo que es un poco más fácil igualar a la derecha hagamos iguales porque siempre sabemos que la pestaña seleccionada será aquí adentro y aquí arriba no No necesito basarme en el número porque lo tengo aquí en b5, así que sabemos que en b5 a medida que b5 cambia, sabemos que el artículo cambiará aquí dentro, va a cambiar el equipo, así que si conozco el equipo que tenemos. y quiero saber todos los elementos asociados quiero que esos resultados aparezcan aquí podemos hacerlo en vba con un filtro avanzado vamos a determinar la última fila tenemos nuestros criterios la categoría y queremos el único elementos para esa categoría son estos elementos únicos los que componen nuestra lista desplegable, por lo que no necesitamos cambiar la validación de datos porque el contenido de ese rango dinámico con nombre cambiará automáticamente en función de los resultados de este filtro avanzado, por lo que es ese filtro avanzado que vamos a ejecutar ahora mismo dentro para crear esa lista de elementos seleccionados determinando la última fila en función de la hoja de elementos ahora, si son menos de cuatro, vamos a salir del conjunto y luego todo lo que hacemos es crear un filtro avanzado tenemos un criterio nuestro advan el filtro ced va de a3 a g aquí a g nuestro criterio es j2 a 3 y nuestros resultados van a entrar en l2 y eso es justo lo que hemos hecho aquí j2 a j3 y luego l2 de ahí vienen nuestros resultados que estas pocas líneas de código crean un rango de nombre dinámico muy interesante, de modo que cuando los usuarios están en la pestaña de equipo, solo pueden elegir los artículos que son equipo si están en el envío, solo tienen la opción de esos enviar artículos hace que las cosas sean mucho más fáciles y mucho más organizadas cuando crea estos proyectos detallados y podemos hacerlo a través de ese rango de drenaje dinámico y, como dije, solo unas pocas líneas de código, está bien, ahora lo que queremos hacer es quiero agregue los elementos de la pestaña seleccionada a la derecha, entonces, ¿cómo hacemos eso? Básicamente, lo que eso significa es que si hay elementos asociados con este proyecto, quiero que esos elementos aparezcan aquí y, por lo tanto, vendrán directamente del elemento del proyecto. base de datos entonces lo que quiero t Lo que sé es que quiero saber todos los artículos de envío que vinieron de nuevo, esto es de nuevo, solo puedo usarlo , lo mantendremos allí, pero básicamente esto es lo mismo. probablemente no sea necesario, así que lo que quiero hacer es saber todos esos artículos del envío en el proyecto 2 y quiero que aparezcan aquí quiero traer esos artículos quiero colocarlos directamente aquí y eso es lo que vamos a hacer dentro de este vba en primer lugar lo que quiero hacer es recordar de nuevo que dije proyecto quiero establecer b1 en verdadero quiero diferenciar entre cuando un usuario hace un cambio y cuando vba está haciendo un cambio así que cuando Hago cambios aquí, quiero que esto cambie a verdadero b1 para que sea verdadero, así que vamos a comenzar con b1-2 y, por supuesto, antes de que terminemos, lo volveremos a establecer en falso y entonces lo que estamos lo que vamos a hacer es primero vamos a borrar todo el recuerdo ya hemos guardado todo ya lo hemos guardado bien aquí todos coinciden, ya hemos guardado todos los elementos del proyecto en esa pestaña aquí, así que podemos borrarlo fácilmente y eso es lo que vamos a hacer, vamos a borrar todo b4, incluido b4 b4 es nuestro seleccionado fila de elementos, así que b4 queremos borrar no queremos mostrar ninguna fila seleccionada quiero borrar b4 y también quiero borrar todo, desde la columna d d hasta el final n bueno, dices yn correcto n va para ubicarnos, también tenemos algunos datos ubicados en n, está bien, ahora entraremos en los datos que se van a guardar, pero hay dos, hay información de datos ubicada aquí y probablemente debería agrupar todo esto para que podamos moverlo fácilmente. voy a agrupar esto aquí y luego lo que vamos a hacer es que podemos moverlo fácilmente, está bien, así que agrúpelo y luego anularemos la selección de esto y luego, básicamente , dentro de aquí llegaremos a esto en un momento dentro de aquí. es que tenemos algunos datos aquí así que aquí voy a escribir tenemos aquí este es nuestro proyecto nuestra identificación de artículo aquí así que voy ng para escribir solo temporalmente la identificación del elemento. Quería la identificación asociada con el elemento y también quiero saber las filas de la base de datos. Estoy escribiendo una fila de la base de datos. Ahora ya están aquí. Si puede verlas aquí, pero están ocultas correcto y me gustan ocultos, quiero mantenerlos y están ocultos según el formato personalizado si entro en más formatos numéricos, verá que tengo dos o en realidad dos puntos y coma diferentes, en realidad podría poner uno aquí si son números, solo puedo poner uno gracias y luego podemos poner un punto y coma para ocultarlos ; sin embargo, si queremos que se muestren, podemos volver a cambiarlos al formato general general, está bien, así que lo mostrará y eso significa que yo sepa que la identificación del artículo que está asociada con cada uno de estos artículos individuales es la misma, si cambio ese derecho a envío correcto, verá que aparece una identificación de artículo diferente aquí, hagamos clic en ese envío aquí vemos la identificación de artículo diferente va a aparecer aquí por supuesto que está ubicado ed 12, simplemente está oculto, pero está aquí dentro de 12. Está bien, pero también quiero saber cualquier fila de la base de datos que se haya guardado . eche un vistazo dentro de los proyectos y echamos un vistazo a la fila 39, vamos a encontrar ese elemento en particular aquí, por lo que es ese elemento aquí, está ubicado en la fila 39 y aquí está la identificación del elemento, así que cuando lo guardamos cuando sigo adelante y haga clic en guardar, se arreglará automáticamente aquí, está bien, lo restableceremos y estableceremos nuestros títulos . ahora no, no, no están bien , así que simplemente lo eliminaremos y podemos volver a cargar esa pestaña . Entonces, lo que queremos hacer es asegurarnos de que cuando haga un cambio aquí, quiero asegurarme de que ese elemento sea abase se guarda automáticamente en down, está bien, así que para hacer eso, todo lo que tenemos que hacer es seleccionar un número diferente y queremos asegurarnos de que la identificación del elemento y la fila de la base de datos si los asociados se van a colocar allí nuevamente. Continúe y cámbielos a general también para que pueda ver que todavía hay un general personalizado. Podemos ver la identificación del elemento en la fila de la base de datos que está asociada con eso , está bien, así que queremos traer toda esta información, así que lo primero que quiero hacer es borrar toda la información cuando cambiamos de pestaña. Quiero borrar todo y mostrar esos resultados, así que vamos a borrar todos esos elementos aquí dentro de las macros de nuestra hoja de proyecto. Borrar los elementos existentes . Está bien y ahora lo que quiero hacer es botón agregar o editar botón agregar o editar elemento la forma visible es igual a falso y qué es eso cuando seleccionamos un elemento en particular y quiero asegurarme de agregar o editar este elemento voy a mostrar este pequeño botón aquí esto se llama agregar en el botón del elemento quiero que esté oculto cuando cambio de pestaña, no quiero que ese botón esté oculto, solo quiero que ese botón esté visible cuando selecciono un elemento específico en la columna e, así que vamos a hacer eso, vamos a ocultar ese botón en el que nos vamos a centrar la base de datos de elementos del proyecto aquí es donde queremos ejecutar nuestro filtro avanzado determinando la última fila ejecutando un filtro avanzado que significa solo aquellos elementos con proyecto id2 solo aquellos elementos asociados con el envío, por lo que nuestro criterio será de q 2 a r3, por lo que queremos que q2 a r3, entonces lo que queremos hacer es que esos resultados aparezcan directamente desde u hasta af, está bien, así que traigamos eso dentro del código y echemos un vistazo a eso que determina la última fila aquí, el último elemento del proyecto la fila de la base de datos si es menos de cuatro, eso significa que no hay elementos de la base de datos, vamos a omitir todo esto , vamos a ejecutar ese filtro avanzado desde a3 hasta y ese criterio q2 a r es lo que mencioné aquí dentro de ese criterio q2 a r y los resultados están llegando g de u a af y ahí es donde queremos de u a af bien, ahora que tenemos esos resultados, quiero determinar la última fila de esos resultados. Voy a usar la columna v para obtener el último porque ese es un nombre de elemento y eso es necesario v va a determinar la última fila asegurándose de que no tengamos ningún resultado que podamos omitir si lo tenemos vamos a tomar todos esos datos, incluida la fecha y la fila hasta este y vamos a traerlo, pero para hacerlo quiero asegurarme de que lo vamos a traer al lugar correcto, así que necesitamos ejecutar un bucle. Quiero poner esta línea en la fila 9. Quiero coloque esto en la fila 10 a la derecha, normalmente no tendríamos dos nueves, pero tuvimos un problema allí, así que eso es todo lo que tenemos que hacer, solo inclúyalo todo, así que queremos saber con qué fila están asociados allí, así que ¿cómo vamos? para hacerlo bien, la mejor manera de hacerlo es, por supuesto, con ese filtro avanzado y ejecutando ese ciclo, así que vamos a hacerlo bien. Tengo muchos elementos en este. y entonces vamos a ejecutar ese ciclo para determinar la última fila si es menos de tres vamos a conocer los elementos y ahora vamos a comenzar nuestro ciclo comenzando en la fila 3 ahí es donde nuestros resultados son que la fila 3 es donde nuestra primera fila proviene de nuestros resultados y vamos a recorrer todo el camino hasta la última fila determinando qué fila dentro aquí 9 10 11 qué fila irá adentro para obtener esa fila y ponerla en una variable que la fila vendrá directamente de la columna af si bajamos esto, vemos que eso viene de af, así que voy a poner eso en una variable llamada elemento fila ahora sé en qué fila poner eso sé exactamente qué fila dentro aquí la fila 9 10 11 y así sucesivamente, está bien, entonces lo que quiero hacer es todo el camino desde los proyectos d hasta n comenzando aquí d hasta el final y quiero traer esa identificación del elemento quiero traer esa fila de la base de datos todo el camino y traerlo todo el camino y va a venir directamente desde aquí todo el camino desde ti hasta el final no es la fila del proyecto, sino solo desde aquí hasta el final, así que básicamente vamos a traer todos esos datos sobre d a n de la fila del elemento que vendrán de u a través de la fila de resultados solo trayendo esos datos y también quiero asegurarme de que nuestras fórmulas estén aquí abajo. Las fórmulas son muy importantes porque noten que hay momentos en los que solo introduzco el valor, pero realmente quiero una fórmula aquí dentro del costo total. Quiero una fórmula. ¿Por qué es importante una fórmula ? si el usuario decide que va a cambiar esa cantidad, necesito asegurarme de que el costo total se actualice, podría hacerlo a través de vba, pero también podemos hacerlo a través de una fórmula, así que lo que quiero hacer es reemplazar lo que sea valores aquí con la fórmula básicamente g10 a i10 o lo mismo cuando el total es correcto, así que nuevamente estamos reemplazando los valores con el total y de esa manera cuando el usuario cambia las cantidades, las fórmulas se actualizan para que podamos hacer eso aquí mismo , así que j la fórmula que sería para el la fórmula de costo simplemente va a ser g por i en la fila del artículo, mientras que la fórmula del precio total es g a través de k, así que simplemente tomamos g la cantidad y a través de i el costo del artículo o k el precio del átomo y creamos ese total el precio o el costo total para que puedan actualizarse, así que estamos actualizando con fórmulas y eso es todo, así que todo lo que tenemos que hacer es mirar, eso traerá todos los elementos asociados con la pestaña junto con sus fórmulas dadas, ¿de acuerdo? voy a establecer la carga del proyecto en falso y activar la actualización de la pantalla de la aplicación, esa es toda la macro que necesitamos para cambiar de pestaña y hacer que los datos provengan directamente de las pestañas, está bien, muy, muy bien, a continuación, quiero crear una anterior y un proyecto . a la derecha el proyecto anterior y cargar el siguiente proyecto tenemos los que se van a cargar aquí, entonces, ¿cómo lo hacemos bien? Solo necesito determinar en qué proyecto estamos y si voy al anterior, obviamente, este es el primero que quiero dejarte. Sé que estás en el primer proyecto, así que antes. nosotros es el primero que vamos a hacer y cómo lo hacemos bien lo primero que quiero hacer es quiero determinar n2 con el proyecto n2 quiero saber el número más bajo cuál es el número más bajo de nuestro identificadores de proyecto si miro aquí, el número mínimo es uno, por lo que no podemos ir por debajo del número máximo es 5. no podemos ir por encima de eso, así que lo que vamos a hacer es determinar usando el mínimo función y podemos usar el mínimo de esta hoja de trabajo de la aplicación y quiero saber cuál es el número mínimo en todas las identificaciones del proyecto usando ese rango con nombre si n2 ya está en el mínimo si ya estamos en el número más bajo y por qué es tan importante por qué ¿No podemos simplemente verificar si es 1 porque si el usuario elimina el proyecto 1, entonces 2 es nuestro número más bajo, por lo que queremos usar el mínimo porque no sabemos que no necesariamente será 1? Si eliminan el primero dos proyectos 3 será el primero, por lo que queremos usar el mínimo para garantizar que el usuario no pueda ir más allá d el primero si intentan ir más allá del primero, se lo haremos saber con este cuadro de mensaje en particular; de lo contrario, lo que quiero hacer es ir al anterior, si sé que están en el proyecto 4 i quiero saber cuál es el anterior ahora, no puedo asumir que son tres porque si elimino la fila seis si decidimos que vamos a eliminar proyectos, pasará de cuatro a dos, así que lo que quiero hacer es voy a determinar en qué fila cuatro está y quiero ver la fila de arriba, sea cual sea el ID del proyecto que vamos a colocar, para hacer eso, lo que vamos a hacer es ir para determinar la fila del proyecto, la envolveremos en Air Resume junto a un editor honorario solo para asegurarnos de que , en caso de que no se encuentre, se cree un error, así que usaremos el comando de búsqueda y voy a busque esa identificación del proyecto. Estoy buscando lo que sea que esté en n2 y estoy buscando directamente en las identificaciones del proyecto y quiero extraer la fila de esa fila. ingrese a esta variable si conozco la fila y quiero asegurarme de que esa fila no sea 0 y también quiero asegurarme de que no sea 4 si es 4 será la primera pero me aseguraré de que si no es cuatro y no es cero, entonces solo quería determinar lo que hay en la a y la fila anterior. Voy a tomar ese valor. Quiero colocarlo directamente dentro de n y eso es exactamente lo que vamos a hacer aquí n2 simplemente es igual al proyecto a y el proyecto rel menos uno establece la identificación del proyecto anterior, luego ejecutaremos una macro que revisaré en un momento llamada carga del proyecto, cargará todos los datos para el proyecto, ¿de acuerdo? el próximo proyecto es muy, muy simple esta vez, vamos a verificar si estamos fuera del último usando la función máxima, así que queremos saber la función máxima, así que cuando voy al siguiente siguiente al siguiente y estoy en el último uno, quiero que el usuario sepa a través de un cuadro de mensaje que está en el último proyecto justo una vez que alcancen el máximo, está bien, así que hacerlo es la mejor manera de d o eso es simplemente para verificar cuál es el número máximo y si están en eso, hágale saber al usuario a través de un cuadro de mensaje aquí si no lo están nuevamente, vamos a determinar la fila a través de la misma fórmula y yo simplemente voy a determinar cuál es el siguiente, siempre que no sea cero , entonces n2 es simplemente igual a la fila del proyecto más uno, así que cualquiera que sea el siguiente, vamos a ejecutar la macro que carga el proyecto, esto puede no ser será necesario porque cualquier cambio en n se agregará automáticamente, genial, eso es todo, eso es todo lo que tenemos que hacer para la navegación, ahora tenemos otro módulo llamado macros del proyecto y vimos algunos, vimos uno que vamos a guardar. vimos una carga, entonces, ¿cómo hacemos para que cambien? La primera con la que nos vamos a encontrar se llama guardar actualización, que es la macro que se ha vinculado a este botón llamado guardar y actualizar, y esta es la macro que no solo se ejecuta cuando hacemos clic en el botón Guardar a tope, también es la macro que se ejecuta cada vez que cha nge una pestaña para que no importa lo que estemos guardando automáticamente, lo que el usuario haya ingresado aquí, se guardará automáticamente, así que abramos el trabajo más grande, así que no importa lo que esté aquí, se guardará, vamos a mirar para ver si se guardó antes, ¿ cómo sabemos si se dice antes porque habrá una fila de base de datos asociada a esto? tenemos que asegurarnos de cambiar eso a general solo para que podamos verlo bien sabemos que nodo allí vamos sabemos que ninguna base de datos ha sido ninguna fila de la base de datos se ha guardado con eso porque no se ha guardado tan pronto como nosotros haga clic en guardado , vemos que tenemos una fila que ahora está asociada con eso, por lo que podemos usar eso para determinar que está bien, pero lo primero que queremos hacer es tomar toda la información aquí y guardarla en nuestra base de datos del proyecto aquí determinar si es un existente o nuevo y ya sea si es uno nuevo, guárdelo en una fila completamente nueva y si es uno existente, actualice o en consecuencia, eso es lo que vamos a hacer aquí, entonces, ¿cómo sabemos si es uno nuevo o uno existente porque nosotros vamos a mirar la fila del proyecto ubicada en b2 si hay un número aquí o un valor aquí, sabemos que es uno existente; sin embargo , si creamos un nuevo proyecto, podemos ver que b2 se cambia automáticamente a vacío y eso se debe a que está basado en la identificación del proyecto aquí la identificación del proyecto no se encuentra en esta lista mire no se encuentra aquí para que sepamos que está buscando que no es no está encontrando seis aquí así que va a regresar vacío así es como sabemos si es nuevo uno o uno existente basado en eso, está bien, así que tenemos eso en marcha y lo que haremos es continuar con esta macro en particular determinando eso, pero quiero asegurarme de que antes de guardarlo tengamos algunos elementos esenciales quiero asegurarme de que tenemos al menos un cliente ahora determine que tenemos un cliente correcto quiero asegurarme de que sea uno que se haya guardado ba nos dirá si tenemos eso ahora b8 es una fórmula que vamos a hacer coincidir en función del nombre del cliente, así que lo que va a hacer es buscar esto y va a determinar si este nombre se encuentra en la lista de clientes si miramos dentro de nuestras fórmulas , tenemos un administrador de nombres, vemos que tenemos un rango con nombre basado en los nombres de los clientes, todos los nombres de los clientes , así que lo que voy a hacer es voy a ver lo que sea que el usuario haya ingresado si se encuentra en esta lista si devuelve la fila que se encontró, eso es lo que vamos a usar aquí dentro de b6, esa fila del cliente usando la coincidencia basada en f2, sin embargo, si es no encontrado correctamente o si crean uno nuevo si tienen uno nuevo, verá que no se encuentra la fila del cliente estará vacía, por lo que queremos asegurarnos de que ba contenga un valor para que hayan agregado un cliente correcto, por lo que el primero lo que vamos a hacer es asegurarnos de que b8 no esté vacío, si lo está, le informaremos al usuario que por favor haga asegúrese de agregar un cliente a este proyecto, vamos a seleccionar f2 para que el usuario sepa que ese es el que van a ingresar y también quiero asegurarme de que hayan ingresado una fecha correcta si n 3 está vacío quiero asegurarme de que tenemos al menos una fecha allí, así que asegúrese de tener una fecha de trabajo, así que si n3 está vacío, falta la fecha, asegúrese de agregar una fecha de proyecto antes de guardar, vamos a seleccionar n3 a continuación, quiero determinar si es un proyecto existente o un nuevo proyecto b2 nos dirá que los proyectos existentes tendrán un valor nuevos proyectos b2 estará vacío bien entonces b2 nos dirá si b2 está vacío es un nuevo proyecto para nuevos proyectos queremos determinar una nueva fila ubicada en la base de datos del proyecto, la primera fila disponible en este caso 9. También quiero determinar la próxima identificación del proyecto, vendrá directamente de aquí, aquí lo tenemos , el próximo proyecto id se encuentra aquí usando la fórmula máxima, está bien, así que esa será la fila del proyecto. o sea el primero disponible si no se ha guardado previamente , tomaremos la próxima identificación del proyecto que se encuentra en b3 con esa fórmula máxima , colocaremos esa identificación del proyecto directamente para asegurarnos de que esté ubicada correctamente aquí , aunque debería estar en los nuevos y también quiero tomar esa identificación del proyecto y quiero guardarla dentro de esta base de datos, así que desde b3 lo tomaremos, lo pondremos en la columna a y luego la primera fila disponible allí que tomará la identificación del proyecto. ¿Qué pasa si es un proyecto existente? Si es un proyecto existente, todo lo que tenemos que hacer es extraer el mundo del proyecto de b2 porque ya estará aquí ubicado en b2 todo. otra cosa va a pasar, ya sea un proyecto nuevo o un proyecto existente y eso significa que simplemente vamos a actualizar todos los datos asociados y podemos ejecutar un ciclo para hacerlo bien, así que si vemos aquí esta columna aquí estamos vamos a escribir un ciclo desde la columna 2 hasta la 12 y vamos a tomar lo que sea er está en m3, lo pondremos en esa fila, toma lo que es n4, lo pondremos en esa fila y eso es lo que haremos a través de un bucle de mapeo de datos, así que esa es la siguiente parte de nuestro código Entonces, lo que vamos a hacer, primero vamos a poner la identificación del proyecto que es importante porque vamos a necesitar poner eso en los elementos en un rango con nombre. También quiero saber la categoría seleccionada que vendrá . de b5 esa categoría seleccionada también es muy importante aquí es ese ciclo que vamos a ejecutar y, por lo tanto, usando esa asignación de datos y ese ciclo, lo que vamos a hacer es ejecutar ese ciclo de 2 a 12. y vamos a tomar dentro de esa base de datos del proyecto que las filas del proyecto esa columna del proyecto del 2 al 12 va a ser igual a lo que sea que esté en este rango ese rango se encuentra en la fila 1 de nuestra base de datos del proyecto esa fila aquí arriba y básicamente estamos vamos a tomar toda la información de n3 y 4 y b7, la colocaremos en la fila correspondiente a continuación, lo que queremos quiero agregar o actualizar los elementos del proyecto quiero determinar todos los elementos en la pestaña existente porque si todas las demás pestañas anteriores ya se han guardado cuando cambiamos de pestaña quiero ir a la última fila ejecutar un bucle directamente desde el del primero al último quiero verificar si se ha guardado si se ha guardado oh, todavía quiero actualizarlo si no se ha guardado determinar la nueva fila usando esa fila de la base de datos, entonces n nos dirá eso, así que el primero Lo que queremos hacer es determinar la última fila de elementos en función de e y 200, de acuerdo, por lo que la última fila de elementos, si es menor que nueve, significa que no hay elementos correctos, el primero será nueve, por lo que si es menos de eso significa que no hay elementos para la fila de elementos igual a nueve hasta la última fila vamos a prepararnos para ejecutar ese bucle nuevamente estamos verificando si se ha guardado va a crecer en esa base de datos va a estar ubicado en columna y la fila del elemento que significa que si no está vacío, significa que tiene un fila de la base de datos existente, tomaremos esa fila y la pondremos en una variable llamada fila de la base de datos del elemento del proyecto; sin embargo, si es una nueva fila de la base de datos, lo que haremos será determinar la primera fila disponible dentro de la base de datos de elementos del proyecto y vamos a poner eso en una variable para elementos nuevos, no elementos existentes. Quiero poner esa identificación del proyecto en la columna. Quiero poner esa categoría seleccionada. Aquí está esa parte importante. va a venir de aquí va a una variable llamada categoría seleccionada y va a ir directamente dentro de aquí va a ir dentro de la columna b entonces primero la identificación del proyecto luego la categoría seleccionada en b también quiero saber la fila que está asociada solamente para elementos nuevos y vamos a poner esa fila en la columna n que es solo para elementos nuevos, está bien, y eso es lo que vamos a hacer dentro de la columna m, vamos a poner la fila del elemento del proyecto, podemos poner la fila también y quiero poner la base de datos se fila m lo que es m m es simplemente la fila que está asociada 9 10 u 11 a la derecha de la fila que es 9 10 u 11. quiero saber la fila que estamos poniendo en la que es la fila del artículo que pone esa fila del artículo en la columna m colocando la fórmula para la fila de la base de datos en la columna n, luego, dado que acabamos de obtener la fila de la base de datos, tenemos un programa de datos completamente nuevo. Quiero colocar esa nueva fila de la base de datos directamente en la columna n aquí para que la nueva fila de la base de datos que acabamos de crear aquí arriba irá directamente a la columna n de los proyectos, está bien, todo lo demás simplemente lo guardaremos en la base de datos, así que todo lo que tenemos que hacer, ya que está en el orden correcto, es simplemente tomar lo que esté ubicado hasta el final. aquí desde aquí y luego simplemente guárdelo directamente dentro de nuestro elemento de proyecto desde aquí, así que comenzando en la fecha del elemento hasta allí, está bien, eso es lo que vamos a hacer, así que c tomará primero de todos, la identificación del artículo está fuera de servicio, por lo que c vendrá directamente de m, esa es nuestra identificación del artículo th va a venir directamente desde aquí m esa es la identificación que está asociada con ese elemento , le mostraré cómo entra allí en un momento, pero esa es la identificación del elemento asociado que irá a la columna c todo lo demás desde d hasta l es igual a d a través de l significa d aquí la fecha hasta el final l el precio total irá directamente a los elementos del proyecto también a través de l el precio total correcto para que todo coincida con una columna columna trayendo todo bien eso es todo lo que tenemos que hacer para guardar el elementos correctos, así que lo que quiero hacer es ejecutar ese mensaje guardado, un proyecto dice que este es un mensaje de desvanecimiento, se ejecutará, así que cuando lo ejecute, vayamos a los proyectos aquí, verá ese mensaje de desvanecimiento verde aquí cuando Ejecuto esto, verá ese pequeño mensaje de guardar proyecto verde, lo único es que no quiero ejecutar eso, recuerde que estamos ejecutando esta macro de guardado, la estoy ejecutando cada vez que cambio esa pestaña a la derecha, pero yo solo quiero ejecutar ese mensaje cuando en realidad cuando el el usuario presiona el botón Guardar, entonces, ¿cómo podemos diferenciar que es la misma macro que estamos ejecutando, pero solo quiero que este botón aparezca cuando el usuario selecciona este botón aquí? ¿Cómo diferenciamos eso? Podemos diferenciarlo porque es la misma macro que es se ejecuta en función de lo que el usuario hace clic a la derecha, por lo que si el usuario hace clic si echamos un vistazo al botón Guardar, le he dado un nombre llamado botón Guardar ahora, echemos un vistazo a este ícono, el ícono también aquí también se llama, terminemos con eso. la macro se está ejecutando una vez que la macro se está ejecutando, no aparecerá aquí si echamos un vistazo, dice el botón Guardar aquí, por lo que tanto el icono como el botón tienen el mismo nombre , ambos tienen la misma macro, por supuesto, es este fondo de guardar, así que si sé qué forma llamó a la macro que puedo usar para determinar básicamente si el usuario hizo clic en este botón y luego ejecútelo ¿cómo sabemos que podemos usar el color de la aplicación que significa el nombre de la forma que lo llamó si la llamada de la aplicación es igual al botón Guardar? sabemos el uso Hice clic en esto y no en uno de estos porque es la misma macro que se ejecuta correctamente. Si ponemos una parada aquí, sigamos y pongamos las paradas aquí por diversión . sabemos que se está ejecutando, pero sabemos que la persona que llama a la aplicación es correcta, así que vamos a detenerlo aquí, así que sabemos, echemos un vistazo aquí y haga clic aquí nuevamente a la derecha y asegúrese de que continuaremos con esa macro ya activada y continuaremos bien Entonces, lo que quiero hacer es detener el macro micro aquí, así que echemos un vistazo a la categoría tres de los colores de la aplicación de color de la aplicación. el usuario hace clic en este botón aquí y esa es una excelente manera de ejecutar el mensaje de desvanecimiento solo cuando el usuario tiene un mensaje específico, aunque estamos ejecutando exactamente la misma macro, está bien , así es como obtenemos la información y así es como hacemos esto el mensaje guardado simplemente toma esta forma y desvanecerlo usando una transparencia. Hemos repasado esto varias veces, por lo que se ha hecho casi todo el proyecto nuevo . quiero establecer algunos valores predeterminados quiero establecer esa identificación de proyecto en la siguiente identificación de proyecto disponible también quiero establecer la fecha en la fecha actual es el 3 de agosto y quiero establecer el estado en función de lo que sea que se encuentre el estado predeterminado aquí También quiero establecer el valor predeterminado de que el mensaje de pie de página está aquí si lo cambiamos a 90, pero quiero establecer el valor predeterminado, de modo que cuando hagamos clic en nuevo, quiero asegurarme de que el valor predeterminado sea lo que el usuario haya configurado directamente aquí en j14. queremos hacer todo eso a través de new, así que lo primero que queremos hacer es configurar la carga del proyecto a través de b1, lo devolveremos a falso cuando terminemos, vamos a borrar todo tipo de campos limpiando todos los campos aquí quiero configurar el próximo proyecto Identificación de que la próxima identificación del proyecto vendrá de b3, irá a n2. También quiero establecer la fecha actual en n3. También quiero establecer el estado predeterminado, de eso hablamos, viene del administrador y el mensaje de pie de página predeterminado aquí en o6 configurando la carga del proyecto en falso y también el botón agregar o editar quiero asegurarme de que el botón agregar o editar quiero asegurarme de que esté oculto no visible y vamos a seleccionar f2 que seleccionará esto y Permita que el usuario seleccione un cliente que tiene que hacerlo, así que la mejor manera de hacerlo es simplemente con la selección, de acuerdo, eso es todo, ahora lo que quiero hacer es cargar ese proyecto en Quiero cargar todo ese producto Sin embargo, quiero asegurarme de que solo estemos cargando en este específico y hemos revisado esto, estoy a punto de ocultar esto nuevamente, así que hemos revisado esto, lo que quiero hacer es simplemente cargar solo los elementos de cualquier pestaña seleccionada, eso significa que digamos que solo nos enfocamos en el servicio si voy al anterior nosotros, solo va a cargar esos elementos, tenga en cuenta que la pestaña permanece en los servidores, solo va a cargar esas pestañas de servicio correctamente , por lo que se basará en la pestaña seleccionada, el nombre de la pestaña seleccionada está aquí, sabemos según los elementos del proyecto que es vinculado directamente aquí para que podamos cargar fácilmente solo esos porque está vinculado automáticamente, por lo que la carga del proyecto lo primero que quiero hacer es asegurarme de que b2 contenga un número correcto si no hay una fila asociada con la identificación del proyecto ubicada en n1, entonces sabemos que debemos informar al usuario que no es el proyecto correcto, por lo que si b2 está vacío, ingrese un número de proyecto correcto, salga del sub, nada que podamos hacer, proyecte la fila en una variable a la derecha b1 configurando eso como verdadero, quiero borre el contenido de todas las celdas asociadas asegurándose de que no borre n1 porque eso es muy importante, no queremos borrar que el usuario haya ingresado una identificación de proyecto o que haya usado anterior a siguiente , así que queremos asegúrate de que sombrero no n1 quiero desactivar la actualización de la pantalla de la aplicación vamos a ejecutar el bucle pero esto es un poco diferente aviso la última vez que fuimos a 12 esta vez solo vamos a nueve ¿por qué? porque tenemos elementos que están asociados con fórmulas el costo total es la fórmula el precio total es una fórmula y la ganancia estimada son todas fórmulas correctas quiero guardar esos artículos en la base de datos pero cuando no quiero recuperar estos artículos porque son relativos dependen de fórmulas, así que solo quiero subir a la columna número nueve, no quiero continuar, eso significa que si su base de datos contiene fórmulas, colóquelas al final siempre al final de esa manera solo tiene para ejecutarlo en una columna específica y luego puede detenerse y eso es exactamente lo que estamos haciendo así que de dos a nueve vamos a traerlo básicamente es lo opuesto a la validación de datos esta vez vamos a mirar aquí dentro y lo que sea que esté ubicado en la fila del proyecto y en la columna del proyecto wi Lo traeré a este rango ubicado en la columna uno dentro de nuestro proyecto, genial, así que ahora cargar el elemento del proyecto es muy, muy similar, casi repasamos exactamente eso porque cuando cambiamos de pestaña es lo mismo, vamos a determinar el último fila de nuestra base de datos de elementos del proyecto fila quiero saber la última fila aquí vamos a ejecutar nuestros criterios de curso aquí desde o2 q2 hasta r3 y luego los resultados aparecerán allí bien, eso es todo lo que estamos haciendo y nuestro criterios q2 a r3 determinando la última fila cuando tenemos nuestros resultados llegando a través de u2 a af así que exactamente lo mismo que hicimos antes también determinando la última fila en base a v el nombre del elemento si es menos de tres vamos a ir a ningún elemento traer toda la información en las fórmulas tal como lo hicimos antes y luego desactivar la actualización de la pantalla de la aplicación y luego hacer que b1 sea el valor predeterminado, eso es todo, solo tenemos que cargar la pestaña actual, nuestras fórmulas se encargan de todo lo demás, eso es lo que quiero a Deténgase allí por ahora y continúe con algunos de los avisos en pantalla . cuando hago un cambio en esto, quiero cargar los detalles que se encuentran en esa descripción, que será un evento de cambio basado en e . No quiero cargar esa identificación del artículo, también aparecerá aquí y eso sucede en el evento de cambio e, entonces lo que vamos a hacer es ir directamente a la hoja del proyecto y vamos a ver algunos de los eventos de cambio de la hoja de trabajo basados ​​en eso y estamos enfocados en lo que hemos tengo algunos de ellos, supongo que deberíamos comenzar en la parte superior, lo hace un poco más fácil, así que el primero que repasamos en n2 repasamos que si el usuario realiza un cambio en la identificación del proyecto, vamos a cargar el proyecto si no lo hicimos, lo estamos haciendo ahora, el usuario hace un cambio allí, todo lo que vamos a hacer es asegurarnos de que no esté en blanco y solo estamos simplemente cargando el proyecto que está asociado con ese número, está bien, entonces ese es este n2 y n2 no está vacío, simplemente vamos a ejecutar la macro cargar el proyecto en el cambio de dirección del cliente justo cuando hago un cambio en la dirección del cliente aquí quiero para asegurarnos de que estamos cargando la dirección, la ciudad y el estado; sin embargo, si el usuario ingresa uno nuevo que ya no está, quiero asegurarme de que el usuario no esté actualmente . ¿ Le gustaría agregar este cliente? cómo vamos a hacer eso pero antes no quiero olvidar que hay una cosa antes de que lleguemos a eso hay una cosa que quiero te mencioné que quiero asegurarme de que traiga a colación su atención y ese fue el autocompletar recuerda que mencioné vamos a por un nuevo proyecto recuerda que mencioné que podemos completarlo automáticamente y eso es realmente importante digamos que estamos en servicio así que algunas de las opciones aquí son servicio mensual servicio semanal y servicio diario así que si yo tecleo en dai quiero asegurarme de que entre automáticamente o mo, así que, ¿cómo obtenemos el autocompletado? Ahora, observe que está en b9 si cambiamos al equipo, ¿verdad? Oh, tenemos que guardar el proyecto . proyecto que es importante si cambiamos a equipo, observe que tenemos una lista desplegable diferente, pero también quiero que la función de autocompletar funcione aquí, entonces, ¿cómo lo hacemos bien si miramos hacia abajo en la fila comenzando en 200 o 201, creo aquí ? tengo enlaces ahora estos elementos están vinculados esto va a usar nuestro autocompletar tengo un entrenamiento específico solo en esto , así que básicamente todo lo que necesitamos son los mismos elementos dentro de la misma columna y tienen que estar vinculados a través de no romper el método de cadena, lo que significa que necesitamos celdas continuas de datos, podría ser cualquier dato , incluso espacio hasta aquí, así que lo que hago es vincular los elementos l3, l4, l5, etc. echa un vistazo aquí recuerda esta lista de artículos l3 l4 así que si copio Esta lista está completamente hacia abajo, sin importar los resultados para el equipo . Si copio esa lista y voy a los proyectos y pego esas fórmulas, siempre estará vinculada, está bien, eso significa que noto en 201, así que si cambio de pestaña. bien, si lo cambio a la pestaña de artículos aquí , vemos que dentro de nuestros artículos, nuestros resultados son diferentes, vemos que en nuestro proyecto que comienza en 200, esos resultados son diferentes, así que si empiezo a escribir tocador de baño aquí , aparecerá automáticamente aquí. bien, todo lo que tenemos que hacer es nuevamente celdas continuas, así que lo que he hecho aquí es poner un espacio si echamos un vistazo aquí hay un espacio aquí podría poner fácilmente x y también lo he hecho aquí sin espacio porque no quiero que los usuarios lo vean, así que la mejor manera de hacerlo es que estos espacios dobles aquí quiero asegurarme de que esos espacios sean continuos hasta la fila 200, así que voy a copiar eso y luego seguir todo el camino hacia abajo continuo a la derecha voy a pegarlo en cualquier lugar como vamos digamos aquí aquí en la columna c solo queremos que la columna c pegue correctamente que pegar los valores está bien, entonces lo que quiero hacer es simplemente crear un enlace entre eso y llamarlos d, entonces todo lo que tengo que hacer es crear ese enlace para que ese enlace está aquí, así que pongamos doble espacio aquí ahora que están vinculados ahora hay una columna continua y una fila de celdas con espacios así que ahora funcionará automáticamente si rompes uno de esos espacios así que escribamos sincronizados aquí 30 aparece automáticamente así que ahora podemos tener un autocompletado dinámico basado en la pestaña seleccionada, así que muy, muy bueno, me alegro de haberte mostrado eso, no quería olvidarlo porque eso era algo importante, está bien, así que continuemos donde estábamos. cambio de dirección de identificación del cliente cuando realizo un cambio en e2 quiero que suceda algo qué quiero que suceda quiero cargar la dirección y los detalles si existe el cliente si no existe quiero preguntar el usuario debe agregar los detalles del cliente, de modo que si el usuario realiza un cambio en f2 y d f2 no ​​es igual a vacío , entonces quería mencionar que la fila del cliente es larga, ahora lo que quiero hacer es determinar si el cliente existe o no. b8 nos avisará si pongo algo diferente. para vaciar y aparece un mensaje que dice si queremos agregar este cliente correctamente b8 ahora está vacío porque ese cliente no se ha encontrado en la lista, así que quiero diferenciar. Voy a hacer algo diferente si se encuentra o si no. encontrado así que si b8 es igual a vacío lo que quiero hacer es borrar el contenido de aquí quiero borrar esa dirección f3 a f4 quiero borrar eso y también quiero darle al usuario una opción bien entonces si el mensaje box f2 value cuál es el f2 básicamente va a decir lo que sea que el usuario haya ingresado aquí actualmente no es un cliente le gustaría agregar este cliente si vbs es igual a sí entonces lo que queremos hacer es ejecutar una macro llamada client add o edite el cliente, agregue o edite, está bien si no es así, revisaremos esa macro ahora mismo si t Eso es todo, entonces lo que vamos a hacer es configurar esa fila de cliente, será igual a b8, así que eso es todo lo que haremos, ejecute esta macro y luego saldremos del sub sin embargo si no es así, si continuamos, conocemos las filas del cliente en b8 en la fila del cliente existente en b7 quiero poner con la identificación del cliente quiero tomar cualquier identificación del cliente y la pondré directamente dentro de b7 aquí esta identificación del cliente, por supuesto asignado en b7 está asignado a la identificación del cliente ubicada aquí b7 está ubicada para que podamos poner la identificación del cliente directamente en eso es algo importante porque ejecutamos informes en caso de que el nombre del cliente cambie, la identificación del cliente nunca cambiará, es muy importante para eso, está bien Continuando, también queremos la identificación del cliente, así que ahora lo que voy a hacer es poner esa identificación y b en b7. También quiero tomar la dirección que proviene de nuestros clientes si miramos a nuestros clientes de donde proviene esa dirección. la columna c, voy a tomar eso y ponerlo directamente dentro de f3, así que ya que conocemos la fila del cliente ahora para m b8 podemos hacer que c vaya a f3 en f4 simplemente quiero poner el estado de la ciudad y el código postal de donde proviene la ciudad d el estado que proviene de e y el código postal que proviene de s y poner todo eso en f4 separados por una coma y un espacio y luego otro espacio para que nos brinde esta linda dirección y, por supuesto, vendrá directamente desde esta ciudad y de y f allí mismo, está bien, así que entendemos cómo obtenemos eso para los clientes existentes, está bien, uno el problema es, por supuesto, si no lo están, ¿cómo los agregamos correctamente ? inicie este formulario aquí, entonces, ¿cómo lo hacemos bien? Eso es a través de esta macro aquí llamada cliente agregar o editar a la derecha, queremos agregar o editar ese cliente y eso va a venir dentro de este módulo llamado macros de clientes aquí ahora tenemos un formulario aquí llamado agregar o edite el cliente, este es el formulario que acaba de ver repasando brevemente, no entrará demasiado muchos detalles, pero esto se llama campo uno, esto se llama campo dos hasta el campo siete, esos son los nombres, tengo un botón de guardar cuando hago clic en ese botón de guardar, ejecutará esta mac en particular llamada actualización de ahorro de cliente cuando hago clic en el botón ocultar, simplemente va a ocultar el formulario, así que eso es todo, es un formulario relativamente simple en el que no necesitamos entrar en demasiados detalles de ese formulario y acabo de agregar un fondo usando el mismo fondo de eso es relativamente simple, no está sucediendo mucho, lo único importante que le sugiero que haga es hacer las cosas mucho más fáciles para usted es nombrar sus campos, hay formas de hacerlo más fácil en el sentido de que puede usar vba rápidamente, pero si miramos esto, no necesariamente sabemos qué campo es, por lo que la desventaja es que no sabemos qué es, pero la ventaja es que te mostraré en un momento, es muy fácil de decir porque podemos ejecutar un ciclo y guarde estos siete campos muy, muy rápidamente en solo unas pocas líneas de el código está bien , entonces lo que vamos a hacer es ejecutar esa macro directamente en el cliente, lo primero que quiero hacer es construir la lista de clientes, bueno, en realidad lo primero que quiero hacer es agregar o edite el cliente, ese es el indicado, pero también queremos crear la lista de clientes. Repasaré esto en un momento cuando guardemos un cliente que queremos. Queremos crear esa lista de nombres de clientes . Como vio, hay una lista automáticamente. está actualizado alfabéticamente, así que lo revisaré en un momento en el orden correcto, está bien, pero lo primero que queremos hacer, por supuesto, desde nuestra base de datos de proyectos donde teníamos razón si el usuario responde que sí, queremos ejecutar este macro cliente agregar o editar , ese es el que quiero centrarme en el primero, que es este aquí . cliente que borra los campos en el formulario lo siguiente que quiero hacer es si b8 equa ls mp necesito determinar si es un cliente nuevo o un cliente existente y eso es muy, muy importante porque si es un cliente nuevo y hago clic en esto, quiero que aparezca esa información; sin embargo, si es un cliente existente, quiero que aparece ese cliente existente, quiero extraerlo de la base de datos, así que extraerá la información de la base de datos o extraerá el nombre directamente de aquí y no habrá nada en la base de datos, por lo que debemos diferenciar entre ellos, así que si b8 es igual a mp, sabemos que es un nuevo cliente, todo lo que tenemos que hacer es tomar ese primer campo, que es el nombre, colocar lo que sea en f2 y colocarlo en él; de lo contrario, es un cliente existente, tenemos que cargarlo. desde la base de datos, vamos a determinar esa fila de cliente de b8 configurando esa fila de cliente, luego vamos a ejecutar un bucle directamente para la fila de cliente porque de uno a siete y aquí es donde entran las pocas líneas de código porque es muy, muy fácil de agregar todo lo que necesitamos t o hacer todo el camino en la parte superior es para asegurarnos de que hemos dimensionado el campo del cliente como un control como un control que es muy importante, así que a medida que avanzamos vamos a establecer ese campo del cliente igual al cliente de edición del sumador aquí está el formulario controla el campo y luego la columna del cliente recuerde que la columna del cliente va del uno al siete campo uno campo dos campo tres, por eso es tan conveniente nombrarlos así porque podemos hacer un ciclo guardando todos los datos para que el cliente campo el valor de eso simplemente vendrá directamente de nuestra base de datos de clientes nuestra fila de clientes y la columna de clientes más uno por qué es esa columna de clientes más uno sabemos que esto es de uno a siete, pero si va a sacar nuestro nombre dónde está ubicado nuestro nombre nuestro nombre está ubicado en la columna b, que en realidad es la columna dos, por lo que sabemos que necesitamos que el nombre sea el campo uno y la columna dos , por lo que debemos diferenciar que sabemos que el campo uno aquí estamos configurando el campo uno aquí está la columna dos, así que queremos pu toda la información de la columna b que lo hará, la colocará directamente en ese campo, así que eso es todo lo que tenemos que hacer para cargar todos los datos de este valor y ponerlo directamente en ese formulario y luego lo último, independientemente de si es nuevo o existente quiero mostrar el formulario usando agregar o editar cliente mostrar formulario de visualización excelente una vez que el usuario haya realizado esos cambios también quiero, por supuesto, guardarlo correctamente, así que si han seleccionado un cliente y decidimos que queremos hacer algunos cambios en eso que podemos hacer simplemente para guardar esa información y hacer clic en guardar esa es la macro que se ejecuta automáticamente desde el formulario de usuario una vez que hacemos clic en el botón Guardar que si hacemos clic en ver el código recuerda que es la macro que estamos se está ejecutando cuando el botón Guardar es la actualización del protector del cliente, por lo que esa es la macro que vamos a repasar ahora, en primer lugar, quiero asegurarme de que hayan agregado un nombre de cliente, ese nombre de cliente se ubicará en el campo uno si está vacío, debemos dejar que el usuario haga Nos aseguramos de agregar un nombre de cliente antes de guardar . Vamos a salir del sub. Se requiere el nombre del cliente y nuevamente necesito asegurarme de que si es nuevo o existente usando b8 nos dirá correctamente si es nuevo. vamos a tomar una nueva fila de cliente, vamos a tomar esa identificación de cliente, la próxima identificación de cliente disponible , la pondremos en b7, sabemos la próxima identificación de cliente porque estamos usando una fórmula máxima y yo quiero ponerlo directamente dentro de b7 también quiero tomarlo y quiero ponerlo en el primero disponible aquí ubicado en un así que eso es lo que vamos a hacer aquí va a asumir esa identificación de cliente única de lo contrario es un cliente existente, todo lo que tenemos que hacer es extraer la fila directamente de b8 una vez que lo hayamos hecho, podemos ejecutar un ciclo de dos a ocho columna derecha uno es nuestra identificación de cliente, por lo que no necesitamos agregarlo, ya lo hemos agregado aquí de dos a ocho vamos a tomar básicamente la información del cliente el campo del cliente tal como lo hicimos antes el campo y la columna del cliente umn menos uno porque nuestros campos comienzan de uno a siete, por eso necesitamos restar uno o aquí y luego simplemente actualizaremos la base de datos con lo que esté ubicado en el valor de ese campo, lo pondremos la columna del cliente de la fila del cliente se actualizará, oh, entonces en realidad solo necesitamos ocultar ese formulario y luego quiero ejecutar la macro que va a construir esa lista correctamente, construir esa lista es muy importante porque luego quiero crear una nueva lista una gota lista descendente esa lista se encuentra aquí y quiero que la lista esté ordenada alfabéticamente, así que si miramos en el administrador de nombres de fórmulas, vemos que tenemos el nombre del cliente ordenado, es un rango de nombre dinámico compensado para este ordenado, es el mismo rango de nombre que vamos a usar aquí directamente aquí en los datos y la validación de datos vemos que es la lista ordenada de nombre de cliente porque me gustaría ordenarla quiero ejecutar la macro que ordenará automáticamente esa lista cada vez que guardemos un archivo nuevo asi que si decido cambiar dolores richmond a zolorous richmond la quiero al final si guardo que quiero que esto esté en la parte inferior derecha entonces eso es automático de esa manera se ordenará automáticamente esa es la macro que vamos a se ejecuta cada vez que lo guardamos, así que si buscamos aquí, esa es la lista de compilación de macroclientes a la que vamos con los clientes, estamos enfocados en la hoja de clientes , vamos a determinar la última fila de la hoja de clientes aquí, entonces todo lo que voy a hacer es ejecutar un filtro avanzado sin ningún criterio, solo queremos una lista única. Quiero tomar todos estos nombres. Quiero crear una lista única de nombres y luego quiero ordenarlos alfabéticamente en consecuencia . vamos a ejecutar un filtro avanzado solo en la columna b, que es el nombre de nuestro cliente, vamos a hacer que esos resultados lleguen a k2 recuerde que no hay criterios aquí ahora si estamos ejecutando otros tipos de criterios o si estamos ejecutando otros filtros avanzados en esta hoja y tienen un criterio que tendríamos para eliminar ese criterio antes de seguir adelante, tenga en cuenta que no hay otras fórmulas avanzadas en la hoja, por lo que no necesitamos eliminar ese criterio, pero si existen y esos criterios de usuario de filtros avanzados tendríamos que eliminarlo, estamos vamos a determinar la última fila de resultados de los resultados aquí en k si es menos de cuatro, podemos salir del sub en uno o ningún resultado, uno o ningún resultado, si hay un resultado, no necesitamos ordenar un solo resultado, pero si hay no hay resultados, sin embargo, si hay más de uno, tendríamos que ordenarlo, así que vamos a ejecutar la ordenación, vamos a borrar cualquier campo de ordenación, vamos a agregar una clave de ordenación basada en k3 que es el primer nombre en ese rango, lo vamos a ordenar de forma ascendente, queremos de la a a la z aquí y luego también queremos que ese rango en particular sea de k3 a k en la última fila de resultados y eso automáticamente ordenará nuestra lista en consecuencia, así que eso es genial, así que tenemos que ese es el que se ejecutará automáticamente cuando guardemos un y actualice, por lo que lo último que haremos es simplemente tomar el nombre que el usuario haya actualizado o cambiado correctamente, cualquier nombre en ese campo uno y eso significa que cualquier nombre se encuentra aquí, si cambio esto de nuevo a dolores quiero eso nuevo nombre que pagamos quería que apareciera directamente dentro de f2, así que f2 debe tomar ese valor de campo de ese va a configurar el cliente en el proyecto establecer ese nombre de cliente muy bien eso es todo para los clientes eso es todo lo que tenemos que hacer para agregue a los clientes ahora los elementos que nota son muy similares, así que cuando hacemos elementos cuando selecciono lo que quiero hacer quiero editar un elemento existente o cuando selecciono aquí quiero agregar un nuevo elemento si no hay ningún elemento asociado con eso y quiero determinar cuáles son las categorías, la pestaña seleccionada quiero poner eso como predeterminado para que sean las macros que vamos a revisar en este momento ahora agregar o editar elemento es exactamente el mismo tipo de forma de nuevo muy muy similar todo lo que hemos hecho de nuevo es simplemente nombre campos mismos campos formulario diferente y otra vez con el derecho guardar y cancelar así que si hago clic en guardar vemos que tenemos el botón guardar llamado usted ese es el cliente vayamos a los formularios que tienen más sentido aquí están los cuatro aquí está la categoría categoría correcta esa es la única diferencia en este formulario que era cliente tenemos un campo llamado categoría de artículo y luego tenemos campo uno dos tres cuatro y cinco campo cinco derecho así que tengo cinco campos asociados con el artículo guardándolo aquí vamos eso hace más Detecte el botón Guardar aquí para guardar y actualizar el elemento que es una macro que se ejecutará cuando guardemos el elemento o la cancelación simplemente ocultará ese formulario , así que eso es todo para el formulario muy básico aquí y eso es todo lo que hemos hecho la única diferencia en este formulario en particular es que tengo una lista desplegable y esa lista desplegable se llama categoría de elementos, así que vamos a las macros del módulo de elementos y echamos un vistazo aquí tenemos algo de información aquí ahora lo único que hacemos quiero hacer es yo w Quiero mostrar este ícono en la fila seleccionada cuando hago un cambio de selección. Quiero mostrar eso. Entonces, ¿cómo vamos a hacerlo bien? Eso se basará en el cambio de selección. Así que vamos a los proyectos aquí y vamos aquí para cambio de selección hasta aquí abajo cambio de selección y lo primero que quiero hacer es no importa lo que seleccione el usuario, quiero ocultar ese botón en particular, así que todo lo que seleccione el usuario lo ocultaré si está visible, así que si hay formas agregar o editar el elemento visible es igual a verdadero, lo que significa que es visible, luego ocultarlo, así que vamos a ejecutarlo para ocultarlo, está bien, entonces lo que quiero hacer es que el usuario haga una selección desde dl hasta l 28 si hace una selección en cualquier lugar ¿qué hacer? quiero hacerlo bien quiero poner esa fila objetivo quiero ponerla en b4 así que eso es lo primero que quiero hacer entonces b4 tomará esa fila objetivo esa fila que activará el formato condicional bien también en b10 b10 va a querer poner el id del artículo justo si hay e es una identificación de artículo que se encuentra en la columna mi quiero tomar esa identificación de artículo y quiero ponerla directamente dentro de b10 aviso b10 toma la identificación de artículo si selecciono aquí cambia a 11. entonces lo que quiero hacer es quiero determinar la fila que está asociada con eso y puedo usar nuevamente la fórmula de coincidencia, pero esto se basa en la identificación del elemento. Tengo un rango con nombre para las identificaciones de los artículos tal como teníamos las identificaciones de los clientes, así como teníamos las identificaciones del proyecto, por lo que todo es consistente aquí . así que tengo un rango con nombre para la identificación del artículo y eso nos ayudará a determinar la fila de la identificación del artículo 11 usando la máscara y luego agregando tres para que sepamos que la identificación del artículo con el artículo 11 el alquiler de la sierra de azulejos se encuentra en la fila 14 de los artículos, así que si miramos aquí abajo y miramos la fila 14, vemos que es el id del artículo 11, el alquiler de la sierra para azulejos, así que sabemos que está ubicado en el artículo 14. Si sabemos en qué fila se encuentra, puedo cargar el resto de los detalles, sin embargo , si está en blanco, entonces sabemos que es un elemento nuevo, no hay nada asociado en b11, no hay ro w entonces sabemos que es un artículo completamente nuevo o que el usuario puede querer ingresar un artículo, está bien, eso es lo que vamos a usar, así que aquí vamos b10 se hará cargo de lo que sea, si hay algún artículo, ¿y ahora qué pasa si ? el usuario solo cuando el usuario selecciona dentro de e9 hasta que selecciona e9 quiero hacer algo adicional quiero mostrar esta forma de botón agregar o agregar elemento en particular quiero mostrarla básicamente en la columna f y la voy a mover un poco para que podamos hacer eso aquí con el botón de edición exterior de formas. Quiero mostrar la posición izquierda en función de la columna f y la fila de destino más 15. Quiero moverlo porque esa lista desplegable ocupará un poco de espacio, quiero moverlo más allá de la derecha de ese ícono de lista desplegable y quiero darle la posición superior de la mitad en la parte superior y quiero asegurarme de que se muestre, eso es todo lo que tenemos que hacer, por supuesto, hay un macro que está asignada a esto si echamos un vistazo dentro de las formas individuales y hacemos clic con el botón derecho y hacemos clic en asignar ma cro vemos que se llama agregar o editar elemento del estimador, por lo que si hacemos clic en editar, esa es la macro en particular, esa es la primera macro que vamos a revisar dentro del módulo de macros de elementos y, al igual que los clientes, Me moveré un poco más rápido ahora, al igual que los clientes. Lo primero que haremos es borrar ese formato usando descargar agregar o editar elemento. Nos centraremos en la fila del proyecto. Quiero saber la fila seleccionada. ¿Cuál es el selector en b4 que es muy importante porque quiero obtener la información del elemento que han seleccionado y esa fila seleccionada se ubicará justo aquí en b4, por lo que la colocará en una variable llamada fila seleccionada si la fila seleccionada es igual a 0, excepto el sub a la derecha si no tengo una fila específica, debemos salir de esta a la derecha porque es una de las razones por las que necesito saber las filas seleccionadas. También necesito saber qué elemento específico se encuentra, si es que hay alguno. lo que quiero hacer es que voy a determinar si es un elemento nuevo o es un elemento existente, recuerde que dije que la fila del elemento se ubicará aquí si es un elemento nuevo b11 estará vacío, por lo que si b11 contiene una fila, sabemos que es un elemento existente si está vacío, es un elemento nuevo, así que si es un nuevo artículo ¿qué quiero hacer? Quiero tomar la categoría y quiero ponerlo directamente dentro de la categoría del artículo y quiero poner el campo uno, así que lo que sea que el usuario haya ingresado, digamos que ingresa algo como quiero ingresar un elemento nuevo, digamos que tenemos algunos equipos nuevos y digamos que tenemos algo así como una herramienta de sierra de madera, digamos una herramienta de sierra de madera, está bien, entonces tal vez queramos ingresar eso, así que si hacemos clic aquí a la derecha, es posible que desee ingresar que quiero poner el nombre que ingresaron directamente en el campo uno y también quiero poner la categoría en la que están dentro de la categoría aquí equipo, así que si cambian a artículos, digamos que no, no es necesario agregue que digamos que queremos entrar en elementos pero quiero agregar otro elemento y vamos a sa y tal vez quiera agregar un nuevo grifo, así que si pongo aquí el grifo, digamos blanco, así que es uno nuevo, quiero asegurarme de que si dijimos que sí, quiero asegurarme de que la categoría son artículos en este caso y el nombre que han ingresado está aquí bien, así que para hacer eso queremos asegurarnos de agregar el campo en particular, para hacer eso, la fila del elemento, avancemos, el valor del primer campo tomará lo que sea . es e en la fila seleccionada ese es el nombre que han ingresado y la categoría vendrá directamente de b5 quiero poner dentro de ese campo de categoría de ese formulario b5 b5 está aquí quiero asegurarme de que la pestaña seleccionada va para establecer ese valor predeterminado aquí mismo, establecer ese valor predeterminado en la categoría aquí lo extraerá directamente de b5, está bien, genial una vez que tengamos eso, ¿y si es un elemento existente ? si han seleccionado un elemento existente, quiero asegurarme de que extraigamos todos los datos de t sombrero elemento existente y para hacer eso necesitamos determinar la fila sabemos que la fila está ubicada en b11 entonces tenemos que tomar esa fila de elementos y b11 ponerla en una variable entonces vamos a ejecutar un bucle simplemente como lo hicimos con los clientes, así que lo primero que quiero hacer es establecer la categoría del artículo asegurándome de que la categoría sea igual a b y la fila del artículo sea la categoría que debería ser la categoría, obviamente, debería sea ​​esta categoría, pero básicamente lo que voy a hacer es tomar cualquier b y las filas de elementos, sea lo que sea que esté ubicado en la base de datos, quiero poner eso directamente dentro del campo de formulario llamado categoría de elemento, ahora puedo ejecutar un bucle tal como lo hicimos antes con los clientes de tres a siete vamos a tres por qué vamos a tres porque siempre hemos ido desde el nombre del artículo hasta el precio de venta de tres a siete y solo estamos poniendo esos campos en Ahora observe que nuestros campos comienzan en el campo uno, campo dos, hasta el campo cinco, así que eso es por qué necesitamos restar dos porque la columna del elemento comenzará en tres menos dos es uno, entonces el campo uno, el campo 2, simplemente vamos a agregar los datos, vamos a crear ese campo, vamos a agregarlo directamente desde los artículos directamente desde los artículos, la fila del artículo y la columna del artículo, trayendo todos los datos que llenan estos valores de artículos dentro de este formulario y, por último, vamos a mostrar el formulario que quiero mostrar ese formulario y así es exactamente como podemos mostrar un artículo nuevo con una categoría predeterminada, un nombre de artículo o un artículo existente con todos los datos dentro del artículo, está bien, pero ¿qué pasa cuando quiero guardarlo correctamente si decido que quiero guardar este artículo y quiero agregar una descripción? blanco faucet quiero darle un tipo de unidad digamos cada uno y quiero darle un costo de 25 y venderlo por 55 y guardarlo quiero asegurarme de que esa información se guarde en la base de datos y se complete aquí para entramos en los artículos vemos que el grifo blanco blanco fósil y todos los precios y todo se guardó, ese es el marcador en el que estamos entrando que se llama guardar o actualizar que está vinculado a ese botón tal como lo hicimos con el cliente, será muy simple , ciertamente queremos asegurarnos de que tenemos un nombre de elemento si está vacío, infórmele al usuario que vamos a obtener esa fila seleccionada proveniente de b4 poniéndola en una variable quiero saber en qué fila están cuál es la fila actual en la que están porque esa es la información que vamos a tener que completar, entonces lo que quiero hacer es buscar un elemento nuevo o existente, ¿verdad? Necesito saber si lo estamos guardando en una fila existente. b11 nuevamente nos dirá que estoy vamos a configurar la fila del artículo en función de si está vacía vamos a crear una nueva fila en la primera fila disponible dentro de la hoja de artículos vamos a tomar esa identificación del artículo que la próxima identificación del artículo vendrá de b12 aquí voy a tomar esa identificación voy a hacer dos cosas con ella voy a colocarla directamente dentro de b10 y voy a colocarlo en la primera columna dentro de la columna a para que podamos hacer eso aquí, así que b10 tomará la siguiente identificación del elemento y luego la columna a tomará lo que sea que esté en b10, así que eso lo establecerá ID de artículo único, sin embargo, si es un artículo existente, lo que quiero hacer es simplemente extraerlo de b11, todo lo demás que haremos, independientemente de si es un artículo nuevo o existente, vamos a tomar esa categoría. va a venir de b, eso va a venir directamente de b, irá dentro de cualquier valor que el usuario haya ingresado, irá directamente a la columna b en los elementos que son la categoría, entonces vamos a ejecutar ese ciclo desde 3 a 7 tal como lo hicimos antes, pero esta vez tomaremos lo que esté ubicado en ese valor de campo y lo colocaremos directamente dentro de la base de datos aquí , luego agregaremos ocultar ese elemento, entonces lo que quiero hacer es quiero restablecer esa lista de elementos seleccionados y por qué es importante porque es importante porque yo w Quiero asegurarme de que esa lista de elementos ahora contenga esa lista. Quiero asegurarme de que la lista de elementos seleccionados contenga ese valor. Tenga en cuenta que estos también están en ese valor en la lista de elementos seleccionados. ¿Cómo sé que eso se ubicará correctamente? aquí este nombre único quiero asegurarme de que esté ubicado aquí dentro de la lista de artículos para que esté disponible recuerde que tiene que estar en esta lista, así que si agregan ese nuevo grifo blanco aquí, debe agregarse en esta nueva lista aquí eso es lista de elementos seleccionada, por lo que necesitamos ejecutar esa macro para que podamos, en este caso, podríamos simplemente ejecutar el filtro avanzado , así que reinicie la lista de elementos en la última fila si es menos de cuatro, vamos a ejecutar un filtro avanzado basado en j2, simplemente agregamos el elemento correctamente, acabamos de agregar el elemento a la base de datos correctamente, pero quiero que ese fósil blanco aparezca dentro de nuestra lista de elementos seleccionados ejecutando el filtro avanzado una vez más según el elemento que va a poner esos resultados aquí que va ser esa lista otra vez Una vez más, solo para revisar, esta es la lista aquí. Si observamos los datos, sé que hay mucho que cubrir en esta pestaña seleccionada del elemento de validación de datos. Esta es la lista. Esta es la lista que estoy llenando correctamente al crear ese filtro avanzado. teniendo esos resultados aquí, es aquí donde se mostrará para asegurarse de que ese faucet blanco aparezca no solo aquí, sino que también esté disponible cuando escribo faucet y luego blanco quiero que aparezca en autocompletar, por lo que también debe estar en el en la parte inferior derecha, también queremos asegurarnos de que esté aquí abajo en la parte inferior aquí , asegurándonos de que también aparezca aquí, está bien, eso es importante, así que lo tenemos allí, por eso vamos a ejecutar este filtro avanzado una vez más y luego, por último, lo que quiero hacer es lo que el usuario haya puesto allí, si cambiaron el nombre, quiero asegurarme de que ese nombre cambió correctamente, si hago un cambio en esto, quiero que ese cambio se refleje correctamente, así que si reviso digamos sincronización blanca bien si lo dejo Intenté esta sincronización blanca. Quiero asegurarme de que ese nuevo nombre también aparezca aquí, así que quiero tomar ese nuevo nombre y aparecer directamente aquí. Te lo mostraré una vez más, así que haz el cambio aquí cada vez que hagamos un cambio. quiero asegurarme de que el retroceso de gritos aquí se guarde en esa actualización, así que asegúrese de que e y la fila seleccionada se actualicen con ese nombre de campo para que e en la fila seleccionada se actualice sea cual sea el nombre de campo y ese es el conjunto del elemento en el proyectos y eso lo restablecerá para que cualquier cambio, no solo cualquier cambio, pueda ser un cambio en la descripción o cambios en los costos del artículo o cualquier cambio también se complete automáticamente directamente en esta hoja para que haya cambios muy, muy buenos, me alegro de que nos pusimos al día con eso eso es todo para los artículos, así que hemos revisado los clientes, hemos revisado los artículos , hemos revisado el proyecto y luego solo tenemos algunos en la hoja del proyecto, en realidad nos hemos ocupado de esos así que en realidad solo unos pocos más en el proyecto, así que w tenemos eso y hemos cubierto guardar hemos cubierto nuevo hemos cubierto carga no hemos cubierto eliminar todavía y proyectar pdf imprimir y enviar por correo electrónico vamos a cubrir esos ahora mismo cubrimos la navegación bien entonces ahora que entendemos que las filas de la base de datos de elementos aquí, podemos eliminarlas y lo que me gustaría hacer es devolverlas al original, así que lo que voy a hacer es resaltar que voy a vaya a la casa y voy a configurar ese formato de número personalizado en particular para solo los puntos y comas podemos usar un punto y coma gracias ben cuatro números o tres para tres puntos y comas está bien, eso será ahora que están ocultos ahora podemos movernos nuestro grupo, nuestro mini panel aquí arriba, parece que se actualizó un poco aquí, así que lo mencionaremos muy bien, así que cubramos algunas de las otras adiciones que revisamos, así que continuemos con las macros del proyecto . lo dejamos aquí, cubrimos el proyecto bajo, pero lo que quiero hacer es generar ese proyecto Eso es muy importante si imprimo esto, obviamente, este es uno de los desafíos, si quiero imprimir esto, los tengo en tres u ocho pestañas diferentes , ¿cómo puedo imprimir esto o cómo puedo generar con todo en una columna pero todo? en un área para que podamos imprimir fácilmente y tener todos los artículos independientemente de la categoría e imprimir bien lo que podemos usar, podemos usar otro rango para eso, así que si nos deslizamos hacia aquí, es posible que ya lo haya visto, puedo tener el duplicado aquí para este en particular es automático, así que si decido que lo imprimiremos o crearemos un correo electrónico o alguien, ejecutará una macro que generará ese aviso, esto tiene solo algunos elementos, lo imprimirá sin embargo, si ejecuto uno de los más grandes, digamos que vamos a la identificación del proyecto 1 que tiene mucho, lo cargará y, por supuesto, si lo imprimo, lo imprimirá en la impresora predeterminada y notará que tiene muchos elementos correctos, así que conectémoslo a mi impresora predeterminada, así que aquí tenemos echa un vistazo tenemos artículos tenemos servicio de equipo y todos están muy bien separados y tenemos una gran variedad que podemos imprimir o enviar por correo electrónico o crear un pdf basado en eso bien entonces repasemos esto para lo primero lo que quiero hacer es crear un icono adicional, algo de información y una pequeña forma aquí y quiero tener algo de información que esté vinculada a las celdas originales f2, f3 y f4 están todas vinculadas a la información ubicada en el proyecto original y lo tengo de nuevo también vincula la identificación del proyecto, la fecha y, por supuesto, tenemos el precio total; sin embargo, si queremos mostrar, notamos que faltan la fecha y los costos; sin embargo, si cambiamos para volver a incluir la fecha en el pantalla de administración e incluir el costo cuando generamos eso aquí se ejecutará automáticamente, por lo que tenemos una macro que tampoco le mostró esa macro todavía , así que tenemos una macro que simplemente mostrará esto y mostrará esos costos las columnas están bien , entonces se crean automáticamente y, por lo tanto, ¿qué Entonces, lo imprimimos, queremos poder imprimirlo, así que avancemos y concentrémonos en la macro que va a crear esto automáticamente en función de eso, está bien, entonces vamos a entrar, se llama generar proyecto, esta es la macro antes de crear. un pdf antes de que lo imprimamos, este es el mac, se ejecuta la impresión y el correo electrónico está aquí abajo en crear pdf , está bien, así que se llama generación de proyecto, quiero generar ese proyecto, está bien, así que lo primero que queremos hacer dentro de esta macro está claro el contenido de las celdas existentes, ciertamente no queremos tener ningún dato aquí, así que lo primero que vamos a hacer es simplemente borrarlo borrar todos esos contenidos a continuación lo que quiero hacer es quiero para centrarnos en obtener la fila del elemento inicial , vamos a realizar un seguimiento de las filas a medida que nos movemos hacia abajo, así que vamos a comenzar la primera fila a partir de la fila 7 y luego crecerá a medida que construimos todos los datos bien, continuando ahora, me centraré en la base de datos de elementos del proyecto, queremos traer todos los los elementos del proyecto se basan en una identificación de proyecto específica ubicada aquí en la cola y las categorías ; sin embargo, van a cambiar. aquí, así que observe la comisión de categorías aquí, así que lo que vamos a hacer es usar este es nuestro criterio a medida que ejecutamos filtros avanzados , vamos a recorrer todas las categorías aquí, cada una y vamos a buscar datos dentro de esas categorías según el proyecto colocando esa categoría en particular directamente dentro de p3 a través de vba ejecutando un filtro avanzado y luego teniendo cualquiera de esos datos disponibles y luego llevándolos directamente aquí junto con un título, está bien, así que esto es lo que estamos vamos a hacerlo vamos a ejecutar ese filtro avanzado determinar la primera fila la última fila disponible de la base de datos de elementos del proyecto en función de la última fila de datos si son menos de cuatro vamos a salir del sub eso significa que no hay datos w Vamos a hacer que la actualización de la pantalla de la aplicación sea falsa y vamos a recorrer la fila de categoría de categorías que se encuentra a lo largo de 7 214, vendrá directamente de nuestra pantalla de administración, observe que tenemos 7 a 14. 7 a 14. queremos para asegurarnos de que hay un valor, por supuesto, vendrá de c y eso, así que vamos a asumir eso y luego lo que vamos a hacer es borrar todo el contenido de los datos anteriores, nuestros resultados vendrán de u a través de una columna u aquí hasta af ahí es donde van a venir los resultados, pero quiero borrarlos cada vez que hacemos un bucle, vamos a borrarlo borrando todos esos resultados, así que vamos a hacer eso allí con esta línea de código, luego lo que vamos a hacer es tomar esa categoría en particular del administrador c en la fila de categoría y siempre que no sea vacío lo vamos a colocar directamente dentro de p3 aquí arriba p3 una vez que lo tengamos que se va a establecer nuestros criterios de categoría, estamos listos para ejecutar nuestro filtro avanzado basado en a3 y hasta n en la última fila de la base de datos de elementos del proyecto, por lo que irá desde a3 hasta n en la última fila, aunque el criterio será p2 hasta el final a través de q3, por supuesto , la identificación del proyecto ya está vinculada a lo que sea que esté en n2 porque estamos imprimiendo la categoría existente de p2 a p3, así que lo que va a hacer aquí dentro y ahora los resultados vendrán de p2 a q3, los resultados que vamos a determinar. la última fila nuevamente basada en el nombre de ese elemento en la columna v tal como lo hicimos antes aquí, esa es la última fila de resultados si es menos de tres, entonces no tenemos elementos de categoría, podemos omitir todo esto, de lo contrario, si hay valores que vamos a hacer algunas cosas lo primero que quiero hacer es tomar esa categoría y quiero colocarla directamente aquí dentro quiero ponerla aquí en esa categoría así que si ponemos los elementos correctos digamos que ponemos artículos aquí quiero v ser capaz de poner en mis artículos quiero cond Formato tradicional para colorear esa fila, pero lo quiero muy específico. Quiero que esa fila esté coloreada solo si hay valores en esta celda pero no en otras que ves cuando la imprimimos, sigamos adelante e imprímala y lo que va a hacer es generar eso. podría ejecutar la macro que sería un poco más rápida, así que lo que quiero saber es que quiero saber las celdas que contienen información en la columna s, pero en ningún otro lugar . No quiero ponerlas en negrita, quiero asegurarme de que son mayúsculas , por supuesto, mayúsculas, vamos a pasar por vba y le daré ese color azul, así que si echamos un vistazo a algún formato condicional aquí, también tenemos algunos conjuntos de formato condicional, así que si manejamos esas reglas, vamos a ver que tenemos tres formatos condicionales, el primero se usará solo para categorías si editamos esa regla, podemos ver que vemos que s que comienza en la fila 7 no es igual a vacío, lo que significa que hay algo allí y quiero para asegurarse de que t es igual a vacío y u es igual a eso significa que no habrá descripción ni cantidad, por lo que cualquier tipo de fila que no tenga descripción ni cantidad, pero vamos a suponer que esa es una categoría, le daremos un color en negrita y un fondo azul. de lo contrario , van a estar alternando filas asegurándose de que este sea el aprendizaje condicional que aparece por encima de cualquier otra persona para que ese tenga prioridad, por supuesto, aquí tenemos filas pares o filas impares si editamos que vemos que eso es para filas impares correctas impares filas a lo largo queremos asegurarnos de que s 7 no sea igual a vacío y u 7 no sea igual a vacío y para las filas impares le daremos ese color azul claro y para las filas pares le daremos solo un poco un poco de un color más claro, son casi del mismo color y estos son para filas pares, por lo que incluso si se elimina automáticamente el color , probablemente podría cambiarlo a un poco más oscuro, de lo contrario, es casi imposible ver si lo rellena, tal vez nosotros. Le daré un efecto de relleno. Queremos un color un poco más oscuro. podemos hacer eso o podemos darle más colores y solo darle un poco más oscuro justo ahí, está bien, eso es un poco más oscuro allí, es un poco más evidente, ahí vamos, así que es una fila más oscura para que podamos ver que nuestras filas impares se llaman azules, mientras que nuestras filas pares son de color blanco y luego nuestras filas que contienen solo un elemento y nada dará un color azul para nuestras categorías, así que quiero colocar esa categoría directamente en la columna s y esa fila, así que vamos para hacer eso aquí mismo, la columna s y la fila del elemento, la fila del elemento va a cambiar, vamos a usar el caso u, quiero la mayúscula de lo que sea que sea esa categoría en el átomo y voy a establecer c esa categoría en mayúsculas, luego vamos a incrementar la fila de elementos y luego lo que quiero hacer es traer todos los elementos asociados con esa categoría a través de los proyectos r a z y la fila de elementos más los últimos resultados fueron todos menos tres últimos recursos de mi corriente básicamente lo que va a hacer es bri ng en todos los elementos desde r hasta z y vendrá directamente desde aquí desde u hasta aquí hasta ac y traerá todos esos elementos directamente aquí, así que eso es todo lo que tenemos que hacer, luego todo lo que tenemos que hacer lo que tenemos que hacer es actualizar esa fila de elementos para que la fila de elementos que necesitamos incrementar sea igual a la fila de elementos más los últimos resultados fueron en -2, lo que significa que la siguiente fila de elementos se ubicará aquí, por lo que menos 3 sería Estar aquí menos 2 estaría aquí, así que ahora estamos listos para agregar la siguiente categoría a medida que hacemos un bucle, continuamos con nuestro bucle, así que simplemente vamos a recorrer todas nuestras categorías para cada una que estamos ejecutando . filtro avanzado si hay datos vamos a colocar esa categoría en mayúsculas y luego vamos a traer los datos eso es todo lo que tenemos que hacer a continuación quiero establecer un pie de página ahora tengo un pie de página flotante este pie de página es basado en formas y básicamente son solo varias formas aquí y quiero colocar eso directamente aquí para que en podemos imprimir eso así que esta forma tengo un cuadro de texto aquí ahora este cuadro de texto está ubicado en b33 y b33 es nuestro mensaje de pie de página ahora si recordamos nuestro nombre de mensaje de pie de página se encuentra aquí dentro oh vamos a subir eso 06 aquí, tenemos una lista desplegable de nuestros mensajes de pie de página aquí para que podamos desplegarla y seleccionar diferentes mensajes de pie de página, así que si quiero que el mensaje de pie de página se base en este nombre, si miramos dentro de b33, tenemos el texto del mensaje de pie de página. Tengo dos rangos con nombre, uno para el nombre y otro para el texto real, así que si voy a indexar ese texto, eso es lo que quiero extraer y quiero saber en qué fila está, será la fila en la que se base cuando usamos el formato de coincidencia basado en buscar ese nombre en o6, lo ejecutaremos en función de la matriz del nombre del mensaje y queremos la coincidencia exacta y queremos la columna uno si hay un error, regresaremos vacíos, así que básicamente cuando el usuario haga un cambio aquí, lo cambiaremos para que se cambie automáticamente cambiar este texto sea lo que sea básicamente estamos buscando este nombre y estamos extrayendo este texto y vamos a colocar ese texto porque ese texto ubicado b 33 está vinculado a esta forma va a mostrar esa forma esta forma particular ubicada en b33 tengo algunas otras formas aquí tenemos algunos totales aquí que también se mostrarán en el pie de página tengo una forma esta tiene forma simplemente con el texto subtotal impuesto sobre las ventas esta va a ser dinámica porque no No sé cómo lo llamaremos, tal vez lo llamemos gst a las 8 o lo que sea en la administración, así que si cambiamos el impuesto aquí , si cambio esto dentro de esto, aumentemos eso, digamos ocho por ciento y queremos llamarlo gst quiero ese nombre y esa tasa reflejada dentro de ese pie de página, así que si volvemos a los proyectos , vemos que ahora dice gst al ocho por ciento, así que quiero ese enlace, por lo que esta forma ahora está vinculada a b26 , así que tomemos eche un vistazo dentro de b26 y eche un vistazo a eso, así que saquemos esto un poco así que w Podemos verlo ahora, así que vemos que la estimación es buena, así que debería haberlo sacado a la luz antes, así que b26 si estamos echando un vistazo, vemos que el gst, la descripción del impuesto, es básicamente si la opción de impuestos es igual, no significa que sí quieran. para cobrar impuestos si no quieren cobrar impuestos vamos a mostrar negro si quieren mostrar impuestos vamos a poner cualquier nombre de impuesto que sea una variable cualquier nombre de impuesto gsd luego un espacio y luego Quiero poner esa tasa impositiva. No quiero formatear esa tasa de texto usando la función de texto en suficiente texto basado en porcentajes, de modo que nos dará el texto. Si lo vinculo a una forma, siempre mostrará esa forma dinámica. si el impuesto es no, aparecerá en blanco este en particular el impuesto ahora tenemos el subtotal aquí b30 el impuesto ubicado b 31 y el total b32 así que si simplemente vinculamos a esos y los miramos entonces tenemos el precio del subtotal ahora echemos un vistazo a eso otra vez quiero ese subtotal que voy a sumar si de nuevo vamos a usar ou r existente aquí pestaña si la pestaña si los elementos están seleccionados, vamos a totalizar esto; de lo contrario, vamos a llegar a lo que esté en la base de datos y eso es justo lo que tenemos aquí, así que algunos si los elementos del proyecto proyectan n2 proyecto, entonces estamos va a menos, por lo que estamos subtotalizando todo en la base de datos, los elementos del proyecto, cada elemento en la base de datos, independientemente de esto, en caso de que, independientemente de la categoría, todo se sume dentro de ese número, por lo que está allí, sin embargo, quiero restar lo que sea que esté en la categoría actual cómo menos lo que sea que hay en la categoría actual aquí mismo, por lo que la categoría actual se resta y luego vamos a continuar y agregar esto, así que estamos agregando esto aquí en la última parte , algo más, así que esa es otra forma de hacerlo simplemente estamos sumando todo restando la categoría actual pero añadiéndolo aquí de nuevo en función de que de esa manera, si el usuario realiza cambios en vivo antes de guardar, esos cambios se agregan y ese es nuevamente nuestro precio subtotal nuestro el impuesto subtotal es simplemente si la opción de impuestos es igual a cero, lo que significa que no quieren cobrar, mostraremos vacíos; de lo contrario, multiplicaremos la tasa de impuestos más b30, probablemente podríamos hacer que cero probablemente debería ser cero, cero está bien, pero de esa manera, cero mostrará cero si no es así y, de lo contrario, es simplemente la tasa de impuestos multiplicada por 30 b 30 mientras que en b30 y luego tenemos nuestro precio total, que es simplemente el subtotal más el impuesto y eso nos dará nuestro total allí. Está bien , me alegro de poder mostrarte que ese era el precio subtotal, por lo que todos están vinculados al pie de página ahora que entendemos cómo hacemos este pie de página, he creado un grupo de todas estas formas y nosotros Lo llamaré grupo de pie de página y regresaré a nuestra macro. Quiero colocar ese grupo de pie de página. Básicamente, quiero colocarlo. Sabemos que nuestra última fila de elementos está aquí. Quiero agregar a nuestra última fila de elementos y asegurarnos de colocarla directamente la parte superior aquí, así que nuevamente lo haremos con el grupo de pie de página de proyectos a la derecha del proyecto cts r1 vamos a establecer esa posición izquierda, vamos a establecer la fila superior en función de la última fila de elementos, ya la hemos incrementado aquí y vamos a establecer el ancho ahora, la razón por la que quiero establecer el ancho quiero convertirlo en un ancho dinámico porque recuerde que a veces no mostramos no mostramos nuestra fecha correctamente no mostramos nuestro costo pero quiero asegurarme de que el ancho de ese pie de página se base en la columna r a través de z, así que vamos a tomar el ancho de esas columnas y vamos a establecer ese pie de página predeterminado al ancho de eso, así que podemos hacer eso aquí para que el ancho sea simplemente igual a los proyectos de ancho de las columnas r a z configurando el ancho y asegurándonos de que sea visible, aunque siempre debería ser visible, está bien , ahora estamos listos, ahora tenemos ese pie tal como lo queremos, ahora lo que queremos hacer es actualizar el área de impresión porque vamos a necesitar esta impresora, sabemos que la impresora comenzará en r1, pero cuál es el final que vamos a usar la fila del elemento más estamos agregando a eso, por lo que el área de impresión es simplemente igual al área de impresión de configuración de la página de proyectos r1, sabemos que comienza con eso , sabemos que terminará con z y será la fila del elemento más 2. eso configura nuestra impresora y vamos a activar la actualización de la pantalla de la aplicación muy, muy simple, así que si quiero imprimirla bien, si quiero ejecutar esa impresión, es la misma macro que hemos estado haciendo con este botón aquí, todo lo que hago Lo que tenemos que hacer es ejecutar la macro anterior que acabamos de repasar en el proyecto, generarla primero y luego simplemente imprimirla, asegurándonos de que estamos configurando el área predeterminada de impresión y asegurándonos de que estamos respetando la configuración de impresión correcta y poniendo a la impresora predeterminada y asegurándonos de que estamos respetando esa página, configure el área de impresión que está bien, así que eso es todo, así que para imprimir ahora, ¿qué pasa si quiero crear un pdf, bueno, si quiero crear f otra vez vamos para ejecutar la macro que genera todo eso asegurándose de que se vea bien y ordenado y generar todo eso y luego todo lo que quiero hacer es crear un nombre de archivo para ese pdf ahora nombre de archivo vamos a usar la ruta actual del libro de trabajo que es la más fácil vamos a agregar una barra invertida a eso y estoy voy a darle un nombre específico voy a darle ese nombre de cliente ubicado en f2 y luego voy a usar guión bajo y proyecto y voy a usar esa identificación de proyecto ubicada en n2 asegurándome de que termine con un punto pdf porque eso es lo que vamos a crear una vez que tenga ese nombre de archivo exactamente, lo que quiero hacer es eliminarlo si ese archivo exacto ya existe en la carpeta, podría crearlo si intentamos crearlo nuevamente, así que vamos a verificar si existe usando la función de directorio, luego vamos a matar el archivo, eliminar el archivo que existe, luego podemos crear ese pdf usando la exportación de proyectos como un tipo de formato fijo es pdf y el nombre del archivo es falso y verdadero queremos quiero mostrarlo después de este este en particular si echamos un vistazo vamos a retroceder podemos ver que está bien para que podamos ver abierto después de la publicación. Tengo ese verdadero establecido en verdadero, así que lo abriremos. Sin embargo, cuando creemos un correo electrónico, usaré lo mismo pero no lo haré. voy a ponerlo como false right export así que este es falso cuando hacemos el correo electrónico porque quiero mostrarlo y de esa manera cuando creamos el pdf que es y todo lo que tengo que hacer es simplemente hacer clic en proyecto pdf aquí va a crear ese pdf y lo va a mostrar, así que va a ejecutar que generar va a mostrar eso y va a crear ese pdf observe el nombre johnny james project 1 pdf así que tiene ese buen proyecto y pdf todo listo para vaya bien y, por último, proyecte el correo electrónico antes de llegar a ese pequeño panel de control. Tengo que hacer el correo electrónico . Es muy, muy simple. Vamos a generarlo tal como lo hicimos antes de asegurarnos de que hemos guardado el proyecto correctamente. lo he hecho en la impresión también, pero está bien , el nombre del archivo es simple, queremos asegurarnos de que tenemos e un nombre de archivo establecido tal como lo hicimos antes, tal como lo hicimos con el pdf y luego vamos a crear el pdf esta vez queremos enviarlo por correo electrónico, así que ya tenemos el pdf creado en función de este nombre de archivo en este momento todo lo que tenemos que hacer es crear un correo electrónico. Vamos a dimensionar la aplicación de Outlook y el Alec como objetos. Lo haremos aquí. Ambos deben ser objetos. Voy a crear ese correo electrónico usando la aplicación de la aplicación de Outlook. está bien , hacer eso aquí abajo exportar la aplicación de Outlook es igual a crear la aplicación de búsqueda y luego vamos a crear ese correo electrónico asociado con eso, lo configuraré a la derecha, sé que la fila del cliente está ubicada en b8 si conozco el fila del cliente y no extraeré la lista de correo electrónico, sé que la fila del cliente se encuentra aquí en b8 si lo sé y busco clientes y sé que su correo electrónico se encuentra en la columna h, entonces todo lo que tengo que hacer es solo decir la columna de clientes h más la fila de clientes que es nuestro correo electrónico de cliente adjuntar ese nombre de archivo que estamos agregando ese fi el asunto establece algún tipo de asunto dinámico, nada en el cuerpo y luego lo muestra, eso es todo, eso es todo para el correo electrónico, está bien, el último en este módulo en particular es la eliminación, así que antes que nada queremos darles una confirmación, ¿está seguro? queremos eliminar este proyecto sí o no si el proyecto b2 necesitamos saber si se guardó o no correctamente si deciden si estamos en un proyecto y creamos un nuevo proyecto y ponemos un cliente y ponemos algunos información, decidimos que queremos eliminarla correctamente, no necesitamos continuar mucho, no eliminamos la fila de la base de datos, entonces, ¿cómo vamos a hacer eso? Simplemente actualicemos esta columna correctamente , probablemente debería cambiar eso para mover pero no t dimensionar qué celdas para que se actualice correctamente allí vamos, así que lo que quiero hacer es simplemente eliminarlo, no necesitamos eliminar ninguna de las bases de datos, obtener esa confirmación y simplemente hacer clic en el proyecto se eliminó y agregar nuevo para que sea muy, muy simple si aún no hemos creado uno, por supuesto, entonces lo que Sin embargo, lo que quiero hacer si se guarda es asegurarme de eliminarlo tanto en la base de datos del proyecto como en las filas de elementos del proyecto asociadas ubicadas en la base de datos de elementos del proyecto, por lo que debemos hacer todas las filas para hacer que lo que queremos hacer es ejecutar a través de las macros, entonces b2 nos informará si se ha guardado, si no se ha guardado, podemos omitir todo esto, voy a obtener esa fila del proyecto de b2, esa es la fila del proyecto que necesitamos eliminar para que el la fila del proyecto de la base de datos del proyecto y el proceso de la ruta eliminan toda la ruta. Esto eliminará la fila del proyecto, pero también necesito eliminar todos los elementos asociados con ese proyecto . sobre esto, determine la última fila de los resultados si son menos de tres, no tenemos elementos , quiero ordenar esos elementos en función de la descendente inversa, lo que significa que la fila más alta asociada con la primera a la derecha si quiero eliminar esto y voy a la base de datos de elementos del proyecto y tengo un montón de elementos aquí, pero lo que quiero hacer es eliminar todos los elementos asociados, por lo que solo el proyecto no se basa en la categoría, todos los elementos asociados, por lo que nuestro criterio será solo q2 a q3, justo q2 es donde está nuestro criterio. q2 a q3 solo el proyecto d, independientemente de la categoría, todos los elementos, pero luego, una vez que los obtenga, quiero basarlo en la fila del proyecto, observe que quiero lo contrario, lo que significa que en este caso, primero eliminaría la fila 14 y luego nueve, así que quiero básicamente ordenarlos en función de af y quiero que descienda para que la base de datos sin procesar más alta aparezca primero, así que eliminamos la fila 14, luego eliminamos 13 y así sucesivamente y así sucesivamente en reversa para hacer eso estamos vamos a tener que ordenarlo bien, así que vamos a borrar todos los campos almacenados, vamos a basarnos en un proyecto hermano, es la fila asociada con el proyecto, esta es la base de datos, Rusia la etiquetó como fila de la base de datos, esta es la que nosotros quiero que 25 sea el primero y luego baje, por lo que ae es correcto correcto ae y luego vamos a ir a 83, este es el crudo en el proyecto, es insignificante para nuestros propósitos para eliminar, está bien, está bien, continúa también vamos a eliminar esa ordenación en función de la descendencia y luego vamos a recorrer cada fila de tres a la última fila de resultados colocando esa fila en una variable llamada fila de la base de datos del elemento del proyecto desde ae de donde proviene esa es la fila del elemento del proyecto, luego eliminaremos un miembro cuando tenga que eliminarlo que siempre desea eliminar en reversa, la fila más alta primero 25 a y arrojada, por lo que es muy importante y luego no hay resultados y luego simplemente le informamos al usuario que el proyecto se eliminó , por lo que si creamos un nuevo proyecto aquí, cree un nuevo proyecto seleccionando un cliente aquí y luego no necesitamos, no necesitamos el nombre del proyecto, solo vamos a eliminarlo, guardar ese proyecto, agregar algunos elementos individuales aquí, guardar esos elementos aquí, cualquier servicio o lo que sea, y luego podemos guardarlo y luego estamos va a borrar así que voy a guardar ese proyecto, luego voy a eliminar ese proyecto, no lo hagamos por ahora, echaremos un vistazo dentro de la base de datos de elementos del proyecto, bajando hasta la última fila, echemos un vistazo hasta el final. ese es el elemento del proyecto siete . Tenemos tres elementos asociados con eso aquí en las filas 93 91.92, así que los pondremos al revés si pasamos a los proyectos y los eliminamos y hacemos clic en sí, queremos que esos proyectos se hayan ido. Volviendo al proyecto, vemos que no hay elementos del proyecto, no hay más elementos para el número siete. Si entramos en la base de datos del proyecto, no hay cuatro siete, por lo que no tenemos eso, por lo que todo se ha eliminado. las macros para los proyectos, por último, todo lo que tenemos es este tablero realmente genial y tenemos algunos datos aquí, así que quiero saber la ganancia asociada con un trabajo en particular, quiero saber esa ganancia y también quiero saber cuánto es la ganancia estimada el precio total el costo total del trabajo y quiero saber th e precios por categoría quiero saber la categoría cuánta comisión cuántos artículos en este particular y quería asegurarme de mostrar en vivo correctamente ya que lo estamos haciendo bien, así que lo que hacemos es crear un poco de información aquí en el elemento, así que quiero saber básicamente un enlace a todas nuestras categorías de proyectos y luego quiero hacerlo solo una suma si nuevamente vamos a usar la misma fórmula que quiero sumar si quiero sumar todos los elementos guardados sin embargo, si está en la pestaña seleccionada, quiero usar la columna l, por lo que estamos haciendo exactamente la misma fórmula aquí nuevamente si es igual a ae17 right b5 es igual si esto significa que es la pestaña seleccionada para seleccionar la pestaña en la que estamos sumando lo que hay columna l, de lo contrario , lo estamos sumando de la base de datos, recuerde que lo estamos sumando en función de lo que se encuentre aquí, esa categoría que se encuentra en ac y 17 aquí, así que lo estamos sumando en función de la categoría de ac 17 . baje esto, lo resume todo en las categorías y en las categorías seleccionadas que vamos a usar el actual así que tengo que también quiero saber los totales correctos estamos teniendo los mismos totales exactos acabo de usar la misma fórmula l2 l3 y l4 así que básicamente nuestros totales aquí son totales aquí está ubicado en b29 b32 y b alterado l2 entonces tenemos el costo total aquí ubicado en b29 esas son las mismas fórmulas que repasamos aquí costo que realmente no repasamos pero es exactamente lo mismo que hicimos antes del costo la única diferencia es que estamos sumando los elementos del proyecto del producto costo total esa es la única diferencia el costo total y estamos haciendo en lugar de la columna l que estamos haciendo para el artículo seleccionado estamos haciendo la columna j entonces eso va a hacer el costo total de lo contrario hacemos el precio total así que también quiero saber el costo que el costo va a subir aquí también va a ir aquí así que sabemos el costo total y también quiero saber más el impuesto total y el costo total así que básicamente el costo subtotal es exactamente el mismo que el otro excepto que solo estamos sumando diferentes columnas, está bien, así que tenemos th e costo aquí, por lo que lo traerá aquí, así que básicamente el costo total se encuentra en l2, el precio total está en l3 y la ganancia estimada es un l4, por lo que básicamente es solo un enlace a lo que se encuentra aquí l en estimado la ganancia es simplemente el precio total menos el costo total, está bien, muy, muy simple aquí, así que quiero incluirlos, así que acabo de construir un gráfico de acuerdo y también quiero otro porcentaje de ganancia, así que acabo de crear un gráfico de anillos basado en esto, así que si seleccionamos aquí y creamos una estrella de dona, podemos insertar a la derecha y miramos dentro de pi y queremos crear un gráfico de dona aquí y queremos verificar que tal vez hagamos los colores asociados con nuestro tema de color aquí entonces seleccionaremos esos colores, luego podemos agregar un título de gráfico, luego podemos agregar, por supuesto, diferentes etiquetas de datos si queremos, queremos agregar etiquetas de datos, podemos y luego simplemente formateamos esos en consecuencia y este lo configuraríamos También puede configurar aquí el formato de aquellos si hacemos clic en el formulario. en la serie de datos, también podemos cambiar el tamaño de la dona, ¿verdad? Queremos cambiar eso, si queremos cambiarlo, por supuesto, podemos formatear esos relativamente simples, así que eso es todo lo que hice para la dona, así que podemos eliminar eso y simplemente personalizar el canal de gráfico relativamente simple para el gráfico circular de nuevo muy, muy similar simplemente bajando los datos insertando eso para el gráfico circular este solo usamos un gráfico circular simple configurando el color según nuestro tema aquí y luego, por supuesto, lo personalizamos mostrando las etiquetas en consecuencia y luego mostrando que eso es más o menos, es relativamente simple en el tablero, solo algo para darnos un aviso rápido y para obtener ganancias, todo lo que hice fue vincular una cadena de texto basada en a af20, ¿verdad? Podría haberla vinculado. aquí mismo cualquiera de los dos va a mostrar que nuestro beneficio hace lo mismo l4 estaría bien así que cualquiera de ellos va a estar bien y lo que quiero hacer es asegurarme de que esté formateado correctamente para que tú notaré que t su ganancia particular ha sido formateada si se transmite todo lo que queremos hacer es dividir af19 por af18 y eso nos dará nuestro porcentaje de ganancia estimado, está bien, probablemente agregaré más sobre esto de nuestra campaña de patreon, si quieres ver algo más. si quiere vernos alcanzar ciertos límites de ganancias o hacer algo cuando lo alcancemos o tal vez quiera que amplíe un tablero, puedo hacer eso para nuestros miembros de patreon, agregaré esto, espero que se una a nosotros allí porque es una plataforma fantástica con toneladas de contenido excelente, no olvides que también tenemos 250 de mis mejores plantillas, es una compra increíble, tenemos que está disponible para que puedas hacer clic en los enlaces a continuación, agradezco tu continuo apoyo como siempre, no olvides suscríbase, haga clic en la suscripción como este video, comente a continuación, me encantaría escuchar sus pensamientos , ¿ qué piensa sobre esto, qué más, de hecho, también tengo un nuevo curso independiente que se lanzará en unos meses? de que Ver el comercio en el que estás no tendrá nada que ver con Excel, pero va a ayudar a los trabajadores independientes no solo a obtener trabajos, sino también a crear un gran valor y, por supuesto, se les pagará por hacerlo donde sea que vivan en el mundo, así que estoy trabajando en eso, si ha tenido algún dolor, problema, desafío o problema que desea que aborde en el curso, ahora es el momento de hacérmelo saber, siéntase libre de enviarme un correo electrónico randy a excel4freelancers.com comente a continuación o póngalo en nuestro grupo i quiero escuchar sus comentarios para poder asegurarme de que es el mejor curso para autónomos o la mejor academia para autónomos. Probablemente lo llamaré para crearlo. Muy bien , muchas gracias y nos veremos quizás la próxima semana o la próxima semana después los crearemos cada dos semanas, está bien, gracias de nuevo, hasta la próxima

Noticias relacionadas