hola, esto es randy con excel para trabajadores independientes y bienvenido a los estados de cuenta de los clientes en la capacitación de esta semana, le mostraré cómo crear estos estados de cuenta de clientes increíbles completos con un rango dinámico de días podemos imprimir un solo estado de cuenta enviar un solo estado de cuenta o podemos imprima todos los estados de cuenta o envíe un correo electrónico según varias opciones, será una capacitación increíble, no puedo esperar, así que comencemos bien , muchas gracias por unirse a mí hoy. La aplicación parece familiar. La semana pasada hicimos la mini aplicación de contabilidad. Era una aplicación de conteo de cuentas increíble y decidí por qué no crear justo encima de esto. y estados de cuenta en un solo documento tal como lo hacemos muy a menudo en los negocios, enviamos a nuestros clientes un estado de cuenta de todas sus facturas y pagos y ba lanzas y haciéndoles saber lo que se debe y lo que no, eso es lo que vamos a crear el estado de cuenta del cliente hoy y lo estamos construyendo justo encima de esta mini aplicación de contabilidad si se perdió la mini aplicación de contabilidad, no es necesario pero es muy, muy útil y la capacitación increíble que hicimos la semana pasada. Incluiré el enlace a continuación que es la mini aplicación de contabilidad. Esta semana estamos construyendo nuevamente además de eso, la declaración del cliente, por lo que toda esta sección aquí a la izquierda es completamente nuevo, así que vamos a cubrir solo esto hoy y nos dará la capacidad de crear un estado de cuenta del cliente basado en un rango de fechas basado en una fecha de estado de cuenta específica. para personalizar un pie de página , el pie de página aquí en las declaraciones ubicadas en el pie de página personalizado aquí, así que tenemos un pie de página personalizado y muchas opciones de personalización, así que espero que se quede con nosotros en esta capacitación, será realmente excelente y una gran adición si te gusta En estas capacitaciones, solo pregunto algunas cosas, todo lo que necesita hacer es suscribirse al canal. Me aseguraré de que estas notificaciones le lleguen siempre que haga clic en la campana del ícono de notificación. Si le gustan estas capacitaciones, tengo 250. de mis mejores plantillas disponibles para usted en este momento y voy a incluir la mini aplicación de contabilidad como un bono especial, por supuesto, además de eso si elige el libro de trabajo 250 con la opción pdf y eso significa que los libros de códigos pdf están incluidos y usted Puedo ir paso a paso, línea por línea, dentro del código con esos archivos PDF, así que espero que comprendan que ese es el libro de trabajo 250 en un solo archivo zip . Incluiré el enlace a continuación. Comencemos con esta capacitación. la idea es cuando creamos una factura o hemos estado facturando a nuestros clientes, a veces también queremos enviarles un estado de cuenta o tal vez queremos enviarles estados de cuenta mensuales regulares para aquellas personas con saldos , podemos hacerlo ahora con esta aplicación, por ejemplo si nosotros decidimos que queremos para imprimir este estado de cuenta y queremos incluir la factura seleccionada, todo lo que tenemos que hacer es imprimirlo , lo imprimirá dos veces, primero imprimiremos la factura y luego, por supuesto, imprimirá ese estado de cuenta en particular en segundo lugar para que vea el la factura apareció primero y luego tenemos el estado de cuenta este estado de cuenta en particular tiene en realidad tres páginas podremos hacer estados de cuenta de varias páginas, así que lo mostraremos aquí vemos que en realidad tenemos tres páginas diferentes en este estado de cuenta, así que es un complemento de aplicación realmente flexible y le mostraremos cada paso, también podrá enviar esos estados de cuenta por correo electrónico y, por supuesto, imprimiremos varios estados de cuenta para cualquier cliente con un podemos hacer cualquier saldo o cualquier saldo vencido cualquier saldo más de 30 días 60 días o 90 días vamos a tener todo eso disponible en el estado de cuenta ahora esto por supuesto es el pedido de factura que cubrimos en la capacitación original tenemos agregar nuevas estimaciones órdenes de trabajo y facturas estamos no voy a g et en eso solo nos vamos a centrar en las declaraciones ahora la declaración en sí se encuentra en el lado derecho aquí esta es la declaración real esto es lo que se completa y podemos hacer hasta tres hojas diferentes, por supuesto, puede agregar más como mejor le parezca bien, estos estados de cuenta individuales tienen un encabezado de tenemos un nombre de cliente e información del cliente tenemos una fecha de estado de cuenta a desde fecha a hasta fecha y el saldo de la cuenta junto con columnas de fecha de pedido número de pedido el tipo de pedido correcto si queremos poner varios pedidos, digamos que tal vez queremos tener estimaciones ubicadas también en la declaración, podemos hacer eso cuando generamos esa declaración en particular, todo lo que tenemos que hacer es agregar eso allí muy fácilmente podemos obtenga una vista previa de eso y eso lo generará con ese o esos pedidos en particular allí y ahora tenemos estimaciones, como puede ver, hemos impreso eso e incluyen estimaciones y en nuestro original ahora incluyen estimaciones para que podamos hacer otro tipo de orden s aquí tenemos estimaciones ahora o tal vez solo las queremos para las facturas, por lo que podemos cancelar la selección de estimaciones, podemos hacerlo con órdenes de trabajo u órdenes de compra, si quisiéramos, podemos incluirlas todas, por lo que será realmente un gran tipo de estado de cuenta flexible que vamos a poder agregar aquí y obtener una vista previa y lo guiaré a través de cada paso, por supuesto, y lo que tenemos aquí es la factura original y tenemos todo esto por lo que todas las secciones son para la declaración del cliente si queremos un rango de fechas específico como este mes o el mes pasado ese mes ese año podemos agregar ese rango de fechas también ese rango de fechas en particular proviene de nuestra sección de administración esta pantalla de administración es de la mini contabilidad original , sin embargo, la parte que vamos a usar hoy es este rango de fechas, aquí tenemos un rango con nombre llamado rango de fechas desde el que se corresponde y dos direcciones, dos fechas, lo que significa que seguimos adelante y cambiamos esa fecha. rango dentro de la orden pantalla cuando hago ese cambio, quiero asegurarme de que las fechas desde la fecha y las dos fechas cambian automáticamente, actualmente está en junio, por lo que el último mes fue, por supuesto, del 1 de mayo al 31 de mayo, sin embargo, si queremos sintonizar hoy sería el 16 de junio, que es la fecha actual de esta grabación, por lo que la mantendremos este año, lo que nos permitirá la mayor flexibilidad en la mayoría de los tipos de pedidos. Si nos desplazamos aquí , vemos que tenemos un pie de página aquí como se mencionó anteriormente y quiero que ese pie de página se base en los pies de página que agregamos dentro de la pantalla de administración, por lo que ahora dentro de la pantalla de administración tenemos pies de página, por supuesto, anteriormente teníamos metraje para facturas y estimaciones y órdenes de trabajo y órdenes de compra y ahora también podemos poner uno para nuestra declaración, lo cual es bueno, tenemos una declaración predeterminada en caso de que queramos agregar eso para que podamos poner eso en los detalles de pago y podemos poner cualquier mensaje de pie de página que queremos que aparezca en nuestro estado de cuenta y que, por supuesto, se imprimirá en un pdf en una impresora o en una vista previa cuando veamos ese pie de página en todas y cada una de las páginas del estado de cuenta, por lo que si nos desplazamos aquí vemos que ahora, para llegar a eso, todo lo que necesitamos usar es la fórmula porque la conocemos, así que si nos desplazamos aquí, echamos un vistazo a la fórmula dentro de aquí, lo que queremos hacer es insertar el texto del mensaje de pie de página ahora este nombre en particular range es el rango con nombre para nuestro texto, así que si miro las fórmulas y el administrador de nombres y me desplazo hacia abajo y veo que busco el texto del mensaje de pie de página, ese será el texto basado en todo el texto dentro de nuestra pantalla de administración, también tenemos nombre del mensaje de pie de página estos son para el nombre, así que tengo dos rangos con nombres individuales diferentes, ambas dinámicas, por lo que van a crecer a medida que las agreguemos, una para el nombre y otra para el texto, y de esa manera podemos asimilar fácilmente ambas entonces, cuando sabemos cuándo el usuario ingresa una declaración específica, colóquela e de una validación de datos, echamos un vistazo a estos datos y luego vamos a la validación de datos, vemos que este es el nombre del mensaje de pie de página para que el usuario pueda seleccionar entre todos los nombres de mensajes de pie de página cuando lo hagan, lo que vamos a hacer es use una fórmula, simplemente indexaremos el texto del mensaje de pie de página, lo compararemos según lo que el usuario haya ingresado en d20 y luego lo que haremos será buscar la fila específica que estamos vamos a devolver la primera columna y eso devolverá el texto del mensaje de pie de página , vamos a usar la misma fórmula en cada una de las hojas, así que tenemos que, de hecho, voy a vincular esto, esto será igual a solo voy a vincular esto a la primera hoja aquí y voy a hacer lo mismo con la última hoja y eso es exactamente lo que quiero, no necesitamos usar la misma fórmula, es volátil, así que no No es necesario que todo lo que tenemos que hacer es vincularlo al primero y eso será suficiente para que tengamos el mismo pie de página. mensaje que va a aparecer en cada hoja, le mostraré cómo agregar automáticamente estos saltos de página cuando lo imprimamos, está bien, también tenemos información privilegiada, también nos hemos vinculado, así que lo que queremos hacer es tener un aviso de enlace que está vinculado a d15 hemos seleccionado un cliente específico que queremos crearlo tenemos una lista de nombres aquí que realmente queremos crear , por lo que seleccionaríamos de un nombre ahora este rango con nombre si echamos un vistazo dentro de los datos y la validación de datos vemos que tenemos nombres de clientes. Este es un rango de nombres dinámico basado en nuestra base de datos de nombres. Ahora, nuestra base de datos de nombres puede tomar proveedores, empleados y clientes. Sin embargo , creamos una lista única de clientes que solo se encuentran aquí. es nuestra lista de clientes esto es a lo que nos apegaremos básicamente este es un nombre que estamos usando un filtro avanzado cuando ejecutamos ese filtro avanzado solo vamos a tener el tipo de clientes que queremos entonces un único nombre y luego vamos a ordenarlo de acuerdo Curiosamente, eso ya está automatizado, pero aquí es de donde proviene la lista, así que tenemos una lista de clientes, así que lo que quiero hacer es cuando ingreso a un cliente en esa pantalla de pedido, quiero asegurarme de que la dirección se automatice, así que si cambio esto a nancy smith , quiero asegurarme de que nancy smith obtenga oh, la dirección se completa aquí, así que vamos a usar vba, por lo que usará vba automáticamente, mientras que este particular se encuentra directamente en d15 con absoluto, por lo que simplemente está conectado a cualquier usuario. es vba, que le daremos en un momento que automáticamente se encargará de completar esa dirección aquí y en las hojas posteriores aquí, nos desplazamos hacia abajo, vemos las hojas sustitutas, simplemente está vinculado a la parte superior, la primera hoja a la derecha, son todo simplemente vinculado a la primera hoja para que podamos tener duplicados, por lo que también tenemos una fecha de declaración que, por supuesto, también se encuentra aquí para nuestra fecha de declaración si continuamos y ocultamos estos temporalmente, no necesitamos ver eso para a Por el momento, simplemente voy a ocultar esas columnas para que podamos ver mejor que no tenemos que preocuparnos por ese logotipo, así que ahora podemos ver un poco más claro para que podamos ver cómo están vinculados. De acuerdo, tal vez ponga un conmutador allí para nuestros miembros de Patreon, así podemos tener más funciones, podemos alternar entre las declaraciones, pero también podemos obtener una vista previa de la declaración para que tengamos ambos, está bien, esto solo proviene de la factura que mantendremos. que allí mismo no lo ocultamos, así que lo que tenemos es nuestro enlace , por lo que tenemos nuestra fecha de declaración que en realidad está vinculada a nuestra fecha de declaración aquí ubicada en d17 tenemos nuestra fecha de inicio que se encuentra en d18 y nosotros tenemos nuestras dos fechas que se encuentran en d19 aquí y luego nuestro pie de página de estado de cuenta también tengo un saldo de cuenta ahora el saldo de cuenta será una fórmula y tenemos algunas sucursales de nombre completamente nuevas que nos ayudarán con eso entonces qué es lo que queremos hacer para crear eso, así que echemos un vistazo a algunos de nuestros nuevos nombres sucursales Tengo algunos rangos de nombres agregados basados en nuestra base de datos de pedidos ahora estas bases de datos de pedidos donde se rastrean todos los pedidos justo cuando creo un nuevo pedido se le da una nueva identificación el tipo es una orden de trabajo una orden de compra una factura un la fecha del pedido, el estado y toda la información asociada con ese pedido. He creado algunos rangos con nombre adicionales que nos ayudarán. Sigamos adelante y echemos un vistazo a ese administrador de nombres solo para repasar si tiene si no lo hizo. No mire esa capacitación original, no se preocupe, vamos a repasar todo, así que no es necesario para este tipo de capacitación, así que tengo una identificación de pedido, una identificación de orden es la identificación original que será importante, tengo una orden vencida. la fecha va en orden por lo que tenemos la fecha de vencimiento un rango con nombre basado en todas las fechas de vencimiento tenemos un saldo de orden ahora este saldo se calcula en base a una fórmula basada en la cantidad de pagos el total de la factura menos el número de pagos y que podrían usarse para órdenes de compra también Así que las órdenes de compra y las facturas tenemos un saldo en ellas y luego tenemos un rango con nombre dinámico asociado con eso. Del mismo modo , también quiero saber los pagos si se han realizado pagos. Quiero un rango con nombre para ese rango de nombre para el pedido . tipo y un rango de nombre para el total del pedido, por lo que todos tienen rangos con nombre únicos y así es como me gusta hacerlo porque me gusta usarlos en fórmulas, así que los he creado muy específicamente y, por supuesto, un nombre bien, si vamos a usar sum si o solo un nombre muy específico, ciertamente vamos a necesitar uno para el nombre , así que cerremos esto y sigamos adelante y echemos un vistazo a las órdenes y como nos enfocamos en el saldo de la cuenta, por lo que para el saldo de la cuenta, básicamente, todo lo que quiero hacer es sumar el saldo del pedido, ahora esto ayudará, ese es el rango con nombre y solo queremos centrarnos en los tipos de factura, solo queremos que el tipo de pedido debería solo ser el pedido de factura ahora este pedido de factura es un tipo dinámico basado en este pedido de factura aquí mismo porque los usuarios pueden cambiar el nombre correctamente, tal vez quieran llamarlo recibo o factura o algo así , así que tenemos un rango con nombre, lo que sea que el usuario haya decidido, este es el pedido de factura, por lo que cada tipo de pedido para este tipo que vamos a resumir y también quiero agregar y asegurarme de que los criterios también se basen en el nombre del cliente, por lo que el nombre del pedido, ese rango de nombres que acabamos de revisar, debe ser igual a lo que sea en d15 d15 es el cliente, de modo que a medida que cambiamos el cliente y luego actualizamos nuestro pero sigamos adelante y actualicemos eso, así que solo quiero mostrar uno, así que aquí, este cliente en particular, nancy smith, solo tiene una factura pendiente, justo ha habido no hay pagos, tenemos una fecha de vencimiento, si echamos un vistazo aquí, vemos que tiene entre 61 y 90 días de atraso en ese saldo, tiene un crédito total adeudado ahora, podría ser bueno porque el crédito si lo hacen cada vez dentro de un tiempo un cliente m toman pagos que son más grandes que el monto real adeudado y mostrarían un crédito en su saldo, por lo que podría ser muy útil, por lo que este es un estado de cuenta del cliente de una sola página y tienen un saldo de 42.90 basado en esa única factura. todo lo que vamos a hacer es resumir eso en base a eso, está bien, así que para las fórmulas, echemos un vistazo a algunas de las fórmulas ahora que entendemos que tenemos un saldo actual aquí y vamos a usar este sumif para esto esta suma si nos va a ayudar de nuevo vamos a sumar los saldos de los pedidos quiero saber el tipo de pedido basado solo en los pedidos facturados quiero saber el nombre correcto del pedido basado en el nombre del cliente y también quiero el fecha de vencimiento del pedido la fecha de vencimiento debe ser mayor o igual a la actual, por lo que la fecha de vencimiento significa que las fechas de vencimiento que están en el futuro se considerarían actuales , por eso es tan útil tener esos rangos con nombre, ¿qué tal uno? a través de 30 días vencidos, bueno , eso es va a ser un poco diferente lo que tenemos vamos a empezar con todo igual basado en el saldo basado en el tipo de factura basado en el cliente luego tenemos una fecha de vencimiento quiero la fecha de vencimiento del pedido va a ser menor o igual a y adicionalmente la fecha de vencimiento ordenada tiene que ser mayor o igual a hoy menos 30 hoy menos 30. eso significa que la fecha de la ventana es la fecha actual y 30 días antes de ahí es donde queremos que caiga la fecha de vencimiento y si la fecha de vencimiento cae dentro de este rango particular menor que hoy pero mayor que hoy menos 30 entonces será de 1 a 30 días vencidos del mismo modo del 31 al 60 será casi el mismo excepto que este será el vencido fecha será menor que hoy menos 30 y también debe ser mayor o igual que la fecha de hoy menos 60, así es como vamos a caer en esa ventana , por supuesto, del 61 al 90, puede imaginar que será menor que o igual menor que la fecha de hoy menos 60 o gre después de la fecha de hoy menos 90. más de 90 será un poco más simple todo lo que tenemos que hacer es solo la fecha de hoy menos de 90. cualquier cosa por encima de eso será la fecha de hoy menos de 90 bien, eso es todo lo que tenemos que hacer para eso , cualquier cosa más allá de eso, por supuesto, tendrá más de 90 días, así que eso es todo lo que queremos, queremos una fecha de vencimiento menos de 90, está bien, menos que hoy menos 90. está bien, ¿qué pasa con el total adeudado ? El total adeudado es simplemente la misma fórmula que lo que tenemos aquí es solo un duplicado allí y ahora los créditos ¿qué pasa si tenemos un crédito? Básicamente, cuando el número total de pagos es mayor que el monto total adeudado, eso es un saldo acreedor. esta vez nos centramos en los pagos vamos a sumar todos los pagos también según el tipo de pedido de la factura también según el cliente específico cuando el número total de esos pagos se basa en el número total de la factura esta vez pedido orden total total bien cuando el total del pedido basado en ese tipo de factura en particular basado en ese cliente cuando tenemos los pagos que son mayores que simplemente queremos tomar el número total de pagos menos el monto total de las facturas que restando la diferencia será el crédito en cuenta básicamente si el cliente ha pagado 100 pero el total de facturas fue solo 80, vería un 20 aquí , por ejemplo, tomemos este 42,90, digamos que el cliente decide pagar 50, lo van a tener, así que si entramos en este particular orden, veamos la orden número 11, entramos en la base de datos de órdenes y echamos un vistazo a la orden número 11, vemos que no hay pagos con un saldo de 42, sin embargo, si hago un pago de 50 y lo cambio, ahora tenemos un saldo de crédito y si miro hacia atrás dentro de los pedidos y me desplazo hacia abajo, vemos que ahora tienen un crédito de diez dólares y podemos actualizar eso si no es negativo, me aseguraré de que esté actualizado para que no tengamos ese derecho menos de lo que debería estar allí solo para que muestre un crédito en la cuenta de siete, amigo, y me aseguraré de que muestre cero en eso, pero tenemos que aplicar ese pago si ese pago aparece aquí, será correcto, está bien, entonces entendemos cómo eso funciona y podemos deshacerlo porque quiero que se muestre aquí, de acuerdo, continuando para que entendamos exactamente todas las fórmulas que se incluyen, son relativamente simples , entremos un poco en vba de la hoja vba tenemos vba que cuando este rango de fechas ha cambiado tanto el desde como los dos cambios de datos y también tenemos algo de vba que cuando cambiamos un cliente aquí, esa dirección se cambiará aquí automáticamente, entonces, ¿cómo están ? lo haremos bien, por supuesto, estará en el evento de cambio de la hoja de trabajo y entraremos en vba y lo haremos dentro del desarrollador visual basic o alt f11 y nos centraremos en la hoja de pedido, esto es la hoja de pedido aquí que está más enfocada y estamos centrado en el cambio de la hoja de trabajo, el evento de cambio de la hoja de trabajo derecha en el cambio del rango de fechas de la declaración, de modo que cuando el usuario realiza un cambio en d16, es cuando queremos que suceda algo, bueno , ¿qué queremos que suceda? Lo primero es que quiero determinar para asegurarme. que han seleccionado algo dentro de ese rango de fechas, por lo que vamos a dimensionar el rango de fechas como una cadena y la fila del rango de fechas siempre porque necesito averiguar qué fila es esa. Voy a buscar el rango de fechas que han hecho el cambio a Voy a averiguar qué fila es una vez que sepa qué fila es, luego puedo extraer la fecha de inicio y puedo extraer las dos fechas de eso y colocarlas directamente dentro de nuestra hoja aquí. y aquí, eso es justo lo que vamos a hacer dentro de vba, por lo que el rango de fechas será ese valor objetivo, ese es el valor que el usuario ha cambiado , luego voy a extraer esa fila, recuerde que necesito esa fila, ¿dónde estoy? voy a mirar voy a mirar dentro de la hoja de administración aquí i voy a ver este rango con nombre llamado rango de fechas que es ese rango de fechas dinámico basado en todos nuestros rangos de fechas voy a encontrar voy a encontrar lo que el usuario acaba de cambiar rango de fechas por supuesto que va sea el valor objetivo, también será el valor aquí en d16, está bien, lo que quiero hacer es mirar dentro de los valores y quiero mirar el conjunto y quiero extraer la fila una vez que haya Extraje la fila. Quiero ejecutar una verificación. Si no se encuentra, se creará un error. Por lo tanto, la envolvimos en honor a reanudar a continuación y en el aire ir a cero y luego solo vamos a ejecutar una verificación si la fila de rango lo hace. no es igual a cero , entonces sabemos que se ha encontrado, si se ha encontrado, puedo tomar d18 y colocarlo directamente dentro de la fecha de lo que sea que esté en q y la fila de rango, por lo que proviene de la columna de la pantalla de administración q aquí, sea lo que sea que haya sido la fila Descubrí que voy a colocar cualquier valor allí y, de la misma manera, desde s va a ser eso hasta la fecha y eso es irá directamente dentro de d19, así que eso es todo lo que tenemos que hacer y luego se ejecutará y calculará. Quiero asegurarme de que todas las fórmulas se calculen en función de eso, así que solo voy a calcular eso automáticamente . solo vba en lo que respecta al rango de fechas, pero ahora tenemos un poco de vba básicamente en el cambio de nombre de la declaración, configure la dirección correcta tal como lo hicimos aquí , volvemos a las órdenes y hacemos ese cambio de nombre. Quiero asegurarme de que la dirección se actualiza automáticamente así, así que quiero sacar que ahora esas direcciones vendrán directamente de nuestra base de datos de nombres justo cuando encuentre un nombre específico que quiero poner en la dirección, la ciudad, el estado y el código postal que quiero para poner todo eso allí, así que por supuesto que también vendrá en vba cuando un usuario haga un cambio en d15, eso es lo que tenemos a continuación cuando el usuario haga un cambio en d15 y queremos asegurarnos de que el d15 sea no vacío entonces lo que quiero hacer es también quiero asegúrese de que b19 no esté vacío b19 es la fila calculada echemos un vistazo a b19 b19 nos permitirá saber en qué fila está el cliente y se basará exactamente en lo que haya ingresado dentro de d15 vamos para usar la fórmula de coincidencia y el formulario de coincidencia nos permitirá saber lo que hay en d19 y pueden buscar ese cliente dentro de nombre nombres nombre nombres es el rango con nombre que tenemos que estamos usando para el nombre nombre, así que si entramos en las fórmulas y el administrador de nombres buscamos el nombre del nombre, así que sé que es un poco divertido aquí y vemos que aquí será básicamente un rango dinámico con nombre basado en todos los nombres en nuestra lista , está bien, una vez que tengamos eso, podemos entonces determinar exactamente cuál es el siguiente paso para que sepamos que b19 queremos asegurarnos de que no esté vacío, de acuerdo, entonces vamos a extraer la fila que ha estado allí usando esa fórmula de coincidencia, vamos a poner eso en una variable llamada nombre fila que va a ser ese nombre encontrado fila entonces lo que vamos a estar haciendo i Si voy a completar esa dirección, esa dirección se encuentra en la columna d en la base de datos de nombres. Si echamos un vistazo dentro de la base de datos de nombres dentro de la columna d, encontraremos esa dirección . de ef y g, pero primero lo que vamos a hacer adentro, vamos a poner eso directamente dentro de aa6, vamos a colocar esa dirección, por lo que aa6 tomará esa dirección, la próxima carga escrita aa7 va a tomar tres de ellos tomará esa ciudad tomará ese estado y tomará ese código postal que viene de e f y g y eso es todo, ese es el único vb en cuanto a los cambios en la hoja que nosotros tener bien relativamente simple, entonces lo que queremos hacer ahora es cuando hacemos un cambio cuando lo previsualizo cuando hago cualquiera de estos previsualizarlo o cuando imprimo el estado de cuenta o el estado de cuenta por correo electrónico quiero generar automáticamente ese estado de cuenta observe cómo sucedió eso bien así que ahora, si echamos un vistazo al interior, vemos que ahora hemos generado una estadística elemento basado en esto y va a ser de casi dos páginas y media o casi tres páginas porque tienen muchos He agregado muchos este cliente en particular aquí Jackie He agregado muchos pedidos a eso solo para que Puedo ver que vemos aquí dentro de la base de datos que tiene muchos pedidos solo para poder ver cómo se ve una página múltiple, así que cuando hago esa vista previa hay una macro que se ejecuta, generará esa declaración y la completará y es se basará en varios factores, por supuesto, lo que queremos hacer es ejecutar un filtro avanzado y lo basaré en ese nombre de cliente en particular y lo basaré en algunos de los otros factores. fecha asegúrese de que los pedidos sean de y las dos fechas base dentro de este rango también se basarán en cuál de los tipos de pedido quieren incluir en la declaración, así que tenemos que escribir algunas fórmulas para eso y estamos vamos a usar un efecto de formulario avanzado, así que vamos a echar un vistazo dentro de la base de datos de pedidos b Porque necesito asegurarme de que los resultados de esos se basarán en este derecho, así que si decido incluir estimaciones y hago una vista previa correcta para que podamos cerrar eso, supongo que no necesitamos esto aquí, así que quiero asegurarme de si vamos a incluir estimaciones o no en eso, entonces, ¿cómo vamos a hacerlo si echamos un vistazo dentro de la base de datos de pedidos? Tengo algunos criterios en los que nos vamos a centrar aquí. Estos son desde nuestro panel de control, por lo que no necesitamos centrarnos en eso, pero queremos centrarnos hasta aquí en busca de criterios de declaraciones de clientes sobresalientes, esto es en lo que nos vamos a centrar aquí, así que lo que quiero hacer es Quiero saber qué tipos de pedidos vamos a tener. Tenga en cuenta que se trata de facturas y estimaciones. Quiero saber si vamos a usar un saldo. A veces, vamos a tener un saldo o no , y también quiero saber. la fecha del pedido y quiero saber el nombre correcto, entonces, ¿cómo lo hacemos bien? Lo primero que quiero hacer es quiero vincularlo bien quiero saber qué tipos vamos a mostrar las órdenes de compra aviso si entro en órdenes aquí y selecciono órdenes de trabajo y selecciono órdenes de compra y vuelvo a la base de datos ahora vemos que todos estos valores están activos y eso significa que cuando ejecutamos este criterio, quiero incluir órdenes de compra, facturas, órdenes de trabajo y estimaciones ; sin embargo, si deselecciono esas y solo quiero mostrar las facturas deseleccionándolas, ahora tenemos algunas celdas vinculadas si echamos un vistazo a estas opciones las tenemos vinculadas ahora tenga en cuenta que en realidad tengo dos cuadros diferentes aquí tengo un grupo de opciones y un cuadro de texto por qué tengo una casilla de verificación y un cuadro de texto ¿por qué tengo ambos porque quiero el el texto aquí debe ser dinámico, por lo que el texto, el texto se encuentra aquí, aquí está el texto y este es en realidad el grupo aquí, saquemos el texto aquí, vamos, está bien, esta es la casilla de verificación, se basará en b15 , entonces si echamos un vistazo aquí b15 b16 b17 b18 entonces todas esas casillas de verificación están bajas basado en esa opción aquí, así que si deselecciono esto y selecciono el cuadro de texto, está el cuadro de texto allí y este cuadro de texto aquí está el cuadro de texto que vemos si lo muevo, puede ver que es solo un cuadro de texto justo para que el texto el cuadro es único porque quiero asegurarme de que ese texto aquí se base en nuestro texto dinámico para estimaciones correctas, estimaciones correctas de pedidos y lo que eso significa es que si cambian esto a propuesta, vayamos a la pantalla de administración si cambian esto a propuesta i quiero asegurarme de que el texto se actualice automáticamente e incluya esa propuesta aquí, por eso lo tenemos vinculado por separado, por eso no tenemos una parte de la casilla de verificación, cámbielo de nuevo a estimación, por eso lo tenemos allí dinámico para que están separados, así que tengo una casilla de verificación que se extiende sobre eso, pero también tengo ese cuadro de texto en particular aquí, así que tengo una casilla de verificación y un cuadro de texto y simplemente están agrupados, está bien, tenga en cuenta que la casilla de verificación está vinculada a b15 y cómo lo hago Bueno, eso es simplemente si hago clic derecho aquí y voy al control de formato, puede ver que el enlace de la celda es b15. Lo hice posteriormente tanto para la orden de trabajo de la factura como para la orden de compra y todos están vinculados a estos cuatro. las celdas aquí, así que sabiendo que son falsas son verdaderas según las que quiero ver, puedo usar estos valores aquí según la selección del usuario aquí dentro de nuestros criterios aquí, así que si echamos un vistazo a esto si las órdenes b18 son iguales a verdaderas luego la orden de compra, el nombre dinámico de la orden de compra, de lo contrario, muestra cero lo mismo aquí si la orden es b17, que es verdadero o falso es igual a verdadero, luego muestra el nombre dinámico de la orden de factura, que es una factura, de la misma manera lo estamos haciendo para la orden de trabajo y para orden estimado aquí para que todos estén vinculados de esta manera cuando ejecuto los criterios y luego tenemos las fechas nuestras fechas de pedido tenemos un rango con nombre aquí he creado un rango con nombre para nuestra fecha de inicio y eso se llamará declaración de datos que vemos aquí arriba y yo Creé otro rango de nombres llamado declaración2fecha y eso lo hace un poco más fácil dentro de las fórmulas para que sepamos que es mayor o igual que la declaración desde la fecha y también el criterio para la fecha del pedido es menor o igual que la declaración hasta la fecha. y luego el nombre simplemente se basará en las órdenes d15, que es el nombre correcto, así que simplemente voy a duplicar todo esto, sin embargo, nuestros tipos de órdenes serán diferentes, luego ejecutaré eso automáticamente aquí basado en eso, el criterio va a estar aquí, lo que significa que cada vez que lo ejecutamos, si lo ejecuto nuevamente, esta estimación no aparecerá porque solo mostramos las facturas, así que si decido imprimir esta declaración y luego imprimirá automáticamente y eso generará automáticamente ese particular, lo verá impreso allí, lo actualizará automáticamente y verá que aquí, dentro de la base de datos de pedidos, nuestros resultados ahora están aquí, las estimaciones se han ido, así que una vez que ejecutamos los criterios un filtro avanzado aquí dentro, queremos que los resultados vengan aquí, esos resultados irán en nuestra declaración, sin embargo, no podemos simplemente pegarlos todos porque, como puede ver, es más de una declaración, por lo que debemos determinar cuántos por declaración y luego tenemos que dividirla, por lo que necesitamos determinar cuántas páginas, por supuesto, si echamos un vistazo a nuestros pedidos y bajamos aquí y vemos que solo tenemos aproximadamente 26, creo que 26 artículos por hoja. así que sabemos que vamos a dividirlo en varias hojas, bien, entremos en la macro y veamos cómo se hace ahora cada uno de estos correos electrónicos de vista previa se imprimen o todos usan la misma macro para crear la declaración y luego van más allá de eso, una vez que se crea la declaración, pueden hacer las otras funciones, así que vayamos a esa primera macro y he creado una nueva. Todos los demás módulos aquí se centran en la mini aplicación de contabilidad original. Sin embargo, tengo una nueva. módulo llamado macros de declaración si entramos en eso y vaya a la parte superior He mencionado algunas variables que repasaremos, pero nuestra primera macro en particular se llama declaración crear bien, esa es la que crea la declaración , no la imprimirá, no la enviará por correo electrónico, simplemente va para completar esa declaración, pero lo primero que queremos hacer es borrar todas las celdas asociadas dentro de esa declaración z10 a f35 z48 a af73 y z86 a af111, básicamente estamos usando tres hojas, así que simplemente estamos borrando todos los valores aquí en el primero aquí asegurándonos de que no estén las fórmulas y todas las del segundo y todas las del tercero para que todas se eliminen queremos asegurarnos de que la declaración se elimine así que ese es el lo primero que vamos a hacer lo segundo que vamos a hacer es determinar cuántas filas tenemos en nuestra lista de pedidos y ejecutar ese filtro avanzado aquí, así que sigamos adelante y echemos un vistazo a la última fila según los pedidos base de datos ahora estamos enfocados directamente en el orden base de datos rs, por lo que la última fila la configuraremos en función de los datos si es inferior a 4, eso significa que no tenemos datos, vamos a ejecutar ese filtro avanzado, pero antes de hacerlo, quiero extender algunas fórmulas, es es muy importante que tengamos el saldo del cliente y quiero saber la fecha de vencimiento total, así que tengo una fórmula aquí, esto fue de nuestra aplicación de conteo original, pero solo quiero asegurarme de que si b4 es igual al pedido de factura o al pedido de compra por lo tanto, estamos realmente enfocados en el saldo solo para las facturas y las estimaciones de carreteras de compra y las órdenes de trabajo no tendrían saldos, por lo que no queremos que se transfieran, así que solo si los tipos de pedidos se facturan o compran o si quiero reduzca el saldo de las órdenes de compra, por supuesto, los artículos que compra y los pagos que realiza, de modo que se realiza un seguimiento, mientras que las facturas o los artículos que vende y sus clientes pagarán, así que haré que lleve esa fórmula hasta el final. tengo una fórmula aquí esa fórmula la se quedará aquí arriba y luego puedo bajarlo de esa manera puedo borrar el formato no tiene que vivir en esta base de datos si no quiere, así que vamos a bajar esa fórmula para cada secuencia ejecutar básicamente simplemente mirando para ver si se ha realizado un pago y si se ha restado del total también quiero saber los días vencidos quiero reducir esa fórmula que va a ser indefenso negativo significa que no está muy vencido ocho días vencido y entonces, ¿qué es esta fórmula? Vamos a verificar si es un pedido de factura o un pedido de compra . Si entonces, lo que vamos a hacer es que quiero saber la diferencia es si l4 si hay un l4 menos j4 y eso es básicamente, si el total menos los pagos son mayores que cero, eso significa que hay un saldo, entonces lo que quiero hacer es verificar hoy menos h4 la fecha actual menos la fecha de vencimiento la fecha actual menos si la fecha actual es mayor que la fecha de vencimiento vamos a tener un positivo si es op apuesto a que va a ser negativo, por lo que va a crear nuestros días atrasados aquí, así que ahora, una vez que sepamos la última fila, puedo llevar esta fórmula hasta la última fila aquí, en este caso es 90. así que voy a traiga todos esos hasta la última fila, así que una vez que tengamos eso, podemos ejecutar nuestro filtro avanzado para que esto corrija nuestra fórmula vive en m2 correcto para que nuestra fórmula reduzca el saldo fórmulas en realidad voy a reducir ambos saldos y fórmulas, creo que lo hago dos veces aquí, así que me aseguraré de reducir ambas fórmulas, así que hagámoslo aquí, así que básicamente es m y n, así que quiero traer tanto m como n, en realidad no necesitamos esto en el saldo significa que no necesito los días vencidos hasta que ejecutemos otra macro, pero está bien, pero para esta macro en particular realmente solo necesitamos saldo, pero usaremos los días vencidos en una próxima macro solo un momento, por lo que reducir el saldo es suficiente para este filtro avanzado en particular que vamos a ejecutar, así que ahora estamos obteniendo listo para ejecutar nuestro filtro avanzado de a3 a m, vamos a tener ese criterio bm a p bp6 y qué significa eso, lo traeré todo aquí, tal como lo mencionamos antes, bm a bp y todo el hasta seis, aquí es donde vive nuestro criterio, entonces queremos que esos resultados aparezcan directamente aquí, tenga en cuenta que todavía no tenemos los días vencidos, entraremos en eso en un momento, br a través de bx es donde queremos el resultados por venir, por lo que del br al bx es donde vamos a verificar la última fila de esos resultados br si es menos de tres, vamos a salir del sub, eso significa que no tenemos datos, ahora lo que tengo que hacer es Necesito determinar si vamos a usar varias hojas o no. Sé que si tengo más de 26 elementos como 27 aquí, sé que necesito una hoja adicional para saber si la fila es mayor que 29 o 20 igual mayor. que o igual a 29 la última fila, entonces sé que necesitamos agregar hojas adicionales porque nuestro único original hoja por qué es eso porque si echas un vistazo aquí, esto es 27, si echamos un vistazo aquí, vemos nuestra declaración, solo tenemos el límite de 26 artículos por, vamos hasta arriba, vemos que tenemos 26 artículos para el máximo si tenemos más que eso, necesitamos una hoja adicional, por lo que debemos ejecutar una verificación, esa verificación estará aquí si la última fila es menor que 29, eso es una sola página 29, es decir, la última fila, ¿qué significa eso? 29 si echamos un vistazo a la base de datos de pedidos 29 sería uno, por lo que este 28 significa 28 o menos, lo que significa que tenemos 26 26 filas y eso es suficiente para una sola página, por lo que necesito diferenciar entre una declaración de una sola página o una declaración de varias páginas. que aquí mismo esta es una sola página, de lo contrario, es una página múltiple, por lo que para una sola página es relativamente simple, lo que queremos hacer es que queremos crear, luego, todo lo que quiero hacer es simplemente copiar, el pedido ya es correcto, todo lo que necesito hacer es simplemente copie los valores y tráigalos directamente aquí adentro hasta el final y yo puedo hacer eso con una línea de código aquí mismo que significa z10 a af y la última fila de resultados más siete ¿por qué sucede eso las últimas siete porque nuestra fila original comienza en la fila tres, entonces necesitamos compensar esa diferencia en las filas, así que vamos para agregar siete en nuestras filas de destino, así que hacemos eso aquí mismo y luego simplemente tomará el último valor, por lo que esto se trasladará de br 3 a bx, por lo que es simplemente br todo el camino para unir simplemente incorporando esos valores y eso es lo siguiente que quiero hacer también para un solo lugar es configurar el área de impresión, así que ahora sé que, dado que tenemos una sola hoja, puedo configurar el área de impresión que la impresora se iniciará justo aquí arriba de z3 y va a ir hasta la última fila, incluida la coma, vamos a establecerlo en af40, por lo que tenemos un área de impresión muy fija y podemos hacer eso con el área de impresión de configuración de la página de pedidos igual a z3 hasta af40 que va para configurar esa impresora de una sola página, eso es todo lo que tenemos que hacer para nuestra única página qué pasa si es una página múltiple si es multijugador es un poco más complicado necesitamos determinar cuántas páginas hay y por supuesto puedes crear de esta manera más de tres páginas puedes crear tantas como quieras solo sigue copiando la plantilla tres es suficiente para nuestros propósitos de capacitación y, por lo tanto, ¿qué vamos a hacer bien? Necesitamos determinar la cantidad de páginas y sabemos que podemos tener 26 elementos por página, por lo que todo lo que debemos hacer es determinar la última fila de resultados. la fila de resultados de nuestros resultados está aquí y nuestros últimos resultados son 77, así que lo que voy a hacer es restar 2 porque ciertamente no podemos contar las dos primeras filas correctamente, así que quiero saber que quiero restar 2. y luego lo que vamos a hacer es dividir eso por 26, que es la cantidad de elementos por hoja, así que si tomo la última fila y resto 2 para ambas filas de encabezado divididas por 26 y agrego una fila entonces sé que sé que vamos a obtener el número de cantidades de páginas, así que vamos Quiero informarnos y, por supuesto, solo quiero un número completo, así que vamos a extraer el número entero de eso que nos dará el número total de páginas, así que para nuestra muestra aquí, serán tres páginas . Yo también quiero saber la última fila de la página cuál es la última fila de la página lo sé de nuevo quiero determinar el último buscapersonas cómo lo sé bien quiero saber la última página aquí mismo cuál es la última fila de la página cómo lo sé bien en primer lugar, sé que habrá 38 filas por página si me desplazo hacia abajo aquí vemos que es 38 que incluye, por supuesto, el encabezado y el pie de página 30 en total, así que si sé 38 y sé que tengo tres páginas, puedo determine la última fila y esto es 116. Entonces, queremos extraer esa última fila, esa fila de la última página será el número de páginas multiplicado por 38 más 2. Por supuesto, tenemos que agregar 2 nuevamente, ¿por qué estamos agregando 2? no estamos incluyendo estas primeras 2 filas aquí arriba tenemos 2 filas aquí arriba que no estamos incluyendo así que necesitamos agregar 2 y eso va a dar nosotros nuestra fila de la última página que es muy importante porque necesitamos configurar esa área de impresión completamente bien, eso es lo que vamos a hacer ahora que hemos calculado la fila de la última página para nuestros pedidos, podemos determinar el área de impresión para que sea la página de pedidos configure el área de impresión z3 a af y la fila de la última página que es dinámica, ya sea que tengamos dos o tantas páginas como necesitemos , eso será automático, así que ahora configuramos la página en la última fila de la página y configuramos el área de impresión como yo quiero Lo que tengo que hacer es ejecutar un bucle desde todas las páginas. Quiero pasar de una básicamente a todas las filas de la página, pero necesitamos establecer una regla de estrella inicial. Necesito realizar un seguimiento de todas las filas que se pueden . me confundo un poco sé que nuestro primer valor es 10 aquí sé que nuestra primera fila aquí es 3 sé que en la primera página nuestra última fila aquí sé que será 35 y sé que la última fila será aquí 29 correcto, así que tenlo en cuenta 28. así que esto es lo que vamos a hacer, va a configurar todas esas estrellas ting establece que la fila de inicio inicial es 10. nuestra fila final es 35 esto es para nuestro destino nuestros datos originales vamos a establecer la fila de la base de datos de inicio y la fila de la base de datos final 3 a 28 bien, eso nos dará todo el datos ahora estamos listos para ejecutar el ciclo recuerde que quiero ejecutar un ciclo a través de todos los datos básicamente quiero obtener 26 filas aquí y luego las traigo y luego quiero ir a las siguientes 26 y luego quiero determine el siguiente, sin importar cuántos, y luego tráigalos a las partes individuales, por lo que la primera parte irá aquí, la segunda parte irá aquí y la parte restante irá aquí, está bien, así que eso es exactamente lo que vamos a hacer. hacer dentro del código una vez que hayamos configurado todas nuestras variables iniciales aquí, así que vamos a comenzar nuestro ciclo para el número de página, será uno para la cantidad de páginas en nuestra muestra, serán tres, entonces uno a tres por lo que lo primero que vamos a hacer es traer los datos para que z y la fila de inicio pasen af y el valor de la fila final, recuerde z aquí y la fila inicial, que es de 3 a af, y la fila final será igual a aquí, nuestro br y la fila estelar de la base de datos hasta bx y la fila final, sean cuales sean esos valores, y estamos solo los traeré para que se agreguen los datos de la página de declaración que traerán todos los valores para esa página única solo para esa página única lo que quiero hacer ahora es establecer el salto de página no No quiero establecer un salto de página muy específico si nota que vemos esto en el sitio los pedidos vemos una línea punteada aquí este es nuestro salto de página quiero asegurarme de que ese salto de página se rompa correctamente para que podamos establecerlo horizontal salto de página y sabemos que van a ser los órdenes las filas el número de página correcto digamos que es la página número uno digamos que es el número de página uno por 38 más tres va a ser 41 correcto entonces 41 va a estar donde está nuestro salto de página y eso es justo aquí, así que nuestra página se rompe justo aquí en 41. así que va a ser la parte superior de así es, eso va a establecer nuestro salto de página para que sepamos que se romperá en 41. eso puede establecer un salto de página manual que establecerá ese salto de página horizontal y de esta manera podemos hacerlo dinámicamente para el segundo sería dos, por supuesto, dos por 38 76 más tres van a ser 79, por lo que sabemos que el segundo se romperá aquí mismo en 79. Entonces, podemos usar esa fórmula para configurar automáticamente esos saltos de página cada vez que lo siguiente. lo que quiero hacer es actualizar la fila de inicio, esa fila de inicio será la fila de estrella más 38, ¿por qué, porque esa fila de estrella comenzará aquí, la segunda fila aquí, sabemos que el comienzo aquí es 10 ese segundo? uno será 48, por lo que debemos agregar 38 a eso, de acuerdo, así que solo vamos a incrementar esa fila de inicio a 38, la fila de la base de datos de inicio será la fila de la base de datos más el inicio, recuerde que estamos agregando 26 filas 26 elementos para cada uno, por lo que la regla de la base de datos simplemente agregaba 26. pero ahora lo que quiero hacer es Quiero ejecutar una verificación. Necesito saber qué pasa con la fila n. Básicamente, lo que quiero hacer es saber si miro la última fila. Quiero agregar si agrego. los que están arriba, sé que tenemos 26 disponibles, pero si miro el resto y veo que el resto es menor que el número, entonces sé que estamos en la última página, así que básicamente lo que tenemos que hacer es buscar el último página si la última fila de resultados es mayor que la fila final de la base de datos más 26 y qué significa eso y eso significa básicamente si tomamos este número y le agregamos 26 cuál es más grande nuestra última fila de la base de datos aquí 77 entonces si es menor eso significa que tengo menos elementos para encajar con menos de 26 sé que estamos en la última página, así que eso es todo lo que vamos a verificar, así que si no es correcto si los últimos resultados aumentaron más significa que no estamos, veamos páginas adicionales no solo pero no la última página, por lo que está claro la siguiente página y este sería el último rol de resultados, de lo contrario, la última página, la última página, está bien, entonces tenemos esa limpieza r, esa es la última página, está bien, para la que no es la última página simplemente estamos agregando 26 a nuestra base de datos porque esa es la cantidad de filas y estamos agregando 38 a nuestros pedidos porque tenemos que tener el encabezado y el pie de página , así que eso es 38 correcto por lo que nuestra base de datos aumentará 26 nuestra hoja de pedido para nuestro estado de cuenta se mostrará directamente en 38 vamos a agregar 38 para eso, sin embargo, si es la última página, solo necesitamos agregar la cantidad que quede que necesitemos para determinar cuántos quedan, así que vamos a usar esta última fila más la última fila de resultados menos la última fila más 12. Sé que es un poco complicado, pero todo lo que tenemos que hacer es restar 12. ¿Por qué es tan importante porque 12 es el número de aquí? Echa un vistazo aquí. Necesitamos restar este número de filas aquí . Siete más uno también debe restar el número de filas aquí. necesito saber básicamente cuántos quedan aquí determinar esta última fila necesito determinar esta la st fila aquí cuál es la última fila así que eso es todo lo que estamos haciendo para determinar la última fila para que podamos traerla porque es la última página la fila final de la base de datos es muy simple es la última fila de resultados recuerde que ya hemos determinado la última fila de resultados aquí para que sepamos que la última fila de la base de datos se basa en la última fila que es relativamente simple , así que solo estamos configurando la última fila porque es la última página una vez que hacemos eso, solo estamos recorriendo eso eso es todo lo que tenemos que hacer para crear esto, sé que es un poco confuso, especialmente para la última fila, pero básicamente solo necesito determinar lo que queda y asegurarme de traer la última página aquí, todas las fórmulas que ya tenemos. cubierto , lo obtuvimos y así es como lo creamos, de modo que es relativamente simple en cuanto al estado que crea la declaración, entonces lo que queremos hacer es, por ejemplo, obtener una vista previa de la declaración , todo lo que necesitamos hacer para cada otra macro todo lo que lo que hay que hacer es crear primero el declaración y luego obtener una vista previa, como notará que tenemos una vista previa de impresión que es útil, podemos verla si hacemos clic en vista previa, todo lo que tengo que hacer es obtener una vista previa de eso allí dentro , vemos que es la página uno de tres podemos ir a la página siguiente a la página siguiente y eso va a obtener una vista previa de que la macro se ha vinculado a este botón aquí y simplemente se llama vista previa de declaración uh, así que primero vamos a ejecutar la macro que acabamos de revisar y luego ordena imprimir la vista previa es igual a verdadero relativamente simple y verdadero, si desea saber, observe que la definición de eso es habilitar cambios o no, por lo que permite que si ponemos falso, los usuarios no podrán realizar cambios, pero les estamos permitiendo hacer cambia muy bien, ¿qué pasa con la impresión? Imprime relativamente simple de nuevo lo que quiero hacer, pero primero quiero tener eso en cuenta. Voy a hacer algo diferente si decido imprimirlo. Necesito ejecutar una verificación. Sigamos adelante. y mostrarlos tal como lo hicimos antes Está bien mostrarlos, así que aquí tenemos la factura. Necesito mostrarlos todos, así que lo que quiero hacer es verificar el aviso de que he dado la opción de incluir la factura seleccionada con un estado de cuenta, así que cuando imprima este estado de cuenta o yo envíe por correo electrónico esta declaración. Necesito saber si vamos a incluir tal vez queramos enviar al cliente no solo la declaración, sino también la factura, así que si queremos hacer eso y lo imprimo, necesito verificar eso. tengo este cuadro de opción aquí y tomamos una lista basada en b35 si echamos un vistazo a b35 vemos que esto simplemente incluye básicamente orden no así que necesito verificar si vamos a imprimir esta declaración o si estamos vamos a enviar esta declaración por correo electrónico vamos a imprimir esta orden también si incluimos esta orden o no y para hacer eso solo verificamos en b35 así que cuando imprimamos la declaración simplemente voy a verificar b35 si es cierto entonces Voy a ejecutar la macro para imprimir el orden en que la macro se basa en nuestras órdenes. Lo repasamos en el entrenamiento original. g pero está justo aquí, los pedidos se imprimen, todo lo que estamos haciendo es configurar el área de impresión, asegurándonos de que lo estamos configurando, eso es muy importante porque estamos usando dos áreas de impresión diferentes en la misma hoja de estados de cuenta y pedidos, así que por eso nosotros debemos asegurarnos de que estamos configurando el área de impresión antes de imprimir que eso lo restablecerá, por lo que lo eliminaremos y es por eso que cada vez que se crea una declaración siempre se restablece el área de impresión correctamente en función de si es una sola página o si se trata de una página múltiple , siempre estamos restableciendo el área de la impresora porque en esta hoja tenemos dos áreas de impresión diferentes, esta es un área de impresión y esta es la otra impresora hasta aquí en el estado de cuenta para haga eso, debemos asegurarnos de que vba establezca la impresión o, en función de lo que se está imprimiendo, es el pedido de la factura o es la declaración, por lo que vba se encargará del trabajo duro por nosotros en eso, está bien, así que en la vista previa todo lo que estamos haciendo es crear la declaración y luego imprimir al imprimirlo , lo estamos verificando, vamos a imprimir el pedido y luego vamos a crear la declaración nuevamente, ejecutando esa macro nuevamente, esta macro también restablecerá automáticamente esa área de impresión y luego simplemente vamos para imprimirlo en función de varios factores, así que estos factores aquí , si echamos un vistazo, mostrémoslos para que podamos ver que queremos obtener una vista previa, imprimir, no queremos obtener una vista previa, sí queremos la impresora activa. Voy a usar la impresora activa que sea . Quiero un archivo de impresora falso y ciertamente no quiero ignorar las impresoras. Quiero asegurarme de mantener esas impresoras, por lo que será falso. enviar el estado de cuenta por correo electrónico es relativamente fácil si hacemos clic en enviar por correo electrónico, se enviará por correo electrónico ese estado de cuenta y, por supuesto, si tenemos seleccionada la opción de pedido de la opción de factura, también se enviará por correo electrónico el estado de cuenta y la factura, por lo que también se enviará a danos algún texto dinámico que hayamos Recibí el correo electrónico. La persona, consulte la declaración de impuestos de este año. Busque la declaración adjunta para su referencia de las fechas aquí. También tenemos información dinámica en el correo electrónico , así que vamos a echar un vistazo a la de Por supuesto, si anulamos la selección de esta factura, solo se enviará por correo electrónico el estado de cuenta en sí y no los pedidos, por lo que solo se adjuntará el estado de cuenta. correo electrónico, nos vamos a centrar en los pedidos, quiero saber si vamos a crear un pedido o no recordar si echamos un vistazo dentro de esta opción aquí, esta opción en particular aquí está enfocada en conectado a b35 b35 es cierto va a ser sí vamos a agregar la orden b 35 es falso no lo vamos a hacer así que b 35 nos dirá si b 35 es verdadera entonces vamos a crear un pdf para la orden y qué vamos a hacer vamos a volver a configurar esa página configurando esa área de impresión muy muy importante configurar esa área de impresión para esa factura o pedido vamos a configurar el archivo de pedido se basará en una ruta de libro de trabajo actual le daremos una barra invertida y luego lo que quiero hacer es quiero para darle el tipo de pedido, ese tipo de pedido se encuentra aquí en b2, quería que el nombre de ese archivo dijera factura y también quiero que el nombre del archivo incluya la identificación ubicada aquí en b5, así que quiero tenerlo guión bajo separándolos , así que vamos a tener b2, que es el tipo de factura o estimación o lo que sea, guión bajo y luego el número de identificación b5 y luego quiero terminarlo con pdf, estamos creando un pdf que será el archivo ruta para ese derecho quiero verificar si existe quiero asegurarme de eliminarlo porque creará un error si intentamos crearlo sin eliminar primero un archivo con el mismo nombre exacto si desea crear elementos únicos de Por supuesto, puede agregar valores de fecha y hora al nombre, lo que crearía uno único, por lo que si el terrible El directorio vb del archivo de orden de ctory no es igual a vacío, lo que significa que existe con ese nombre exacto , luego elimine ese archivo de orden que lo eliminará si existe, entonces estamos listos para crearlo, lo exportaremos como un formato fijo pdf y básicamente simplemente lo va a imprimir como un pdf , los archivos de orden donde se incluirá la ruta y luego false, no queremos abrirlo después de que se cree, si esto es cierto, lo abrirá después de que se cree, eso es todo. eso es todo lo que tenemos que hacer para crear el archivo, por supuesto, aún no se ha probado el correo electrónico y, de nuevo, muy, muy importante, vamos a ejecutar la macro para crear realmente esa declaración una vez que se crea esa declaración, podemos crear un la ruta para la declaración correcta, recuerde que esta macro en particular también establece el área de la impresora, pero establece la impresora en función de la declaración, recuerde que dentro de la macro aquí se repasó, esto crea una sola página aquí, área de impresión o un área de impresión de varias páginas aquí, pero eso va para crear th e imprima el área para que cuando lo imprima o lo exporte como PDF se complete automáticamente, entonces lo que queremos hacer es crear una ruta separada para el archivo de estado de cuenta, el archivo de estado de cuenta será este libro de trabajo y también quiero para basarlo en d15, ¿qué es d15? Bueno, d15 es el nombre de nuestro cliente. Quiero poner ese nombre de cliente directamente dentro del nombre del archivo. Luego quiero poner el guión bajo y luego la declaración, la palabra declaración y luego el pdf que será el ruta de nuevo como lo hicimos arriba, donde si ya se encuentra esa ruta en particular, la eliminaremos, no queremos que los duplicados creen un error, lo haremos tal como lo hicimos antes de exportarlo al archivo de declaración correctamente esta es la nueva ruta correcta, ya hemos creado esa nueva área de impresión aquí en esta macro, por lo que creará una nueva impresión y luego lo que vamos a hacer es estar listo para crear el correo electrónico que creamos ambos. pdfs ya aquí y aquí si por supuesto b35 es cierto vamos a configurar la aplicación de Outlook como la aplicación Alec asegurándose de que todo el camino hasta aquí dentro de la tapa de salida como un objeto, ¿ qué tal un objeto y alex macho un objeto, por lo que estos dos son objetos que son muy importantes, esto también podría estar dentro de la macro, eso estaría bien? también está bien, pero lo que voy a hacer es una vez que haya creado el objeto configurando la aplicación de Outlook como Outlook.application que señalará la aplicación Alec y esto creará el correo electrónico dentro del asignador para que cree el correo electrónico una vez que se haya creado el correo electrónico, podemos configurarlo. Voy a configurar el 2 para lo que sea que esté en b20, que es nuestra dirección de correo electrónico que se calculó aquí según el nombre aquí, por lo que la dirección de correo electrónico aquí ubicó la dirección de correo electrónico de esa persona una vez que tengo que quiero agregar archivos adjuntos agregar ciertamente estamos agregando la declaración sí, eso es importante, pero podemos agregar o no este archivo de pedido, ¿cómo sabremos que será 35 si b35 es verdadero, entonces simplemente agregaremos eso ? archivo de pedido e también, por lo que tanto el pedido como la declaración se agregan, pero solo si b35 es verdadero , solo si el usuario ha seleccionado estamos agregando un tema con información dinámica, consulte la declaración adjunta para saber cuál es ese intervalo de fechas d16. vamos a usar ese rango de fechas que el usuario ha establecido, así que este año, sea lo que sea, eso es lo que vamos a establecer allí dentro, está bien , así que creo que tenemos demasiados espacios aquí, pero entiendes el punto, así que estamos poniendo ese tema dinámico aquí básicamente con el nombre del rango de fechas y luego también lo que quiero hacer es establecer un cuerpo básico alto y luego cualquiera que sea su nombre y luego una coma y luego quiero agregar una nueva línea usando vbcrlf eso va a agregar un nuevo párrafo, busque la declaración adjunta para su referencia y luego quiero poner la fecha de inicio d18 y también quiero poner las dos fechas d19, así que d18 aquí y d19, pero también quiero asegurarme de que esos las fechas están formateadas correctamente, por lo que podemos hacerlo directamente dentro usando el formato aquí también otro que funcionaría sería el texto de la función de la hoja de trabajo de la aplicación que también funcionará aquí d19 es el valor aquí y este es el formato que voy a configurar. Voy a hacer exactamente lo mismo para las dos fechas y d19 aquí, así que d18 y d19 tienen fechas formateadas y luego quiero mostrar ese correo electrónico. No quiero enviarlo usando dot send. Lo enviaría sin mostrarlo. tenemos que enviar el estado de cuenta por correo electrónico relativamente simple, está bien, pero ¿qué pasa si quiero crear todos los estados de cuenta? Si echamos un vistazo aquí, vemos que tenemos otra macro que quiero crear todos los estados de cuenta que tienen 90 días de retraso, así que si envío un correo electrónico el estado de cuenta creará correos electrónicos para cada cliente que contenga facturas vencidas por 90 días, así que si echamos un vistazo aquí tenemos aquí el estado de cuenta adjunto aquí la referencia del pedido si echamos un vistazo a este que vemos que esto aquí tiene por supuesto gran más de 90 días de atraso en este estado de cuenta y si miramos este aquí también tenemos más de 90 días en este derecho un gran saldo está bien entonces queremos clientes que tienen 90 días aquí y aquí es donde va la fecha de vencimiento para ser útil, la cantidad de fechas de vencimiento será útil, ahí es donde lo tenemos, eso es lo que vamos a hacer ahora, en realidad es la misma macro que se imprime y se envía por correo electrónico, pero hacemos algo diferente. diferenciación dentro de un truco especial dentro, por supuesto, de la macro, por lo que esa es la macro en la que nos vamos a centrar ahora y lo que vamos a hacer es determinar la fila de resultados y el rol del recurso del cliente está registrado y el nombre del cliente es una cadena nos vamos a centrar en esa base de datos de pedidos de nuevo vamos a ejecutar un filtro avanzado aquí pero esta vez necesitamos la cantidad de días vencidos aquí mismo necesito saber el día vencido ahora es donde estamos vamos a incorporar esa fórmula, por eso la creamos, así que vamos a o traerlo determinando la última fila de nuestros datos totales aquí y luego, si las últimas filas agregan menos de cuatro huevos en el sub ahora es donde vamos a traer ambas fórmulas m a n y m a n y están ubicados en dos filas dos, los traeremos a ambos, eso traerá estas dos fórmulas, tanto el saldo como los días atrasados, llevándolos hasta aquí, está bien, hasta la última fila una vez que tengamos que estamos listos para ejecutar nuestro filtro avanzado nuestro criterio esta vez va a ser bz2 a cb3 echemos un vistazo dentro de todo el camino hasta aquí bz2 a cb3 aquí es donde lo tenemos así que echemos un vistazo a esto sabemos que el tipo de orden se va a basar en el pedido de la factura porque nos vamos a centrar quiero saber que el saldo debe ser mayor que cero y qué pasa con los días vencidos bueno , eso va a ser un poco diferente porque eso es dinámico, recuerde los pedidos internos, sabemos que si si queríamos 30 días de atraso, eso tendrá que ser 30 días Sí, no 90 días, así que si miramos en nuestra base de datos, vemos que los días vencidos ahora son más de 30. Bueno, ¿cómo podemos hacerlo bien? Podemos usar la tabla pequeña aquí, como puede ver, tenemos algún saldo aquí si es cualquier saldo correcto que podría estar bien cualquier cosa con un saldo o si tiene saldos vencidos cualquier cosa mayor echemos un vistazo a eso sería algo mayor que cero ¿qué tal si lo tomamos? quiero mostrarte uno este el primero cualquier saldo cualquier saldo, quiero borrarlos por completo, borrar esto para que no haya nada que signifique simplemente usar esto en los saldos; sin embargo, si va a ser más de 30 o más de 60 o más de 90, usaremos solo un poco de una fórmula para ayudarnos con eso y como puede ver tenemos una tabla aquí justo esta pequeña esta pequeña tabla aquí lista de saldos vencidos de aquí es de donde proviene esta lista si miramos en los datos miramos la validación aquí vemos la lista de saldos y esa lista de saldos se encuentra directamente aquí cualquier saldo ance vencido 30 60 y 90 días bien, también tienen el número correspondiente de días aquí, así que si el usuario selecciona esto, esto es lo que quiero que aparezca en los criterios, si solo selecciona esto , esto es lo que quiero que aparezca en los criterios, así que eso es lo que lo haremos aquí, así que puedo usar una pequeña fórmula para hacer eso si el orden d29 es igual a a29 entonces cero ¿qué significa eso y eso significa que si hay algún saldo a29 si hay algún saldo entonces 0 correcto eso no importa sin embargo, si no es así, ¿qué quiero hacer? Entonces quiero indexar b 30 a 30 para comenzar el rango con nombre y quiero usar una coincidencia basada en d29 y básicamente quiero extraer lo que se encuentre aquí, así que básicamente lo que hago Lo que voy a hacer es indexar aquí todo el camino bb 20, veamos b 30 a 33, creo, o 29 a 30 en realidad, así que voy a indexar eso, pero voy a usar una coincidencia que quiero. para que coincida con lo que se encuentre en d29, quiero hacerlo coincidir para saber el rol que se ha encontrado una vez que sepa la fila que puedo extraer t lo que sea que esté en b y colóquelo directamente aquí dentro, así que eso es lo que sucedió, estamos indexando b, estamos indexando los resultados que queremos, lo estamos comparando en función de lo que sea que esté en d29, sea lo que sea que la lista es un 30-33 y eso es todo, nosotros vamos a usar esa primera columna para que el criterio del atraso del día se base en lo que el usuario haya seleccionado, de modo que si seleccionan más de 60 o más de 90, lo que sea que seleccionen , aparecerá aquí mismo. voy a usar eso como nuestro criterio ahora todo lo que realmente quiero es que los resultados sean los clientes únicos quiero esos resultados quiero recorrer todos los clientes únicos que cumplen con esos criterios desde tres hasta el último criterio voy a tomar eso cliente lo que voy a hacer es ir en pedidos y voy a colocar a ese cliente justo aquí una vez que el cliente esté allí, voy a generar esa declaración en particular basada en ese cliente al que va para generar esa declaración y vamos a poder enviar un correo electrónico o imprimirlo desde allí, eso es lo que vamos a hacer dentro de la macro, así que una vez que hayamos creado nuestro cliente único en cd2, recuerde que solo nuestros clientes únicos van a ir dentro de la base de pedidos, todo lo que queremos es el nombre del cliente que comienza en cd2, una vez que determinemos la última fila, asegurándonos de que tenemos una basada en cd si hay menos de tres, informe al usuario que no hay estados de cuenta disponibles, tal vez no haya saldos de clientes con pedidos , digamos atrasados 90, tal vez no haya clientes, así que usted quiere para informar al usuario si no hay datos y salir del sub pero si hay datos vamos a recorrer los datos comenzando en el resultado de 3 a la última fila de resultados recorrer todos los clientes para crear las declaraciones que soy voy a poner ese nombre de cliente dentro de la variable de cadena de cd y la fila de resultados, así que básicamente estamos recorriendo los clientes y lo estamos poniendo en una variable y solo para hacerlo más fácil hasta que sepamos qué es lo que voy para tomar esa variable voy g para colocarlo directamente dentro de d15, de modo que dentro de las órdenes d15 tomará ese nombre de cliente . Voy a calcularlo solo para asegurarme de que todas las fórmulas se calculen, luego ejecutaré la misma macro para crear la declaración de que la primera macro que va a crear la declaración ahora es la parte interesante, así que quiero crear, no quiero volver a crear la misma macro solo para imprimir y enviar declaraciones por correo electrónico, si imprimo las declaraciones que voy a use exactamente la misma macro para imprimir ambos en nuestra impresora local imprima todas las declaraciones asociadas a la impresora; sin embargo, también quiero usar la misma macro para el correo electrónico, así que he usado la misma macro aquí si echamos un vistazo a la macro firme haga clic con el botón derecho lo siento, está fuera de la pantalla asignar macr vemos que el signo de macro se llama declaración crear todo si echo un vistazo dentro de la declaración imprimir todo vemos firmar macro nuevamente la misma declaración de macro crear todo esto es la misma macro que ha sido asignada entonces como si ponemos el sa yo macro en dos botones diferentes, ¿cómo sabemos cuál usar ? Su clic, ¿cómo sabemos si vamos a imprimir o enviar un correo electrónico? Bueno, podemos usar el nombre del botón a la derecha si echamos un vistazo, este nombre se llama declaraciones de impresión si le doy un vistazo a este ícono aquí se llama también se le llama declaraciones de impresión déjame seleccionar solo el ícono aquí también se llama declaración de impresión así que tanto el ícono como el botón tienen exactamente el mismo nombre si vuelvo a mirar el correo electrónico también esto se llama estados de cuenta de correo electrónico el ícono en sí mismo deseleccionar el botón seleccionar el ícono se llama estados de cuenta de correo electrónico, por lo que el ícono ahora recuerda que puedes hacerlo fácilmente a través del panel de selección, luego podemos firmar esos nombres o cambiar esos nombres aquí o aquí, está bien y esas cosas por lo tanto, ambos tienen declaraciones de impresión y nombres, por lo que sé, según el botón, el nombre del botón en el que el usuario hizo clic en cuál quiere hacer para que podamos extraerlo a través de la persona que llama si la persona que llama de la aplicación significa el nombre de la el botón es igual a la declaración de impresión, entonces sabemos que querían imprimirlo, entonces todo lo que tenemos que hacer es ordenar imprimir y luego configurar todo, así que todo lo que tenemos que hacer es imprimirlos, sin embargo, si han enviado un correo electrónico, básicamente usando el nombre del botón fácilmente luego podemos crear dos escenarios diferentes según el botón en el que hayan hecho clic, de lo contrario, esta declaración de correo electrónico en este archivo de declaración de caso será este libro de trabajo , estamos configurando el archivo de declaración tal como lo hicimos antes, si existe, estamos matando el vamos a crear ese archivo tal como lo hicimos antes vamos a configurar el correo electrónico tal como lo hicimos antes de configurar los pedidos al correo electrónico del cliente adjuntando ese archivo de declaración a través de esa configuración el mismo asunto configurando el mismo cuerpo que nosotros hice antes y lo mostré, eso es todo, eso es todo lo que tenemos que hacer y simplemente recorrer cada cliente para que el siguiente resultado se escribiera, así que estamos recorriendo todos los clientes que los crean y, por supuesto, si estuviera haciendo esto, lo configuraría en enviarte pr probablemente no mostraría todos esos correos electrónicos, por lo que con un solo botón podemos enviar correos electrónicos a todos los clientes con cualquier saldo o con saldos vencidos o cualquier configuración que establezca aquí con un solo botón o imprimirlos muy fácilmente, está bien, eso es todo. hoy no es tan largo finalmente uno que es un tiempo decente no horas y horas ahora estoy muy feliz de que te unas a nosotros por favor no olvides si quieres apoyarnos de muchas maneras otra gran manera es nuestra plataforma patreon en nuestro plataforma patreon voy mucho más allá de nuestras capacitaciones aquí cualquier idea que pueda tener o cosas que desee funciones que desee agregar lo hago en patreon usted me da sus ideas y agrego funciones o tal vez tenga un problema y hay que arreglar algo, lo hago en nuestro patreon o tal vez quieras que me concentre en un área que es un poco confusa, además de eso, cada semana creo un nuevo video de capacitación con un nuevo libro de trabajo actualizado que incluye todas esas características arreglan o áreas de enfoque junto con mucho más si desea descargas en pdf de todos los códigos que están disponibles. También obtuve descuentos anticipados en muchas funciones y, por supuesto, tenemos videos descargables si desea descargar estos videos para usarlos sin conexión. Tenemos eso y muchas más toneladas de beneficios en nuestra plataforma Patreon, así que espero que se unan a nosotros allí. Incluiré los enlaces a continuación. Muchas gracias por su apoyo continuo. Ha sido una gran capacitación. mucho y nos vemos la semana que viene