hola, esto es randy con excel para autónomos y bienvenido al administrador de recetas en la capacitación de esta semana, le mostraré cada paso sobre cómo crear su propia aplicación de administración de recetas y eso se completará con categorías dinámicas que podríamos ser capaces para crear y cargar sus propias categorías, vamos a tener una sustitución de búsqueda dinámica basada en el ingrediente o pegamos el nombre de la receta. También vamos a tener una selección en la que simplemente podemos seleccionar una receta y se cargará no solo que van a tener hasta cuatro imágenes en las que podemos usar este increíble control deslizante hacia adelante o hacia atrás y podremos seleccionar en los pasos mostrar pantalla agregar nuevos pasos eliminar pasos y mucho más no puedo esperar para compartir esto con ustedes, así que comencemos Comenzó bien, muchas gracias por unirse a mí hoy. Tengo una nueva capacitación para usted. Vamos a ir cada paso. Le mostraré cómo crear esta pantalla. línea del código vba incluso si tiene No tengo intenciones de crear su propio administrador de recetas. Habrá mucho que aprender esta semana. No querrá perderse ni un minuto. Le mostraremos cómo crear un menú dinámico como este. Va a ser realmente genial. capaz de mostrar que, por supuesto, la selección le mostraremos este control deslizante realmente genial. También le mostraré cómo puede crear sus propios pasos de receta agregando pasos eliminando pasos mostrando estas imágenes dinámicamente y mucho más. voy a hacer esta pantalla desde cero y luego voy a ir con usted a cada línea de código sobre cómo crear esta casa espero que le gusten estos entrenamientos se los traigo absolutamente gratis todos y cada uno de los martes solo pido algunos todo lo que necesita hacer un clic en el botón de suscripción a continuación y no se olvide de hacer clic en el ícono de notificación campana que asegurará que reciba una alerta cuando cree estos entrenamientos todos y cada uno de los martes comentario a continuación me encantaría escuchar sus pensamientos ideas retroalimentación que siempre es útil estas ideas provienen de ti, así que los estoy creando para ti y, por supuesto, no olvides presionar el botón "Me gusta" para que todos sepan que te gustó este video. Puse un montón de entrenamiento en estos videos, así que estoy muy feliz de compartir . ellos con usted si desea ayudarnos a apoyarnos en Excel para autónomos solo algunas maneras excelentes de hacerlo en primer lugar tengo 77 especiales para más de 200 libros de trabajo de mis mejores libros de trabajo de Excel que puede obtener en un solo archivo zip para solo 77 es un entrenamiento increíble otra gran manera completamente nuevo está en nuestro patreon tomaré estas aplicaciones y luego agregaré características o agregaré soluciones o crearé un área de enfoque y un video nuevo y un entrenamiento completamente nuevo y actualizado y eso es solo en nuestro cuenta de patreon, así que si quieres obtener ese soporte de ayuda adicional y también capacitación adicional, puedes hacerlo en patreon por solo unos pocos dólares al mes, está bien, comencemos, esta es una muestra, voy a guardar esto, pero tú obtener la idea básicamente antes de comenzar, básicamente w seleccionaré mariscos o cualquiera que sea nuestra categoría, vendrá de la pantalla de administración, es dinámico, por lo que cada uno puede tener sus nombres, luego tiene su imagen asociada con eso, así que vamos a tener que podrá seleccionar en una receta podremos buscar una receta por nombre o por ingrediente, por lo que si desea buscar pollo como ingrediente, puede hacerlo y le mostrará todas las recetas asociadas incluso con este escalope de cerdo o este cerdo. pero, por supuesto, contiene caldo de pollo, por lo que sabe cualquier cosa que contenga pollo, podremos seleccionar diferentes pasos, podremos agregar imágenes a los pasos y, por supuesto, podremos crear esto . Control deslizante de imágenes realmente genial. Podemos agregar hasta cuatro imágenes diferentes para cada receta. Por supuesto, vamos a agregar nuevas recetas. Guardar recetas. Eliminar recetas. Correo electrónico e impresión de recetas. Voy a guardar esta muestra y luego vamos a para comenzar, esta pantalla será un poco desde cero , lo que haremos es mostrarles el diseño básico, cómo llegué a él y luego compartiré con ustedes algunos de los las imágenes que creé y las formas y luego lo que haremos es recorrer cada paso del código, pero quiero darle una idea de cómo puede crear su propia pantalla como esta. Lo que voy a hacer es darle un administrador de recetas de título. Escribo las cosas mal con bastante frecuencia, por lo que es entretenido para ti captarlas y luego lo que queremos hacer es agregar un ícono aquí, pero lo agregaremos un poco. un poco más tarde y quiero buscar por pero aquí básicamente quiero las categorías correctas, así que quiero saber qué, como las viste , las categorías correctas, puedes tener una lista de categorías aquí y luego también quiero las recetas, el resultado de eso como viste allí, así que vamos a vender recetas allí, se ha hecho un poco de formato aquí para que puedas verlo y vamos g para poner eso en la fila lateral 3 y también quiero el filtro de búsqueda por lo que vamos a buscar, así que voy a tener una lista desplegable dinámica. Ya puse ese ingrediente o receta aquí, así que si buscamos en el datos y validación de datos, simplemente son solo dos valores, ingrediente y nombre de receta porque quiero buscar por ambos , así que eso ya está hecho y luego lo que haremos es darles un color y luego aquí abajo lo que quiero lo que quiero hacer es tener una lista aquí sobre una lista de ingredientes, así que voy a hacer esos ingredientes, todo se ha formateado un poco porque este es un Excel avanzado, así que lo entiendes bastante, pero quiero asegurarme de que entiendo cómo podemos crear estos ingredientes, asegúrese de haberlo escrito correctamente para variar, entonces tendremos la cantidad que quiero saber cuántas son las cantidades de eso aquí, así que anotaremos la cantidad y luego aquí quiero el unidad de medida, abreviaremos esa unidad de medida taza, pero ya sabes una mesap una cucharadita y luego, por supuesto, el ingrediente ingrediente ¿cuál es el ingrediente exacto? Está bien, una vez que también quiero tener una lista de nuestros pasos hacia abajo y quiero tener algunos formatos , quiero saber el nombre de la receta, así que voy a poner en el nombre de la receta, quiero saber el nombre y quiero saber qué produce, en este caso, qué produce, qué sabes, qué tipo de es, sabes, serán cuatro porciones o tres porciones o lo que sea que tengamos allí y entonces lo que quiero hacer es tener la información nutricional. De hecho, voy a poner el nombre de la receta. Pongamos eso aquí. El nombre de la receta aquí. tengo cuatro de ellos aquí para reducir los rendimientos y luego quiero la información nutricional quiero esa nutrición nutricional calorías y proteínas e información está bien y luego quiero la información de la receta información de la receta esa es la información larga sobre la receta como yo viste en la muestra, así que irá aquí en este centro de combinación, está bien, entonces tenemos los rendimientos y también quiero poner el tiempo de cocción, ¿cuál es el tiempo de cocción? ¿Cuánto tiempo llevará cocinar y también una preparación? en este caso , y quiero una calificación, olvidé mostrarle una lista desplegable, una lista desplegable dinámica, será mejor que obtenga una calificación, le mostraré esa calificación y luego, básicamente, lo que quiero es una lista desplegable , podemos hacer clic en la estrella, así que les mostraré eso y luego también quiero la categoría aquí, la categoría, qué categoría será, es la categoría de pollo y res, ahora tengo una lista de categorías que Te mostraré pronto, está bien, así que esa es la idea básica, así que aquí no necesitamos eso , eso estará vacío, así que básicamente tengo un campo aquí, así que vamos a darles algunos colores y eso será más o menos lo que hace. tengo mucho que hacer así que aquí este es formato condicional por eso cambié de color así que no te lo mostraré en un momento ok Entonces, haremos este ingrediente que quiero principal y los pasos. Quiero poner los pasos aquí. ¿Cuáles son esos pasos? Quiero que esos pasos aparezcan aquí y luego también quiero poder poner una imagen una imagen. aquí esta imagen a la derecha, así que agregue la imagen del paso vamos a poder agregar la imagen del paso aquí para que la imagen esté aquí y voy a tener un botón de exploración aquí mismo para que estos obtengan una cierta color aquí, así que voy a desplegar esto, formatearemos ese color solo para dar esas filas de encabezado y luego también estos dos, así que básicamente todos estos obtendrán un color específico un poco más oscuro, no tan oscuro pero algo como esto aquí y luego lo que quiero hacer es que quiero tener esa información secundaria esa información principal la receta aquí estos el tiempo de cocción la categoría y la calificación quiero darle a eso solo un poco de un color más claro algo así como uh vamos echa un vistazo a este de aquí, está bien, y luego solo quiero una i marrón voy a formatear esas celdas, las quiero en este caso, quiero un borde marrón, así que voy a darle un color de borde y voy a seleccionar un color específico, usaremos este color aquí y luego solo dele un borde alrededor y adentro, está bien, y haremos esas actualizaciones en consecuencia, así que me gusta la forma en que se ve y ahora, como recordarán , vimos un fondo realmente genial ahora creo que es hora de poner eso entonces, lo que voy a hacer es ir al diseño de la página aquí, voy a ir al fondo, voy a seleccionar el fondo, ahora tengo esta imagen de grano de madera, es muy, muy genial, justo este grano de madera Voy a insertar eso, está bien, y eso le dará ese aspecto realmente genial, eso es bueno, pero realmente no queremos ver las líneas de cuadrícula aquí, así que vea y luego la línea de cuadrícula para que podamos deshacer eso, está bien, así que ahora verá. cómo obtuvimos ese aspecto, así que ahora lo que queremos hacer es colorear esos campos en blanco para asegurarnos de que podemos entender que esos son los f campos que vamos a agregar a nuestras categorías, entonces queremos poner los ingredientes aquí, esos campos ingresados por el usuario deben estar en blanco para que el usuario sepa que puede ingresar los valores allí, por lo que debe ser blanco y nuevamente nosotros Iré con la misma mantequilla marrón. Voy a formatear el borde. Tengo hambre. Estoy hablando de un borde marrón mantequilla por ahí y luego no sé por qué tengo hambre mirando todas estas recetas . también quiero hacer estos dos aquí también quiero aquellos en blanco y también el borde marrón buen formato esas celdas realmente formatean hagamos clic derecho y formateemos en realidad lo que podemos hacer es solo podemos hacer el borde seleccionaremos el color de la línea aquí que vamos a usar aquí , lo siento, está fuera de la pantalla aquí, pero ese es el marrón y todo lo que tenemos que hacer es ir a los bordes aquí, está bien, así que me gusta la forma en que se ve lo que quiero tendré una forma aquí arriba que se llama buscar por eso va a subir aquí en la parte superior tenemos categoría ies que van a ir aquí abajo tenemos recetas en formas van a ir aquí abajo así que las categorías van a ser formas las recetas van a ser formas por eso es tan fácil y estas son las que necesitamos dar eso, voy a darle ese color marrón un poco más claro que será este de aquí y está bien, me gusta eso, aunque bajemos, tal vez un poco más claro en ese marrón, así que queremos ese sub ese sub sí, ese es el que quiero, así que observe que es secundario y nuevamente le daremos ese borde marrón, está bien, así que se ve muy bien, las cosas se están perfilando bien , no están sucediendo muchas cosas aquí en cuanto a la pantalla porque hay mucho trabajo en las formas, así que echemos un vistazo a eso, así que tenemos una imagen de paso de anuncio, eso será, le daremos ese color marrón allí y luego quieren poder agregar esa imagen, así que estamos voy a mostrar esa imagen aquí y quiero ese paso en blanco porque así agregarán la s pasos y luego voy a poner este marrón marrón aquí, así que queremos ese color marrón claro y luego le daremos el borde alrededor que se ve bastante bien, pero ahora lo que queremos hacer es agregar nuestras formas guardando nuestro trabajo ahora creé muchas formas antes creo que es más fácil, en lugar de crear formas manualmente, simplemente las mostraré porque están allí, están ocultas allí, entonces, ¿qué vamos a hacer? es que vamos a mostrar todo bien, eso es mucho más fácil, ¿no es así? Repasemos lo que acabamos de agregar, así que nos ahorrará mucho tiempo porque hay un montón de vba en el que quiero entrar, así que básicamente todo esto es un campo de texto y sabes que nos quedamos sin espacio aquí, pero cuando te quedas sin espacio y quieres poner otro campo, simplemente agrega un texto, así que eso es todo lo que hice . lista desplegable, esto es realmente genial, observe cómo ya está funcionando, así que esto es lo que olvidé mostrarle antes de que esto sea una lista desplegable realmente genial que puede seleccionar aquí seleccione aquí voy a mostrarle cómo hacerlo también así que tenemos nuestras formas tenemos uh todo prácticamente configurado de la manera que queremos tengo nuestro botón para ver qué tan rápido fue básicamente todo lo que tenemos y, por supuesto, si quieres estos íconos, si quieres todas estas imágenes, si quieres todo, únete a nuestro patreon. Voy a poner cada imagen, cada ícono , todo lo que ves aquí. estará en un solo archivo zip en nuestro patreon, así que asegúrese de unirse a eso e incluiré el enlace a continuación para usted, así que básicamente lo que quiero hacer es repasar algunas de estas formas en mis notas, así que esto es solo un cuadro de texto, todo con la búsqueda por esto aquí, eche un vistazo a esto, todo lo que es nuevamente es solo un cuadro simple, es solo un rectángulo simple, todo lo que hice fue poner menos que eso es todo lo que es y para esto de nuevo, ¡ups! Hice clic en la macro allí, bueno, no importa y esto es lo mismo, pero esto es más grande que todo. es y todo lo que establecí la transparencia, echemos un vistazo allí, el formato de la forma y la transparencia es correcta en un cincuenta por ciento, por lo que si fuera un cien por ciento, sería blanco correcto , por lo que es solo un cincuenta por ciento, eso es todo es este rectángulo y hay una macro que está en esta línea, esa macro nos permitirá cambiar entre allí, ahora mismo, te mostraré, por supuesto, por qué esas imágenes son algunas, podemos borrar las imágenes, podemos enviar la receta por correo electrónico, está bien, entonces, ¿qué queremos hacer? ahora quiero poder ingresar una receta, pero lo primero que queremos hacer es ingresar algunas categorías bien, quiero tener una macro que cargue todas nuestras categorías ahora, sean cuales sean nuestras categorías por nuestras categorías, repasemos brevemente en la pantalla de administración ve lo que tenemos aquí tengo una carpeta llamada imágenes de categoría esta es la carpeta en la que todas nuestras imágenes se almacenarán aquí, así que si echamos un vistazo a esto aquí tengo dentro de mi carpeta tenemos categorías de comida y tengo una f mayores con seis categorías de alimentos carne de res pollo postres pasta bien, esas son todas las imágenes que quiero incluir en las categorías y, por supuesto, voy a incluir estas imágenes en nuestro patreon, así que tengo imágenes de recetas, estas son imágenes que son específicamente para las recetas, cada receta tiene hasta cuatro imágenes y, por supuesto, podemos cambiar con ese control deslizante, por lo que también tenemos imágenes de pasos, recuerde que cada paso puede tener su propia imagen, así que también tengo imágenes de pasos Entonces, tengo algo de información , solo información, algo de información útil, está bien, eso es lo que tenemos, así que realmente tenemos carpetas, así que quiero saber qué carpeta o categorías se almacenarán en qué carpeta, está bien, también quiero saber qué carpeta . Las imágenes de nuestras recetas se almacenarán. Quiero saber en qué carpeta están las imágenes de los pasos. Recuerda que tengo tres carpetas diferentes. Tres carpetas diferentes . este gran cosa, asegúrese de que también coloque las carpetas en las que se encuentre y también tengo una imagen de receta predeterminada y eso significa que básicamente quiero configurar una imagen específica, esta es la imagen aquí que quiero configurar si no hay una imagen para la receta i quiero configurar algún tipo de imagen y estoy usando esto como nuestro valor predeterminado, así que verá que cuando borre la imagen o si la receta no tiene ninguna imagen, quiero configurar esta como la predeterminada, así que vamos a usar esa imagen y necesito mapear esta imagen completa, incluida la carpeta y el nombre, en una celda específica, por lo que es c6, que es la ruta completa del archivo de esa imagen predeterminada, también tengo la lista de categorías que tenemos. Podrá recorrerlos a medida que agregue categorías y, a medida que agregue imágenes para cada categoría, se crearán dinámicamente y puede hacer clic en este botón Actualizar y hará exactamente eso si hago clic en ese botón ahora se creará automáticamente esas categorias aqui porque las macros ya estan compl listo, vamos a repasar esa macro, por supuesto, vamos a repasar cada macro en cada campo, cada fórmula, así que no se preocupe, será un entrenamiento largo, así que espero que tenga su café o su bebida. de elección, así que eso es exactamente lo que hará esta macro, actualizará y creará esas categorías , tengo las cantidades, estas serán realmente útiles cuando queramos agregar un ingrediente específico, necesitamos saber cuánto 1 8 1 6 y tengo los valores asociados aquí ahora estos valores realmente no los vamos a usar en esta capacitación específica, pero creo que podrían ser muy útiles en el futuro, así que los combino para que uno sea si volver a usar si queremos combinar valores o queremos crear un conteo de calorías o algo así queremos convertir esto en un valor, puede ser muy útil, pero básicamente vamos a usar una lista desplegable cuando queremos seleccionar cantidades para los elementos de la receta necesitamos saber 1 6 y luego también necesitamos la unidad de medida i Son 1 8 tazas, un cuarto de taza, una gota, lo que sea, así que tengo todos estos nombres y la abreviatura correcta, eso será útil nuevamente, no vamos a usar esto realmente, pero podría ser realmente útil en el futuro, así que me gustaría agregar cosas incluso si no las uso todas porque es posible que desee usarlas, así que las pongo aquí para usted cuando descargue esta aplicación de forma gratuita usando los enlaces en la descripción a continuación, así que tenemos eso eso está en nuestra pantalla de administración eso es básicamente eso es todo lo que tengo allí tengo una base de datos de recetas tengo hasta 20 recetas y luego cada nombre de receta tienen una categoría asociada con ella los rendimientos el tiempo de cocción la calificación ahora aviso que la calificación es cuatro o cinco o lo que sea, pero cuando la mostramos y la cargamos, en realidad mostrará las estrellas, así que será realmente genial, así que si guardo una receta como tres estrellas, eso va a estar poniendo un tres aquí, de lo contrario, puede ser cuatro o cinco, cualquiera que sea la calificación, está bien, vamos t información nutricional información de recetas y luego tenemos hasta cuatro imágenes por receta imagen uno dos tres y cuatro está bien, recuerda que podremos desplazarte por esas imágenes así, está bien, así que te mostraré cómo hacerlo muy, muy pronto Así que eso es todo para las recetas. Ahora, cada receta tiene sus propios ingredientes. Tenemos una lista de ingredientes . Tenemos ingredientes ilimitados por receta. identificación única aquí y, por ejemplo, si quiero saber todos los ingredientes para el pollo con mantequilla, necesito saber cuál es la identificación de la receta para que se almacene aquí, así que todos los ingredientes hasta aquí son para ese pollo con mantequilla, creo que yo Tendré eso para la cena, así que yogur natural, jugo de limón, así que todos estos son: observe las cantidades, observe las unidades de medida, bien, acabamos de repasar la fila, ¿cuál es la fila ? 13 14 y 15 bien, eso aparecerá a medida que agreguemos ingredientes aquí, podemos agregar ingredientes específicos suponiendo que tengamos algo, simplemente podemos agregar ingredientes para cada una de nuestras recetas, así, ahora lo que voy a hacer es tener otra lista de miles de alimentos y voy a incluir eso en nuestra actualización de patreon, así que me aseguraré de poner esos alimentos, no, creo que son alrededor de seis siete mil ingredientes diferentes, los incluiré para que no incluso tengo que escribirlo, estarán aquí en una lista desplegable o haré que se complete automáticamente para que pueda comenzar a escribir, así que eso también lo pondré en Patreon, así que echemos un vistazo. aquí básicamente tenemos todo eso para que podamos ingresar esos ingredientes y todos esos ingredientes se almacenan aquí, así que necesito saber la fila recordar la fila de la receta 12 para que cuando ingrese una receta determinada en una fila determinada vuelva a exactamente la misma fila y estoy usando el formato condicional aquí para que veamos bien así que de vuelta en las recetas y, por supuesto, necesito saber la fila de la base de datos que es la fila actual cinco seis siete cualquiera que sea la fila en la que está almacenada eso es realmente importante, por último, tengo los pasos de cada receta nuevamente, cada receta tiene un conjunto de pasos, así que aquí está el identificación de receta para que el pollo con mantequilla en este caso tenga seis pasos diferentes y el paso número uno dos tres cuatro necesitamos rastrear que también necesito saber el texto que está en grande y necesito saber una imagen asociada con este paso si tiene una imagen y, por supuesto, la fila que está asociada con la base de datos rogue y eso es todo, así que cuando combinemos eso, recuerde cuando cargue esta receta y voy a cargar toda la información para esa receta, el nombre, la categoría y luego lo que Lo que voy a hacer es cargar todos los ingredientes. Voy a ejecutar un filtro avanzado. Solo quiero saber esos ingredientes para la receta número uno, así que pondré un criterio aquí, arrojará todos esos resultados. para eso voy a traer esos ingredientes voy a hacer lo mismo para los pasos de la receta voy a poner un criterio voy a cargar solo esos pasos y lo que vamos a hacer es cargar ellos aquí mismo esta receta, por supuesto, esos van a estar en formas porque es mucho más flexible, tenga en cuenta que no estamos usando celdas para aquellos, vamos a usar formas, está bien, genial, así que eso es todo ahora que tenemos para cortar la descripción general y lo bueno es que tenemos una versión de trabajo en la que podemos trabajar. Repasaré cada línea y esta tiene tanto código que no escribiré el código a menos que encuentre un error, pero repasaré cada línea de código que ayudará a mantener estas capacitaciones tal vez dos horas. No sé sobre esta capacitación, ya veremos, pero eso es lo que busco en este porque una buena cantidad de código y hay tantas cosas geniales aquí, recuerda que no tienes que crear este administrador de recetas, pero te mostraré cómo pensar en formas puedes crear esto usando tus propias aplicaciones tus propias ideas básicamente es solo un montón de trucos hay algunas técnicas y algunos consejos geniales que puedes aprender para construir tu propia aplicación así que quiero verte usar estas técnicas en tu propia aplicación lo que quieras Entonces, lo primero que vio la macro que ya se ejecutó son estas categorías. Vayamos a esa macro y veamos cómo generamos categorías, pero antes de hacerlo, quiero poder mostrarle algunas cosas por las que vamos. estas categorías aquí vamos a necesitar una muestra si estoy creando esto dinámicamente si estoy creando esta forma necesito comenzar con algo bueno estoy comenzando con este círculo ahora este círculo no necesariamente tiene que ser lleno a la derecha este círculo aquí es solo un círculo simple con un borde todo lo que he hecho es darle un borde y una imagen si tuviera que insertar manualmente una imagen sin usar vba entraría en la imagen de formato y luego iría en relleno y seleccionaría una imagen, yo Inserte un archivo y seleccione una imagen específica si quisiera poner ese grano de madera. No sé por qué lo haría, pero si quisiera hacerlo, podría poner ese grano de madera aquí, así que todo lo que tenemos que hacer y si quiero. simplemente no ponga ningún relleno. Podría poner ningún relleno sólido relleno de cualquier manera, así que lo mantendremos así porque es vba el que pondrá esa imagen en vba se encargará de eso, por lo que no es necesario que comience con una imagen, pero lo que quiero es muestrear exactamente de la forma en que el tamaño correcto, la forma correcta, el ancho correcto, todo, así que todo lo que necesito hacer es llamar a este llamado imagen de muestra de categoría, todo lo que necesito hacer es duplicar eso y luego hacer las actualizaciones. en consecuencia, está bien y también quiero el aviso de nombre, ahora hay un nombre de texto, esto es nuevamente solo una forma aquí, es esta forma aquí, vamos a traerlo aquí, lo traeré aquí para que pueda verlo y esta forma particular aquí también simplemente tiene un color de relleno correcto y tiene una transparencia que debe ser de alrededor de 50 , sea lo que sea quiero, así que este es solo un cuadro de texto simple de forma simple con una transparencia de 50 , eso es todo lo que hay en este pollo, a la derecha, y este nombre específico se llama nombre de muestra de categoría, por lo que se mantienen ocultos, pero son estos que nosotros voy a usar para crear esa categoría, así que todo lo que realmente necesito hacer es hacer algunas cosas, una, necesito saber la carpeta en la que vamos a tener esas categorías, dos, necesito saber la última fila y luego voy para recorrer estas filas , voy a decir, está bien, todas las filas que tienen valores. Voy a buscar una imagen. Esta es una imagen llamada pollo dentro. Si se encuentra, voy a crear un círculo. coloque la imagen dentro de ese círculo y luego lo que voy a hacer es crear un cuadro de texto, le daré ese nombre y así es como obtenemos este pollo, así que echemos un vistazo dentro de vba y vea exactamente cómo lo hacemos desde la pestaña de desarrolladores en visual basic, puede hacer alt f11 lo llevará allí ahora lo que tengo aquí en esta aplicación La catión es prácticamente dos módulos y luego tenemos uno basado en el código de la hoja y otro basado en la receta, así que vamos a comenzar en este código de la hoja aquí y tenemos uno aquí llamado echemos un vistazo aquí mismo. menú de categoría de compilación esta es la macro que se ejecutó tan pronto como hice clic en este botón este botón aquí firmamos la macro, vemos que es el menú de categoría de compilación, así que esa es la macro en la que nos vamos a centrar en este momento, está bien, ahora voy para reducir esto para que podamos ver esto tanto en la pantalla de administración como en el código al mismo tiempo y puedan ver todo bien, así que tenemos eso y tenemos algunas hojas diferentes para que vean, así que básicamente vamos a crear ese menú de categorías, lo primero que debemos hacer es si hay alguna forma que deba eliminarla correctamente, las estamos recreando , por lo que cualquiera de estas formas de menú aquí necesito eliminarla, pero debo asegurarme de que haya algo único en eso . correcto se llaman todo en esto se llama continuar llamado tiene t las palabras categoría imagen de categoría o nombre de categoría nam en este caso nam específicamente nam así que observe que la muestra no tiene la categoría de palabra completa y hay una razón porque si voy a eliminar solo quiero eliminar las formas con el nombre categoría de nombre completo solo aquellas que quiero eliminar porque antes de volver a escribirlas tal vez he agregado una imagen tal vez he cambiado el nombre quiero eliminar todo aquí las seis de esas imágenes las seis de esos cuadros de texto así que quiero para eliminarlos y hacer eso, solo necesito verificar cada forma específica en una hoja, por lo que lo primero que quiero hacer es eliminar eso, quiero asegurarme de que, por supuesto , tenemos una carpeta dentro que quiero asegurarme de que tenemos una carpeta precisa si no tenemos una carpeta aquí para imágenes, por supuesto, no hay nada que podamos hacer, por lo que la primera línea de código es hacer exactamente eso si el rango de administración c3 es igual a vacío o el directorio del administrador c3 vb direct significa en otras palabras, ¿es un c orrect path admin c3 vb directory esto significaría una ruta incorrecta si está vacía, hay algo mal con la ruta, luego infórmeselo al usuario, seleccione y agregue o corrija el paquete correctamente, así que si trato de ejecutar ese código y cambio solo una letra aquí y Intento ejecutar ese código ahora, te dará ese error, dirá: oye , sabes, selecciona la carpeta de imágenes de la categoría correcta en la pantalla de administración porque lo he llamado mal a propósito, por eso no funciona, así que nosotros necesito saber si hay algún problema para que la notificación aparezca bien ahora una vez que tengamos que lo que quiero hacer es tomar esa carpeta de categoría quiero ponerla en una variable de cadena llamada carpeta de categoría todas mis variables han sido definido aquí, está bien, los revisaré uno por uno a medida que lleguemos a ellos , por lo que el archivo de categoría es el nuevo, esta es una variable de cadena, volvamos a la macro aquí admin c3 y lo que quiero hacer es quiero agregue una barra invertida a esa cadena que es el ruta completa de la carpeta de categoría ahora tenemos un nombre de archivo perfecto todo lo que tenemos que hacer es agregar la imagen y tenemos la ruta de archivo correcta completa de la imagen pero nuevamente necesito saber la última fila de las categorías si estamos Voy a recorrer todo esto. Necesito saber la última fila, en este caso es 14. Entonces podemos usar una sola línea de código para hacer exactamente eso para obtener la última fila y esa última categoría es igual a admin b34 y excel x11 la última fila de categoría si por alguna razón la última fila de categoría es inferior a nueve, entonces, por supuesto, debemos informar al usuario para asegurarnos de agregar algunos usuarios en la pantalla de administración aquí, por lo que si es inferior a nueve significa que no hay categorías asumiendo que tienen categorías, podemos avanzar, nos centraremos en la pantalla de recetas recetas, este es el nombre vba para esto que he agregado, se llama recetas, observe el nombre, ambas son las mismas recetas que vamos a concéntrese en esa hoja allí con cada forma de categoría que se ha dimensionado d como una forma aquí arriba, como esta forma de gato como forma, así que ahora que lo he dimensionado como una forma, sé que es una forma vba sabe que es una forma, así que podemos trabajar con él así como una forma para hacer eso podemos decir para cada categoría forma en formas de puntos recetas formas de puntos eso significa para cada forma individual si el nombre de la categoría si el nombre de esa forma el nombre de esa forma contiene la categoría de letras de la categoría de cadena no es igual a cero eso significa que es se ha encontrado en esa forma, luego elimine la forma, podemos eliminarla, no estamos eliminando la muestra, solo estamos eliminando, así que haremos eso para cada forma una vez que hayamos hecho eso, lo que quiero hacer es i quiero configurar la fila ahora voy a colocar estas categorías con una separación de cuatro filas, observe que la primera va en cuatro a la derecha, la segunda a la derecha en nueve, así que unas cinco filas de distancia aquí, pero quiero configurar la primera la primera la primera fila va a estar en cuatro, entonces lo que haré es aumentarla en cinco la próxima uno irá al nueve, luego el siguiente irá al 14 a la derecha, así que voy a poner cinco filas en el medio, pero necesito que la fila inicial esté en la fila cuatro porque eso nos dirá dónde colocarlo para que podamos vamos a configurar esa fila inicial en la fila de categoría de receta igual a cuatro establecer la fila de categoría inicial luego vamos a ejecutar ese ciclo desde nueve hasta la última sala de categoría recuerda ese ciclo como mencionamos comenzando aquí en nueve y hasta el final para durar en este caso catorce, necesito ejecutar el ciclo porque necesito obtener la imagen y necesito obtener el nombre y necesito poner esa información en esas formas, así que hacemos exactamente eso dentro de esto, así que en este caso estamos voy a establecer el nombre de la imagen en el administrador c en la fila de celdas, este es el nombre de la imagen, está bien, el nombre de la imagen del archivo está bien, entonces esto es, por supuesto, necesito configurar esto aquí, esta es la ruta del archivo, la ruta completa del archivo, recuerda que es esa carpeta de categoría combinada con ese nombre será la ruta completa de la imagen del archivo foto derecha la ruta de acceso ese es el archivo completo, está bien, ahora lo que quiero hacer es asegurarme de que sea preciso para asegurarme de que si el archivo de imagen del directorio está vacío, vaya a la siguiente derecha, solo vamos a ir a solo vamos para omitir todo esto e ir aquí mismo, no vamos a poner nada aquí abajo, eso es todo lo que vamos a hacer, supongo que podríamos ir aquí mismo, en otras palabras, vamos a terminar la imagen, pero supongo Podríamos poner el texto aquí mismo, así que esto es para la imagen aquí, esto es para el texto, así que podemos omitir eso y simplemente ir al texto, en otras palabras, no hay imagen, pero tenemos que enviar un mensaje de texto, está bien, entonces vamos para omitir si vamos a omitir la siguiente categoría de imagen que está aquí, pero no queremos asumir que tenemos un nombre de ruta de archivo correcto, entonces queremos hacer lo siguiente, lo que quiero hacer nuevamente como mencioné i quiero tomar esta muestra de categoría y quiero duplicarla cuando tenga el duplicado quiero nombrar ese duplicado quiero darle un nombre específico qué nombre quiero darle quiero darle un nombre que pueda entender, así que en este caso será la imagen de categoría 9. ¿por qué es 9 porque quiero basarme en esta fila aquí o en esta fila? o esta fila de esa manera, sé lo que se seleccionó correctamente, así que le daré un nombre específico y un número, así que haremos exactamente eso aquí con las siguientes líneas de código si la imagen del directorio, oh, repasamos eso Aquí, la imagen de muestra de la categoría de formas , la duplicaremos, luego le asignaremos un nombre, un nombre único , siempre comenzará con la selección de categoría y luego agregaremos la fila de categoría en el primer caso. será 9. una vez que hayamos asignado eso a nuestra nueva forma, podemos trabajar con ella, de modo que con la fila de categoría de imagen de categoría de formas, lo primero que quiero hacer es colocar la posición izquierda, será igual a las recetas en otras palabras tengo que volver a llamar el nombre del truco porque estoy dentro de otro ancho, así que esta vez tengo tengo que llamar a ese nombre de hoja d4 derecha a la izquierda en este caso a la derecha la posición izquierda vamos a usar una celda exacta el cuatro no necesariamente importa la d sí importa bien más 16 significa que no quiero exactamente directamente está justo a la derecha, quiero moverlo unos 16 píxeles a la derecha, así que fíjate si estuviera exactamente a la derecha, estaría aquí, está bien, así que no lo queremos allí, justo en el lado derecho, lo queremos. movido a la derecha derecha no exactamente en el lado izquierdo de la celda derecha o a la derecha de ese borde de la celda, lo queremos en el medio, así que lo llevaremos más de 16 píxeles a la derecha izquierda más 16 nos darán allí, entonces, quiero establecer la posición superior para hacer que lo que quiero hacer también sea d y cualquier fila, recuerde que comenzamos nuestra fila aquí en cuatro, la fila de categoría de receta comenzará en cuatro y luego crecerá, por lo que nuestro primera fila, vamos a establecerla en lo que sea que esa fila sea la posición superior de esa fila, esto establecerá nuestra posición superior se t en la posición superior y esto va a establecer nuestra posición izquierda, establecer la posición izquierda, entonces lo que quiero hacer es realmente llenar esa imagen y simplemente duplicarla para llenar con la imagen y podemos hacerlo con solo una línea de código que puse in width que crea automáticamente este ancho final, pero no lo necesitamos, así que lo que vamos a hacer es llenar vamos a llenar esa forma esta forma la estamos llenando ¿qué la estamos llenando? al llenar con la imagen del usuario cuál es la ruta del archivo de esa imagen que ahora es el nombre exacto del archivo de imagen que lo llena con esa imagen ahora lo que quiero hacer es asignar una macro a la que vamos a repasar esa macro a continuación, esa es la macro que sucede cuando realmente selecciono una de esas, así que está esa macro que cargará esas recetas aquí una vez que seleccionemos algo, así que quiero asignarle una macro para que esa macro se obtenga independientemente de si selecciono el nombre o si selecciono bien la imagen para que esa macro sea el nombre llamada selección de categoría, esa es la próxima macro que vamos a seguir después de esta , está bien, eso es todo, eso es todo lo que tenemos que hacer con la imagen ahora nos vamos a centrar en el nombre correcto, hemos agregado la imagen que colocamos ahora lo que vamos a hacer es crear este pequeño cuadro de texto nuevamente. Todo lo que estamos haciendo aquí es simplemente copiar este duplicado de este texto de muestra y luego darle ese nombre similar y luego simplemente colocarlo de modo que el primero. nombre de la muestra de la categoría de formas de las cosas duplicando el nombre de la categoría y la fila de la categoría, está bien, nuevamente dándole esa fila única que, a medida que recorremos todas las filas, podemos enfocarnos solo en esa forma, le daremos la posición izquierda exactamente a la izquierda y esta vez, ahora mismo, moviéndolo sobre d4 y vamos a establecer la posición superior ahora la posición superior será la posición superior de la fila más la altura de lo que sea que la imagen sea correcta, así que básicamente lo que quiero hacer es i quiero poner esta posición superior bien no es g va a ser esto va a ser esta fila más qué más la altura de esto la altura de la imagen bien quiero saber la altura más un poco más a la derecha así que eso iba a bajar así que eso es todo lo que hacemos la altura de esa imagen recuerda la imagen que acabamos de crear aquí imagen de categoría más uno más un píxel va a desplegarse eso va a establecer la posición superior de ese cuadro de texto establecer la posición superior del cuadro de texto bien y esto es, por supuesto vamos a establecer la posición izquierda establecer la posición izquierda ahora que tenemos todo lo que tenemos que hacer es poner el texto justo aquí tenemos algo llamado platos de pollo que podríamos poner yo puedo poner un texto de muestra no no importa porque se va a cambiar, pero es bueno saber que dice muestra bien, así que lo que quiero hacer es reemplazar cualquier texto que esté aquí con el nombre real, ¿dónde vamos a encontrar eso, por supuesto, que está ubicado en b pero ya lo hemos convertido en una variable a la derecha ya lo tenemos o en realidad no lo pusimos en una variable que está bien el marco de texto va a ser b tal como lo mencioné y la fila de categoría a medida que recorremos esas filas de categoría vamos a establecer el texto Ahora bien, de nuevo vamos a asignar esa misma macro, la misma macro que le asignamos aquí arriba a esta imagen, de modo que tanto la imagen como el cuadro de texto tengan asignada la misma macro, entonces todo lo que tenemos que hacer es incrementar las filas en cinco . recuerde que vamos a incrementar cada categoría, vamos a aumentar en cinco, la primera comienza en la fila cuatro aquí, la segunda va a la nueve y luego, por supuesto, a la 14, y así sucesivamente, así que eso es todo, eso es todo lo que tenemos que hacer. para configurar esas categorías, de modo que cuando ejecutemos esa macro aquí y podamos ejecutarla, automáticamente creará esas categorías agradables y organizadas, está bien, ahora observe que cuando seleccionamos una, algo sucede bien, lo que vamos a hacer es que estamos voy a cargar esto, entonces, ¿qué es lo que realmente quiero hacer cuando lo hago bien? esa es la macro a la que vamos a ir ahora y básicamente lo que quiero hacer es determinar qué categoría se seleccionó fue un pollo fue carne de res y quiero ejecutar un filtro avanzado tenemos muchas recetas aquí pero Quiero saber solo las categorías que hemos seleccionado correctamente. Entonces, ¿cómo hacemos eso? ¿Cómo sabemos cuál? Vamos a ejecutar un filtro avanzado. Si determino qué se seleccionó , puedo poner eso en algunos criterios. ponga eso en una categoría aquí, luego puedo ejecutar un filtro avanzado basado en eso y luego puedo saber exactamente qué se seleccionó en función de ese filtro avanzado y hacer que esos resultados vengan aquí, así que todo lo que tenemos que hacer es obtener ese pollo o lo que sea Seleccione si es carne de res. Necesito obtener esa carne de res y necesito ponerla directamente dentro de p3. Entonces, ¿cómo vamos a obtener eso? Bueno, no sabemos qué. He seleccionado correctamente, así que si sé que se seleccionó la selección de categoría o sé que la selección de categoría 10 es correcta, ¿qué sucede si elimino el texto, ¿y si elimino todas estas primeras letras aquí? Me va a dejar 10. Si sé que es 10, han seleccionado 10, todo lo que tengo que hacer es buscar aquí b y cualquier fila 10 o b y lo que sea fila derecha 11 cualquiera que sea ese número si extraigo ese número ahora también noto otra cosa observe cómo la selección de categoría tiene la misma cantidad de caracteres que el nombre de la categoría y tengo la misma cantidad de caracteres, así que si elimino esos caracteres si sé lo que tienen seleccionado y elimino esos caracteres usando el reemplazo me va a dejar con el número sin importar cuántos dígitos sea ese número me va a dejar con ese número y eso es justo lo que vamos a hacer dentro del código así que eso es lo siguiente macro que vamos a ejecutar es esa macro que se le ha asignado, por lo que se llama selección de categoría y tal como lo hicimos antes de las categorías esta vez en la receta, también vamos a crear un aviso de muestra que tengo un muestra aquí vamos a sacar eso donde es un poco más visible aquí y tengo una forma aquí, básicamente, solo un cuadro de texto llamado nombre de receta de muestra y , nuevamente, si voy y formateo las formas, puede ver que la transparencia está configurada en 50, nos dará eso buen aspecto en lugar de usar celdas aquí tenemos un aspecto realmente agradable si podemos usar formas uno podemos crear este efecto de menú realmente agradable donde no tenemos que seleccionar en una celda a la derecha y dos obtenemos esta transparencia agradable que realmente se ve bien contra la madera trasera y, por supuesto, también podemos cambiar el color muy fácilmente cuando lo seleccionan, luego podemos cambiar un color, está bien, lo hice demasiado rápido, pero entiendes el punto, así que ahí vamos, así que básicamente eso es todo lo que tenemos. para hacer y sí, está funcionando bien, recuerda que todas las macros funcionan, así que básicamente la idea es que cuando usamos formas podemos hacerlas blancas, así que quería mostrarte eso, pero necesitamos comenzar nuevamente con una muestra y explicaremos por qué. ¿No le damos a esto algo un poco más claro ? es el nombre de la receta de la receta correcta, está bien, usando esta muestra todo lo que tenemos que hacer y podemos establecer el ancho en lo que queramos porque se establecerá automáticamente en, digamos allí , por lo que se establecerá en función de esta columna a la derecha. quiero el ancho si reduzco esta columna, la forma se reducirá, así que nuevamente con esta forma, todo lo que necesito hacer es duplicar y simplemente la puse aquí, duplique esa forma y luego cree la información, así que eso es justo lo que hacemos. va a hacer allí, pero ¿cómo sabemos qué forma crear? Cuando ejecutamos ese filtro avanzado , obtendremos todas esas recetas de pollo en ese momento, todo lo que necesita hacer es recorrerlas y simplemente tomar la receta . nombre es y ponerlo directamente dentro de esa forma como un cuadro de texto y eso es justo lo que vamos a hacer dentro de vba pero lo primero que queremos hacer es, por supuesto, eliminar cualquier receta específica que ya haya estado allí para que cada una de estos tiene un nombre distinto llamado nombre de receta el nombre de la receta es correcto, así que cualquier cosa que contenga el nombre de la receta nuevamente, le hemos dado una fila y tiene un número distinto, así que lo sabemos y probablemente podríamos aumentarlo un poco, pero sabes que para el entrenamiento está bien, así que le hemos dado un nombre y lo que quiero hacer es eliminar todos esos primero, así que hacemos eso nuevamente para hacer eso para cada categoría, forma correcta, lo primero, oh, lo primero que quiero hacer es extraer esa fila, recuerda cuando hacemos clic una categoría que necesito saber es 10 correcto es 9 es 10 es 11 correcto porque tengo que saber la fila que se ha asociado con eso, así que lo primero que quiero hacer es extraer esa fila y lo hacemos con una sola línea de código, esta es una variable larga aquí, es igual a que estamos usando el reemplazo, recuerda que lo que quiero hacer es obtener esos 11 caracteres, los primeros 11 caracteres y quiero eliminarlos, ¿cómo lo hago bien? puede usar el comando reemplazar básicamente estamos reemplazando algo bien ¿qué estamos reemplazando vamos ng para tomar la llamada de la aplicación la llamada de la aplicación es el nombre de la forma que llamó a la macro recuerde cada vez que intente ejecutar esta macro aquí mismo obtendrá un error por qué va a decir qué está mal porque porque porque yo llamó a la macro desde aquí que no va a funcionar, no, eso significa que no hay nada que haya llamado correctamente a esta macro, por lo que creará un error, pero cuando, por supuesto, cuando la ejecuta desde una forma, hay un nombre de forma real en este caso se llama selección de categoría 11. Así que todo lo que vamos a hacer es tomar la parte izquierda de ese nombre y quitar los 11 caracteres que vamos a reemplazar. Los 11 caracteres de la izquierda con los que lo vamos a reemplazar. nada cuando hacemos eso, por ejemplo, deja solo la fila de categoría, extrae la fila de categoría del nombre de la forma, eso es todo lo que estamos haciendo y eso es independientemente, tenga en cuenta que esto también tiene lo mismo, aunque es un nombre diferente pero tiene los mismos 11 caracteres, comienza con lo mismo 11 personajes dejándonos el 9 eso es lo que queremos, así sea que sea un dígito y este 9 o en caso de que sean 2 dígitos en los casos no importará porque estamos eliminando los primeros 11 caracteres y dejándonos con lo que quede en ese caso es el número entonces una vez que tengamos ese número, lo pondremos en una variable, se llamará fila de categoría, ahora estamos listos para eliminar todas las formas, por lo que para cada forma de categoría en la forma recibida, lo que quiero hacer es quiero de Por supuesto, quiero eliminar todos los nombres de las recetas para que todos puedan dar forma si incluye el nombre de la receta de texto, básicamente, serán todos estos correctos cuando seleccione uno nuevo y debe eliminar todos los antiguos para hacer eso. cualquier cosa que contenga un nombre de receta que debemos eliminar, así que lo hacemos con este código si en la categoría de cadena el nombre de la receta de recuperación del nombre no es igual a cero, eso significa que la forma contiene estas palabras, solo asegúrese de que cuando haga estos comandos quiera asegurarse cualquier otra forma no tiene ese nombre de receta oth De lo contrario, se eliminará demasiado bien, entonces lo que vamos a hacer es eliminar la forma y luego quiero hacer otra cosa, observe cuando haga clic aquí, quiero que la categoría se vuelva blanca. queremos que la categoría desaparezca, ¿cómo lo hacemos bien? Si sabemos que hemos hecho clic en nueve, lo sabemos, así que el nombre de la categoría, en otras palabras, ya tenemos esta variable dentro de una variable si combino este nombre de categoría con este sabemos cuál hacer que sea blanco, entonces, ¿cómo lo hacemos bien? Lo primero que hacemos es si en el nombre de la categoría de cadena quiero llenar todos esos claros, en otras palabras, si hago clic en este derecho y quiero para asegurarse de que este vuelva a ser blanco, observe que vuelve a esa transparencia, la mejor manera de hacerlo es tomarlos a todos, darles toda la forma, todo este, este, este, asegurarse de que todos lleguen a 50. transparencia a la derecha, quiero ir a 50 , así que si selecciono uno a la derecha, si selecciono este, necesito asegurarme de que Si selecciono la carne de pollo, vuelve a esa transparencia de 50, entonces, ¿cómo sé que realmente no sé cuál era blanco antes que nosotros? No hago un seguimiento de eso, así que todo lo que tengo que hacer es hacer todo ellos 50 de transparencia y luego el que seleccioné hacen que la transparencia cero sea cero, que es el color completo, así que lo hacemos aquí, lo que significa que para cada forma individual que contiene la palabra categoría nombre cada forma individual si no es igual a cero significa que hay una forma que contiene eso, entonces lo que vamos a hacer es la transparencia de relleno de forma de categoría igual a cinco, así que básicamente esta sola línea de código todo lo que hace es tomar cada nombre aquí y lo convierte en un cincuenta por ciento de transparencia, eso es todo lo que hace aquí cincuenta por ciento de transparencia, por lo que lo siguiente que tendremos que hacer a continuación es asegurarnos de que el que seleccionamos tenga un cero por ciento de transparencia, así que lo haremos un poco aquí, así que solo vamos a recorrer que ahora conocemos la fila de categoría que hemos seleccionado ted que si conocemos la fila y conocemos el nombre de la categoría si combinamos esos dos aquí sabemos cuál llenar, por ejemplo, si seleccioné carne de res correctamente y sé que seleccioné 10 correctamente si combino 10 i' He extraído ese 10. Si combino ese 10 con el nombre de la categoría de palabras, sé exactamente qué forma colorear de blanco, así que eso es justo lo que estamos haciendo aquí . cero eso significa a todo color a todo color 100 sería transparencia total bien 100 sería invisible a todo color sin transparencia bien y luego esto es media transparencia esto es lo que llamaríamos 50 transparencia así que 50 transparencia así que lo tenemos así es como lo hacemos así que ahora hemos coloreado el correcto, así que ahora lo que quiero hacer es borrar cualquier búsqueda si hay algo en a2 quiero asegurarme de borrar eso bien y luego lo que quiero hacer es porque va a ser diferentes tipos de búsquedas te lo mostraré un poco Un poco más adelante, ahora nos centraremos en la base de datos de recetas, ahí es donde ejecutaremos nuestros filtros avanzados, por lo que lo primero que quiero hacer es colocar ese criterio, esto se llama el criterio que quiero colocar . ¿Cómo sabemos cuál es el criterio correcto? Recuerde que conocemos bien la fila de categoría, así que sabemos a dónde irá. Va a ir directamente dentro de p3 en p3. Lo que quiero hacer Quiero obtener ese número de categoría si ese número de categoría es 10 entonces sé que el administrador b y la fila de categoría lo colocarán directamente dentro de p3, así que eso es justo lo que hacemos dentro del código p3 es igual al administrador b en la categoría de los criterios de categoría ahora necesito obtener la última fila de la base de datos correctamente necesito ejecutar ese filtro avanzado basado en la última fila, vamos a ejecutar ese filtro avanzado, nuestro criterio será p2 a p3 y queremos que los resultados entren en s2 a s3, así que hacemos todo eso con un solo línea de código a3 a c esto se recuerda basado en la receta base de datos que incluye los encabezados y ejecuta un filtro avanzado, vamos a copiar eso en otra ubicación, vamos a ejecutar ese criterio nuevamente, ese criterio es p2 a p3 como se ve arriba y queremos que esos resultados entren en s2 a t2 s2 a través de t2, vamos a los resultados, entonces lo que debemos hacer es determinar si tenemos algún resultado que generalmente tenemos, así que vamos a obtener la última fila de los resultados en este caso , quería la última fila de s correcta, así que en en este caso, la última fila, la última fila de resultados, la pondremos en una variable larga, será s9, esa será la última fila de nuestros resultados , si es menor que 3, entonces no tenemos resultados, podemos salir del sub suponiendo que tengamos resultados , lo que queremos hacer es establecer la fila inicial, recuerde nuevamente que estamos colocando formas, vamos a colocar formas en función de nuestra fila inicial, por lo que nuestra fila inicial será 4, luego vamos a ir a 5 6 7 8. así que solo vamos a incrementar las filas en base a eso, así que necesitamos establecer esa fila inicial al igual que hicimos con las categorías en este caso, las recetas también serán 4. nuevamente, una vez que obtengamos eso, lo tendremos, entonces podemos incrementar todo lo que deletreé algo que nuestra nutrición olvidó o dije lo olvidaría, así que continuando con nuestro código, vamos a establecer esa fila de receta inicial y luego vamos a recorrer nuestros resultados, ¿verdad ? Necesito recorrer todos los resultados en función de eso, así que comenzando en tres yendo hasta la última fila, vamos a traer todo eso, el último resultado, así que, en primer lugar, vamos a ese nombre de receta de muestra, esa forma que viste aquí, necesitamos duplicar esa es esta forma aquí mismo, necesito duplicar eso y luego lo actualizaremos, de modo que con las formas de las recetas, el nombre de la receta y la fila de resultados a la derecha, vamos a escribir, quiero posicionar que se basará en la columna e y la izquierda o la posición superior de la izquierda a la derecha todo basado en la fila de la receta aquí y luego Quiero establecer el ancho en caso de que cambiemos el ancho de la columna aquí. Quiero asegurarme de que el ancho sea correcto . en eso está bien, eso es muy importante, quiero asegurarme de que el ancho esté contenido, así que todo lo que tenemos que hacer es volver a ejecutarlo y ese ancho se ajustará automáticamente, así que hacemos que aquí el ancho se base en cualquier columna Si el ancho de la columna e será automáticamente el mismo ancho de la forma, entonces necesito agregar el texto en el cuadro, bueno, eso es simple, el texto del rango de texto del marco de texto será igual a la base de datos de recetas, en otras palabras, necesito recuerde que necesito llamar a nuestra hoja nuevamente porque estoy dentro de otro ancho, la t y la fila de resultados, así que a medida que recorremos estas filas, este será el nombre este nombre nombre nombre, así que vamos a obtener todos los nombres aquí llevándolos al cuadro de texto y simplemente recorremos th al incrementar la fila en 1 como lo hacemos, la primera fila será 4 5 y 6. Eso es todo lo que tenemos que hacer y, por supuesto, necesitamos asignarle una macro correctamente y esta será otra macro llamada selección de receta cuando selecciono esa receta quiero cargar esa receta que vamos a repasar muy pronto quiero una macro porque cuando selecciono esa receta quiero que se cargue esa receta así que hacemos exactamente eso con este gran todo Bien, busque y filtre recetas, podemos hacer eso ahora, así que quiero mostrarles que mientras bajamos, ¿cómo lo hacemos bien? Básicamente, eso será un evento de cambio si quiero buscar una receta por ingrediente o por nombre de la receta, entonces quiero que el resultado venga aquí, así que si quiero buscar carne de res, quiero saber todas las recetas que tienen carne de res dentro de la receta, por lo que se basará en un aviso de evento de cambio de que tenemos todas las recetas que surgieron incluso albóndigas cremosas, eso no es parte del nombre, pero notarás dentro de los ingredientes que hacemos tengo algo llamado carne de res, que aquí se llama caldo de res, así que esa es una receta que usa caldo de res, así que la carne de res es una de las recetas, entonces, ¿cómo lo hacemos bien? Eso se basa en un aviso de evento de cambio e2 es el evento de cambio, así que cuando hacemos un cambio en e2, queremos que suceda algo, pero también tenemos otro, ¿qué pasa si buscamos por nombre de receta? Si buscamos por nombre de receta, haga doble clic y quiero que las recetas se reinicien en función de eso, así que ahora estamos buscando . por nombre de receta tenga en cuenta que solo tenemos cuatro recetas en las que la carne de res está en el nombre, por lo que tenemos dos tipos diferentes de búsquedas basadas en esta opción aquí buscar por ingrediente o nombre de receta entonces, ¿cómo lo hacemos bien, por supuesto, el lo primero que hacemos es con el evento de cambio en e2, así que entremos en el código y vamos a entrar en las recetas aquí, vamos a echar un vistazo al evento de cambio de la hoja de trabajo de cambio, esto se encontrará aquí hoja de trabajo hoja de trabajo y luego cambie el evento a la derecha s o cuando el usuario realiza un cambio en e2 y e2 no es nada , lo que queremos hacer es ejecutar una macro llamada filtro de búsqueda de recetas filtro de búsqueda de recetas cuando vaya a la definición que nos llevará a la hoja de macros llamada receta filtro de búsqueda , entonces, ¿cómo lo hacemos bien? Lo primero que hacemos cuando tenemos una nueva búsqueda, necesitamos eliminar todos los resultados existentes, así que necesito eliminar todas esas formas tal como lo hicimos antes de ejecutar un bucle en cualquier forma que contenga la palabra nombre de la receta que queremos eliminar eliminando esas formas está bien , así que vamos a ejecutar ese bucle que eliminará todas esas recetas eliminará todas estas aquí, cada una de ellas se eliminará con ese poquito del código una vez que tengamos eso, lo que debo hacer es determinar si se basa en el nombre de la receta o se basa en el ingrediente porque van a ser dos, estamos ejecutando una base que vamos a ejecutar ese filtro avanzado basado en esta base de datos aquí la base de datos de recetas mire aquí el otro, vamos a ejecutar la macro y el filtro según la base de datos de ingredientes, por lo que usarán dos bases de datos diferentes, así que necesito especificar cuál si la receta d2 es igual al nombre de la receta, entonces nosotros va a ser el nombre de la receta en el que vamos a ejecutar ese filtro avanzado basado en nuestra base de datos de recetas, correcto, se basa en el nombre de esta receta, quiero buscar en este nombre para ver si esas palabras clave se encuentran usando filtros avanzados, así que estamos va a estar ejecutando algo como esto, así que básicamente contiene la palabra carne de vaca, así que para hacer eso, lo que necesito hacer es agregar un asterisco antes y después , así que todo lo que necesito hacer es usar una fórmula para eso y está aquí igual a asterisco y recetas e2 y asterisco está bien, entonces lo que va a hacer, independientemente de lo que el usuario ingrese, agregará un asterisco, lo que significa que cualquier nombre de receta que contenga dónde se encuentra la carne dentro de ese nombre de receta quiero devolver esos resultados y quiero ponerlos aquí sin embargo si yo Es un ingrediente, lo que quiero hacer es lo mismo aquí, el mismo código, pero esta vez lo que quiero hacer es saber cualquier receta en la que se haya encontrado correctamente el ingrediente, así que si se ha encontrado, quiero saber los resultados de así que quiero que esos resultados vengan aquí el nombre de la receta, quiero esos identificadores de recetas y quiero bajar los nombres de recetas de cualquier receta allí, entonces, ¿cómo lo hacemos bien? Repasaré cada uno contigo dentro del código lo primero es que nos centraremos en el nombre de la receta y esa será esta base de datos aquí, así que nuevamente todo lo que tenemos que hacer es obtener la última fila y ejecutar un filtro avanzado, así que haremos exactamente eso última fila basada en la base de datos de recetas, la última fila estará con ellos si son menos de tres, luego salga del sub, así que pasó lo mismo, estamos ejecutando un filtro avanzado , pero esta vez el criterio de filtro avanzado será basado en q2 a q3 q2 a q3 entonces vamos a copiar eso de nuevo como lo hicimos antes mineral s2 a t2 y vamos a obtener esos resultados. Voy a determinar la última fila de resultados en función de la columna s y luego, si el problema es inferior a 3, queremos alertar al usuario de que no se encontraron resultados correctos. así que, en caso de que eso suceda , infórmele al usuario que no se encontraron resultados y salga del sub porque no hay nada que signifique que no hay resultados aquí, son menos de tres, infórmele al usuario suponiendo que tenemos resultados nuevamente, haremos exactamente lo mismo. vamos a configurar nuestra fila de receta inicial vamos a ejecutar nuestro bucle para los resultados 3 a la última fila de resultados vamos a duplicar eso tal como lo hicimos antes le estamos asignando un nombre que vamos a asigne esa fila de resultados quiero saber esa fila de resultados esta vez quiero frotar la fila de resultados porque cuando quiero buscarla necesito saber esa fila de resultados muy, muy importante, así que tenemos esa fila de resultados aquí nuevamente va a hacer lo mismo asignando en las mismas posiciones configurándolo en el mismo ancho de columna configurando el texto esta vez el texto se basará nuevamente en lo que hay en t en la fila de resultados ese texto aquí t en la fila de resultados quiero saber ese texto y el nombre tenga en cuenta el nombre de esa receta de forma y la fila de resultados ese nombre será útil cuando lo carguemos bien y luego quiero asignar una macro llamada seleccionar macro bien, eso es todo, estamos confirmando la fila, así que básicamente haremos lo mismo, simplemente estamos construyendo esta lista de formas en base a esta lista de resultados, está bien, perfecto, pero ¿ y si es eso ? fila de la base de datos esta vez lo que quiero hacer es borrar algunos resultados, así que aquí dentro de los ingredientes quiero borrar cualquier resultado anterior bien desde q3 hasta r y quiero borrar esos resultados ahora lo que quiero hacer se ejecuta un filtro avanzado basado en este criterio aquí, pero tenga en cuenta que no tenemos los nombres de las recetas aquí no tenemos ningún nombre de recetas aquí solo tenemos ingredientes aquí tenemos las identificaciones de las recetas entonces lo que quiero hacer es devolver todas las identificaciones de las recetas donde digamos que está la carne encontrado si se encuentra carne quiero devolver la identificación esos resultados van a venir aquí entonces lo que hago es tener una lista de identificaciones de recetas pero no necesito las identificaciones de recetas lo que realmente necesito es el nombre de la receta ¿cómo podemos Obtenga el nombre de la receta de la identificación de la receta. Bueno, podemos usar rangos con nombre, por lo que si echamos un vistazo dentro del administrador de nombres de fórmulas, tenemos dos rangos con nombre de los que voy a hablar. La identificación de la receta es un rango con nombre dinámico basado en la identificación de la receta. usar el nombre de la receta de la fórmula compensada es muy simple usar el nombre de la receta de la fórmula compensada, así que tengo esos dos rangos dinámicos con nombre, está bien, una vez que los tengo, puedo extraer fácilmente ese nombre usando una fórmula, así que si echamos un vistazo a esta fórmula si hay un error vamos a indexar vamos a indexar ese nombre de receta va a ser b basándome en la coincidencia correcta, necesito saber la fila donde puedo encontrar el nombre de la receta, bueno, vamos a hacer coincidir según la identificación de la receta, qué hay en q3 y luego queremos una coincidencia exacta, vamos a usar 0 y quiero para usar una sola columna y si hay un error, estará vacía, así que todo lo que tengo que hacer es determinar la última fila que necesito para copiar esto, básicamente copiar esta fórmula y traerla hasta aquí, pero podemos hacer una formulación intercambio de fórmulas siempre que nuestra fórmula aquí se base en nuestra primera fila, entonces puedo simplemente decir que la fórmula de estos es igual a la fórmula esto, entonces va a traer eso va a extraer todo y quitar ese nombre una vez que tengo ese nombre, luego puedo ejecutar un bucle tal como lo hicimos antes de ejecutar un bucle, así que si pongo el ingrediente de la receta en este caso y hago doble clic aquí, se ejecutará automáticamente y luego nuestros resultados podemos recorrer esos resultados y hacia abajo así, eso es lo que hacemos dentro del código, por lo que la última fila a ganancia basada en la base de datos de ingredientes esta vez nos enfocamos en esa base de datos de ingredientes vamos a obtener la última fila si son menos de tres huevos del submarino estamos ejecutando un filtro avanzado esta vez a2 a d a2 solo necesito de a a d solo esos ingredientes nada más no necesitamos ir más allá de aquí quiero que los criterios se basen en h2 a h3 aquí h2 a h3 vamos a copiarlo en el rango q2 recuerda que solo soy copiando esas identificaciones, los nombres provendrán de la fórmula , por lo que solo traeremos esos resultados a q2 y vamos a determinar la última fila, así que una vez que introdujimos nuestros resultados en q2, esas son las identificaciones que solo obtendremos la última fila si es menos de 3, luego informe al usuario que no se encontraron resultados y salga del sub si no es menos de 3 , entonces necesito traer esa fórmula usando la columna r nuevamente r3 a r en el último punto de la fila de resultados la fórmula es igual a la fórmula r1, puedo hacer eso con una sola línea de código, traer la fórmula de la receta como o se propone copiar y pegar o algo así, así que esto es un poco más fácil y luego el resto es exactamente igual vamos a configurar nuestra fila inicial vamos a ejecutar nuestro ciclo vamos a duplicar esa muestra forma, vamos a trabajar con ella configurando la posición izquierda, la posición superior, el ancho y configurando el nombre, esta vez el nombre se basará en el recuerdo, debemos llamar a esa hoja nuevamente porque estamos dentro de otro ancho , lo que sea en r en la fila de resultados, asegurándose de que esa fila de resultados ahora tenga esto en cuenta , no debemos entender que si estamos en una búsqueda correcta, si necesito saber si hago clic en ser lo suficientemente fuerte, necesito saber, tenga en cuenta que esta fila de resultados es tres correcta, por lo que necesitamos saber que se basa en los ingredientes y la carne de este resultado de búsqueda, por lo que se basa en el resultado de búsqueda, por lo que necesito saber qué fila de resultados porque voy a necesitar básicamente extraer esa identificación que es esa identificación va a venir de q, así que tenlo en cuenta si conozco la fila tres, lo sé w la q y cualquier fila que id va a ser útil porque necesitamos cargar esa receta basada en esa id muy bien así que hemos pasado por eso entendemos cómo funciona el filtro y eso es todo lo que tenemos que hacer simplemente eso así que todo es igual, solo vamos a incrementar el lanzamiento y eso creará automáticamente menús y filtrará nuestras recetas en función de los ingredientes o de los nombres de las recetas, está bien, hasta ahora hemos visto cómo crear esas categorías, cómo asignar las macros. cómo hacer una receta , pero ahora lo que quiero hacer es mostrarles exactamente cómo vamos a cargar esas recetas con solo un clic para que las cubramos ahora y, por supuesto, esa es la macro que ahora se ha asignado . a esto, esta receta, seleccione esa es la macro que vamos a repasar ahora cuando seleccionemos eso, así que cuando seleccionamos una receta, ¿qué queremos que suceda? Bueno, lo primero antes de que carguemos esa receta, lo que tengo que hacer es i necesita determinar qué se seleccionó y qué filas basado en la búsqueda derecha, necesito saber nuevamente, necesito extraer este cuatro por qué es tan importante o necesito extraer este cinco por qué es tan importante porque es ese cuatro o ese cinco eso nos permitirá saber qué se seleccionó ese 4 o que 5 va a venir de aquí en este caso 4 en este caso 5 o va a venir de aquí en este caso 4 o 5 y realmente depende de qué tipo de filtro hayamos configurado, por ejemplo si los ingredientes dice ingrediente y esto tiene un ingrediente específico en la lista, no está en blanco, entonces sé que hemos buscado por ingrediente; sin embargo, si buscamos por categoría o como hacer clic aquí o si hemos buscado por nombre de receta aquí, cualquiera de ellos se basará en esta lista, que es nuestra base de datos de recetas, no nuestra base de datos de ingredientes, está bien, entonces necesitamos diferenciar entre esos dos para hacer eso, solo verificamos aquí, así que primero obtenemos la fila de resultados, necesito extraer esa fila de resultados, esa fila de resultados va venir aquí 3 o en este ca se 4 aquí, así que todo lo que tengo que hacer es eliminar el texto de la receta y m, para hacerlo, simplemente lo hacemos aquí, así que reemplace según la columna de la aplicación, el nombre de la forma que lo llamó tomando la receta nm y reemplazándola con nada que vaya a extraiga la fila de resultados una vez que esté allí de nuevo, lo que quiero hacer es colorear esa forma, ¿cómo sé qué forma se ha coloreado? Ahora tengo el nombre, así que lo que voy a hacer es voy a tomar todos los otros nombres de recetas y voy a colorearlos con ese color de transparencia. Probablemente podría hacer estas dos filas, ya sabes, para que sea más grande, así que lo que quiero hacer es que tal vez puedas hacerlo un poco. un poco más amplio aquí, pero está bien para nuestros propósitos, así que lo que quiero hacer es colorear todos los nombres existentes de forma transparente, básicamente ese 50 transparente, luego quiero determinar cuál se seleccionó y colorear ese blanco para saber cuál seleccionó. el primer paso que queremos hacer es colorearlos todos con un 50 por ciento de transparencia así que hacemos eso con un bucle para cada forma de receta en las formas correctas para cualquier cosa que contenga la palabra nombre de receta , entonces quiero llenar la transparencia de ese 50 dando esa transparencia de 50, entonces lo que quiero hacer es volver a colorear el uno que hemos seleccionado el nombre de la receta y la fila de resultados, esa es la que llamamos, también podríamos usar el collar de aplicación con esto, que también sería suficiente, la transparencia del punto de relleno es igual a cero, dándole ese color a todo color sin transparencia a todo color y esto es 50. así que ese es el seleccionado, lo llamaremos la receta seleccionada tan genial que tenemos que ahora lo que quiero hacer es determinar qué tipo de búsqueda se estableció si d2 es igual a ingrediente y e2 no es igual a vacío entonces lo sé se realizó una búsqueda de ingredientes, entonces lo que quiero hacer es configurar b2 b2 es muy importante b2 tomará esa identificación de receta muy importante una vez que coloque b esa identificación de receta, pero ¿cómo sé de dónde proviene esa identificación de receta? va a venir Estoy aquí basado en una base de datos de recetas o vendrá de nuestro ingrediente aquí, pero necesitamos saber usar esa declaración if aquí mismo si es un ingrediente y hay un ingrediente , entonces necesitamos venir de la fila de ingredientes, entonces la identificación de receta b2 es va a contener la base de datos de ingredientes de recetas , la que estamos viendo arriba y q y la fila de resultados, recuerde que la fila de resultados viene de aquí, ya la hemos extraído correctamente, sin embargo, si es una búsqueda de recetas, si se basa en si he seleccionado aquí un pollo o si lo hemos basado en aquí pollo en cualquiera de esos casos, esos resultados vendrán directamente de la base de datos de recetas aquí, así que en este caso será s y la fila de resultados s y el fila de resultados, entonces ese caso b 2 será igual a la base de datos de recetas y el resultado que se establecerá, por lo que cualquiera de ellos configurará la identificación de la receta una vez que haya colocado esa identificación de la receta directamente aquí . para devolver el re resultado la fila la fila de la receta y esa fila de la receta se basará en una fórmula y la fórmula será básicamente estamos haciendo coincidir lo que sea que esté en b2 vamos a obtener la identificación de la receta y queremos una coincidencia exacta y quiero agregar tres, ¿por qué es porque esa receta, esa base de datos de recetas comienza en la fila cuatro, por lo que si devuelve uno que significa el primer valor que quiero, quiero la fila, así que vamos a extraer eso significa que es la fila, por lo que la identificación de la receta 1 es va a estar en la fila 4, así que eso es exactamente lo que quiero, así que para la receta id 1 va a estar en la fila 4. es ese 4 lo que quiero porque luego vamos a ejecutar la macro que en realidad va a cargar eso receta y ese paréntesis aquí, así que cuando hago clic en la definición, cambiará a nuestras macros de receta aquí dentro de nuestro módulo llamado macro de receta y en el que nos vamos a centrar ahora se llama carga de receta, que es la macro que se ejecutará que básicamente con esa macro todo lo que necesito hacer es traer toda esta información aquí brin guárdelo directamente dentro de la información de este encabezado aquí, está bien, para hacer eso, vamos a usar el mapeo de datos ahora si no ha visto esto antes , básicamente, lo que quiero hacer es mapear el pollo con mantequilla es un nombre de receta que quiero para mapear eso a k3 note que esto es k3 quiero mapear esa categoría en este caso 03 a o3 y eso hace que sea mucho más rápido de cargar, así que todo lo que tenemos que hacer es ejecutar un bucle, ya tenemos nuestra identificación, ya está en b2, por lo que no necesitamos comenzar nuestro ciclo, comenzará en la columna dos y llegará hasta la 12. lo que vamos a hacer es básicamente tomar toda esta información , tenemos nuestra fila filas ubicadas aquí dentro de b3 tenemos esa fila y vamos a cargar todo de acuerdo con eso así que esto es lo que van a hacer las imágenes en b7 b8 b9 y b10 observen que las imágenes están entrando b7 b8 b9 y b10 está bien, entonces vamos a traerlos a todos aquellos que están fuera de la pantalla, las columnas a y b, por supuesto, estarán ocultas, está bien, así que vamos ng para traer eso allí y también tenemos eso, así que todo lo que necesitamos es esa fila que es importante, vamos a ejecutar un ciclo y luego traer toda esa información, luego la segunda parte, la segunda parte vamos a cargue esos ingredientes, luego la tercera parte es que vamos a cargar todos esos pasos junto con las imágenes asociadas con esos pasos para que podamos hacerlo en solo tres partes , así que echemos un vistazo a la receta cargar lo primero que quiero lo que tengo que hacer es borrar cualquier calificación de estrellas, por qué no borrar todo lo demás si hay algunas calificaciones aquí, vamos a repasar cómo lo hicimos en un momento, pero quiero asegurarme de que estamos borrando todo esos fuera entonces, ¿cómo lo hacemos bien? Estas calificaciones tienen una forma. Aviso. Hay un nombre que se llama calificación de tres estrellas. Esta de aquí se llama. Esa es una calificación de cinco estrellas. Básicamente, todas son esencialmente iguales aquí, pero excepto por el número que está procediendo calificación de cinco estrellas así que cualquier cosa bien quiero borrar todo lo que dice calificación de estrellas que quiero borrar, así que al hacerlo aquí, si la cadena en ejecución ejecuta un bucle con todas las formas dentro de la hoja una vez más, pero esta vez nos centraremos en cualquier cosa que contenga calificación de estrellas si es mayor que cero en este en caso de que no lo eliminemos, tenga en cuenta que no quiero eliminarlo, solo quiero reutilizarlos una y otra vez, así que todo lo que quiero hacer es hacerlos invisibles, quiero ocultarlos usando el punto visible igual a mso false una vez que haya hecho eso, lo que quiero hacer es borrar todos los campos asociados antes de cargar la nueva receta , así que vamos a cargar todos, borrar todos estos campos y eso incluye b5 correcto b5 es ubicó nuestra imagen seleccionada y hará un seguimiento de la imagen en la que estamos ubicados hará un seguimiento, por supuesto, de todas las imágenes. Quiero borrar todos los ingredientes y todos los pasos y todo eso, así que vamos. para borrar un montón de campos aquí, está bien, lo siguiente que quiero hacer es quiero hacer su re, si b3 está vacío, b3 es crítico, necesitamos tener esa fila de recetas, si está vacía por algún motivo, debemos informar al usuario para que seleccione una receta adecuada específica, en ese caso, si b3 está vacío, seleccione una pantalla de receta correcta y salga de la sub está bien, así que una vez que tengamos eso, suponiendo que lo tengamos, lo pondremos en una variable llamada receta fila rec fila y luego, nuevamente, todo lo que quiero hacer es cargar todo lo demás y podemos hacerlo a través de un ciclo porque tenemos un mapeo de datos para la columna de recetas que es igual a 2 a 12. así que básicamente todo lo que va a hacer es ir desde la columna 2 en nuestro lado de nuestra base de datos de recetas hasta 12, que es esta columna l y luego traer cualquier cosa en eso fila en las celdas asociadas para que podamos hacer eso con solo esta línea de código base de datos de recetas de rango de puntos celdas derecha fila una columna de receta este es el rango este aquí es el rango que es b8 b9 b10 lo que sea dentro que vamos a colocar lo que sea que se encuentre en la base de datos de recetas la receta r ahora la llamada de la receta, voy a cargar los datos de la receta y solo ejecutaré esas tres líneas de código para cargar todos esos datos, está bien, ahora lo que quiero hacer es establecer esa calificación de estrellas si nota aquí esa calificación de cinco estrellas cuatro tres dos uno bueno, esos son números, ¿cómo convertimos esos números a esta forma correcta? Entonces, digamos que restablezco eso a una calificación de tres estrellas y lo guardo cuando recargo esa receta de guardado de pollo con mantequilla, aunque se ve muy bien . No me imagino que es un tres estrellas y vayamos a otra receta y luego volvamos al pollo con mantequilla, quiero asegurarme de que ese tres estrellas se guardó y se muestra, así que lo que quiero hacer es convertir eso ahora recuerda si miramos en nuestras formas aquí y echamos un vistazo dentro de nuestras formas aquí tenemos varios vamos a encontrarlo primero aquí seleccionando eso y podemos ver cuál está seleccionado así que tengo una calificación de estrellas dos calificación de estrellas tengo una calificación de tres estrellas una calificación de cuatro estrellas una r de cinco estrellas y, por supuesto, una calificación de una estrella, así que aquí tengo todos esos en formas individuales, todos están ocultos, excepto el que quiero, lo que básicamente quiero hacer es mostrar la calificación asociada con ese número, así que si tienen una calificación de dos o tres estrellas, lo quiero como si el pollo con mantequilla tuviera una calificación de tres estrellas, quiero mostrar esa calificación de tres estrellas y quiero mostrarla, entonces, ¿cómo vamos a convertirla? que con esto sabemos bien si echamos un vistazo dentro de b6 echemos un vistazo dentro de una base de datos de recetas si vemos que irá directamente a b6 entonces vamos a echar un vistazo dentro de b6 y vemos que b6 es un 3. Ahora, si sé que quiero mostrar todo lo que se ha ocultado, recuerde que ocultamos todas las clasificaciones de estrellas. Lo ocultamos dentro de nuestro código. bueno, todo lo que tengo que hacer es combinar estos tres con la calificación de estrellas del texto y sé cuál mostrar, así que si b6 v el valor no es igual a vacío y para asegurarse de que sea un número, b6 es verdadero, lo que significa que es un número y no está vacío , luego da forma a b6; hacer que eso sea visible es igual a verdadero eso lo hará visible, está bien , también les mostraré cómo hicimos esta lista desplegable realmente genial, espero que no lo olvide y no lo haré, así que eso es todo lo que necesitamos hacer es simplemente mostrar esa calificación de estrellas basada en el número correcto, así que si esto cambia a cinco o lo que sea, si cambio eso a cinco correcto y lo guardo aquí guardando nuestro trabajo y lo cargo nuevamente, son esos cinco los que van a ser reemplazados y ahora estamos mostrando esa calificación de cinco estrellas, que probablemente sea una buena receta, así que ahora lo que quiero hacer es que estamos listos para seguir la imagen, así que hemos hecho todo, hemos cargado toda la información, hemos establecido nuestra estrella calificación, pero ahora lo que quiero hacer es configurar esta imagen, ¿cómo configuramos esta imagen? En primer lugar, esto es basado en un marco, todo lo que tengo aquí es un marco simple, correcto, esto es solo un cuadro cuadrado simple, todo lo que es es solo una forma cuadrada simple, nada más que eso y lo tomé, le di un borde marrón y nosotros voy a llenarlo con una imagen, está bien, así que en este caso le he dado un nombre a este cuadro en particular se llama marco de selección, así que lo que quiero hacer es ver si tenemos una imagen aquí si la tenemos entonces quiero tomar esa foto quiero combinar esa foto con nuestra carpeta de fotos de recetas aquí para que nuestra carpeta se combine con el nombre de la foto y luego lo que quiero hacer es combinarla y luego quiero llenar ese cuadrado llenando ese cuadrado rectángulo en este caso con esa imagen, así es como lo haremos aquí adentro, así que configure la imagen 1 o la imagen predeterminada, pero si no está allí, si no tenemos una, debemos tener una imagen predeterminada. Tengo una imagen predeterminada aquí cuando la borro correctamente, así que quiero asegurarme de que si no hay una imagen aquí, quiero ver ajústelo a la imagen predeterminada, de modo que si no guardé ese cambio, se cargará automáticamente si guardara ese cambio, habría borrado esa imagen, por lo que si el valor b7 es igual a vacío, no hay una primera imagen correcta nuestra primera imagen va a ir a b7 justo aquí, recuerde que b7 es ese campo que se ha asignado automáticamente a esa primera imagen en la columna i, por lo que si no hay una imagen, queremos cargar esa imagen predeterminada, ¿dónde está ubicada esa imagen predeterminada? Está ubicada aquí mismo en el administrador dentro de c6, esa es nuestra imagen predeterminada, así que lo que vamos a hacer es determinar si b7 está vacío, entonces quiero llenar este cuadro con la imagen predeterminada; de lo contrario, quiero cargar esa imagen para que b7 sea igual a vacío, luego el nombre del archivo de imagen es igual a admin c6, esa es nuestra configuración de imagen predeterminada, esa imagen predeterminada, de lo contrario, tenemos una imagen, el nombre del archivo de imagen se basa en el administrador c4, por supuesto, esa es nuestra carpeta predeterminada para nuestras imágenes ubicada aquí en c4, nuestra receta predeterminada p En la imagen, combinamos eso con lo que se encuentra en el lado b7 junto con la barra invertida y tenemos nuestra primera imagen, este es el nombre completo del archivo , entonces lo que quiero hacer es establecer b5 en uno ahora porque voy a tener varios. imágenes aquí que soy un bucle necesito hacer un seguimiento de qué imagen en mod b5 nos ayudará con ese b5 si echamos un vistazo en b5 vemos si selecciono el aviso anterior que b5 cambia a medida que recorro estas imágenes eche un vistazo a b5, está cambiando a la derecha, por lo que b5 hará un seguimiento de la imagen en la que estamos, entonces ahora vamos a configurar eso inicialmente en 1, configure la imagen seleccionada en 1. mientras ejecutamos la macro que i' Te mostraré en un momento como un bucle, básicamente, un bucle a través de esas imágenes o como parece que es solo una simple presentación de diapositivas . hacer todo lo que estamos haciendo con eso es básicamente establecer esta variable de cadena en cualquier imagen que queramos mostrar ahora Es fácil , podemos mostrarlo con una línea de código, pero quiero que se asegure de que sea un nombre de archivo preciso, por lo que si hay algún problema, aparecería aquí si el nombre del archivo de la imagen del directorio no es igual a vacío, entonces podemos cargarlo. entonces sabemos que es una imagen precisa da forma al marco de imagen ese marco que le mostré llenando ese marco de imagen con la imagen de usuario en función de ese nombre de archivo ahora un nombre de archivo de imagen es el predeterminado o la imagen existente eso es todo eso es todo tenemos que hacer a continuación, tenemos una macro específica que cargará los ingredientes y otra macro que cargará los pasos, así que repasemos esas macros ahora mismo, así que echemos un vistazo a esa primera macro cargando los ingredientes que es una macro aquí lo primero que quiero hacer es asegurarme de que estamos borrando todos los ingredientes ahora nos damos cuenta cuando seleccionamos una fila tenemos formato condicional que estará en b1 b1 tomará nuestro seleccionado fila de ingredientes así que quiero asegurarme de que lo eliminemos. También quiero eliminar los ingredientes existentes que podrían estar allí, aunque no deberían, así que los eliminaremos, pero son importantes porque vamos a ejecutar esto. macro cuando eliminamos un ingrediente, vamos a actualizar esta macro nuevamente, así que no todo, así que quiero borrar de nuevo quiero borrar todo, desde g12 hasta arriba y hacia abajo y también quiero saber la base de datos en lugar de que haya una fila de la base de datos que va a realizar un seguimiento ahora que las filas de la base de datos van hasta aquí en la columna y esa es la fila de ingredientes que es la fila de la base de datos tenga en cuenta que tenemos ingredientes que es la fila de la base de datos si es 3 4 5 correcto Tengo que realizar un seguimiento de eso también porque si hacemos cambios en esa fila , tengo que actualizarla, así que para hacer eso necesitamos realizar un seguimiento, pero podemos realizar un seguimiento fuera de la pantalla aquí, por lo que debemos declarar también la columna y, así que hacemos eso. a través de esto aquí, así que lo primero que queremos hacer es cargar ingr Los componentes b1 se borran de la fila de selección g12 a i-99, todos los ingredientes y la fila de nuestra base de datos ubicada en la columna y, por lo que estamos borrando todos los ingredientes existentes y los datos asociados, así que ahora nos enfocaremos principalmente en la mayor parte en la base de datos de ingredientes nuevamente necesito ejecutar ese filtro avanzado y necesito basarlo directamente en esta receta necesito saber todos los ingredientes para esa receta para hacer eso necesitamos saber qué hay en b2 así que dentro de nuestros ingredientes aquí tenemos un criterio ubicado en i3 y que está vinculado directamente a b2 en la receta, por lo que siempre tenemos nuestros criterios configurados, por lo que todo lo que tenemos que hacer es llegar a la última fila, ejecutar un filtro avanzado solo basado en aquí i2 e i3 que tienen esos los resultados llegan aquí, por lo que esos resultados vendrán directamente dentro de k, por lo que lo haremos dentro de un filtro avanzado, por lo que si la última fila es menor que 3, saldremos y ejecutaremos nuestro filtro avanzado. filtrar a2 a través de la columna f vamos a tener el criterio nuevamente entre i2 e i3 y esos resultados que vienen de k2 a o2 y es igual a verdadero, entonces vamos a determinar la última fila de resultados, necesitamos saber la última fila, en este caso es 19, pero necesito asegurarme de que tenemos eso y eso se basará en la columna m y esa será nuestra fila m o porque puede que no haya ecuación, quiero asegurarme de que tenemos esa fila de ingredientes, por lo que nuestra última fila de resultados si es menor que 3 eso significa no tenemos ingredientes, vamos a omitir todo esto e ir directamente aquí, suponiendo que sí tenemos quiero ejecutar un ciclo, vamos a ejecutar ese ciclo aquí si tenemos ingredientes, por lo que la fila de resultados es igual a 3 para el último resultado, básicamente estamos ejecutando un ciclo. Voy a colocar esta información dentro de nuestra fila y también debemos establecer nuestra fila inicial aquí, así que queremos asegurarnos, pero ¿cuál es esa fila? ¿Dónde la vamos a colocar? lo coloco en la fila 12 fila 13 esta es nuestra fila de ingredientes esta es la fila asociada aquí 12 13 14. Así que necesito saber en qué fila colocarlo, así que lo que haremos es obtener esa fila de ingredientes directamente desde aquí dentro de la columna n y poner eso en una variable una vez que lo sepa fila puedo colocar esta información aquí y también coloco la fila en la columna y para que esto entre en la receta esto va en la columna y pero estoy extrayendo esa fila de ingredientes de la columna n así que eso es lo que hacemos aquí la fila de ingredientes es igual a n en la fila de resultados, esto se llama la fila de ingredientes de la fila de ingredientes, por lo que una vez que tengamos eso en las recetas , podemos colocarlo de modo que las recetas de g a i sean iguales a k a m aquí de g a i es igual a k a m llevándolo a lo último solo necesito poner esa fila y eso irá directamente en y eso irá aquí bien, así que lo traemos solo con esa segunda línea aquí para que las recetas y en la fila de ingredientes sean iguales a lo que esté en o en la fila de la base de datos eso será todo eso es todo lo que tenemos que hacer para traer nuestros ingredientes eso es Ahora, ¿qué pasa con los pasos? Los pasos también son geniales, pero estoy usando formas en el paso y la razón por la que estoy usando formas es porque quiero que la imagen se muestre exactamente bien si tengo una imagen asociada con el paso . así que decidí usar formas en lugar de celdas, también le da un aspecto agradable y puedo hacer eso, así que lo que estoy haciendo en lugar de podría haber hecho una forma dinámica donde la forma podría crecer o encogerse como el texto pero lo que quiero hacer es poner una imagen y quería tener esa imagen exactamente, así que lo que hice fue que decidí tener una altura fija para nuestras formas de esa manera, la imagen asociada con eso también tiene una línea fija. se ve bien, está bien, así que debería cubrirlo, puede aumentar o disminuir su altura como mejor le parezca según el texto dentro de sus pasos, pero básicamente estos son todos los pasos necesarios para crear esa receta , así que los puse en una forma y al igual que con nuestras otras formas, también he hecho lo mismo, he creado una s forma amplia para que pueda ver la repetición haciéndolo una y otra y otra vez y puede crearlos muy rápidamente, así que paso a paso la forma creé esta aplicación en aproximadamente dos días, así que paso el texto de ejemplo aquí está nuestro texto aquí ese es el paso que va a estar aquí, entonces tenemos nuestro número que se llama número de muestra de paso, por lo que son estos los que vamos a duplicar para cada paso asociado, así que nuevamente, lo que debo hacer es determinar todos los pasos que están asociados con esto con esta receta en particular, así que para hacer eso nuevamente, lo estamos ejecutando en un filtro avanzado, esta es nuestra base de datos de pasos, nuevamente, nuestro criterio se basa directamente en la identificación del recibo ubicada en b2, vamos a ejecutar ese filtro avanzado entonces nuevamente necesito hacer eso, pero necesito hacer un paso adicional correcto en este caso, lo que quiero hacer es asegurarme de que no lo necesitemos tan largo o columna y así podemos reducir el ancho de columna aquí un un poco no lo necesitamos en 242. Creo que 50 es suficiente iciente aquí, está bien, entonces lo que queremos hacer es asegurarnos de que estén ordenados de acuerdo con el número de paso ascendente a la derecha porque si agregamos un paso o cambiamos un paso a la derecha, es posible que no queramos agregarlos en forma porque necesito asegurarme de que estén ordenados en consecuencia, paso uno a paso, luego voy a recorrerlos comenzando aquí y aquí creando formas para cada uno de los que crean esa forma de número colocando ese número creando esa forma que va a almacene nuestras instrucciones, luego agregue la imagen si existe y luego asocie la fila ahora necesito saber la fila y necesito saber la imagen necesito tener esa información aquí pero realmente no quiero ver la fila y yo Realmente no quiero ver el nombre de la imagen, así que lo que he decidido hacer es almacenarlos y los guardaré aquí mismo. Tenga en cuenta que cada una de estas formas interfiere , pero si las movemos un poco. un poco aquí podemos ver que hemos almacenado esos informes individuales ción aquí, así que el pollo con mantequilla aquí, así que cada una de estas filas corresponde, esta es la imagen si vemos que esta es la imagen asociada con el paso, esta es la base de datos asociada y me estoy saltando mira, me estoy saltando cuatro cuatro filas aquí y Así que cada cuarta fila voy a agregar otra que brinde suficiente espacio y lo que quiero hacer es cuando lo selecciono , quiero saber que quiero poder cargar en ese paso para poder hacer cambios. entonces, si hago clic con el botón derecho aquí, haga clic con el botón derecho sobre la forma y veo que se llama texto del paso de receta 15 15. Observe que 15 está asociado con esta fila nuevamente, así que si extraigo esta se llama receta 19. Entonces, si elimino cuando el seleccione la forma si elimino esto me va a dejar con 19. si sé que es 19, entonces conozco la imagen y conozco la fila de la base de datos y puedo cargar toda la información aquí, está bien, así que cuando cargamos los pasos todo i Lo que quiero hacer es básicamente comenzar con 15 omitir el paso 4 y cargar cada una de las imágenes en la fila de la base de datos y luego cargar el texto , así que necesitamos toda esa información nuevamente, necesito el número, necesito el texto, necesito la imagen y necesito la fila de la base de datos, todo lo que viene de aquí, el paso, las instrucciones, la imagen y la fila de la base de datos, así que eso es lo que vamos a hacer a medida que recorremos los pasos tal como lo hicimos antes cuando creamos nuevos pasos. Quiero asegurarme de que se hayan eliminado los pasos preexistentes, por lo que si echamos un vistazo a estos, esto se llama re el texto del paso de recibo aquí esto se llama imagen del paso de recibo esto se llama número de paso de recibo, así que observe que todos comienzan con el paso de recibo disculpe paso de receta paso rec así que cada uno de esos entonces si las tres cosas tienen lo mismo en común si yo quiero eliminar todo lo asociado con cada forma que está asociada con un paso de la receta. Puedo usar esos primeros caracteres para eliminarlos todos y luego podemos hacerlo o podemos hacerlo individualmente como lo he hecho aquí. Podríamos hacer fácilmente el paso de la receta en un solo línea pero Quería hacerlo en caso de que los habilitemos, pero podría hacer uno solo con los pasos de la receta, pero aquí se elimina el número de la receta si borra el texto de la receta o la imagen del paso de la receta. línea, pero es posible que tenga otras que llamen así, así que quería asegurarme de ser muy específico aquí en el aire. El próximo resumen es importante en caso de que haya un problema con una de esas formas . crea un error, pero esto lo soluciona por nosotros, así que básicamente estamos eliminando todas las formas, todos esos números, todos esos textos, todas esas imágenes asociadas antes de agregar las nuevas y luego lo que quiero hacer es borrar cualquier seleccionado recetas b11 y b12 cuando selecciono una receta necesitamos almacenar cierta información y eso estará aquí en b11 necesito saber el paso que se cargó observe que hacemos clic en el paso 4 paso 3 y también necesito saber la fila que es asociado, por ejemplo, si hago clic aquí, esto es 19 así que quiero saber 19. y luego, por supuesto, quiero saber el siguiente paso. Entraremos en eso en un momento cuando agreguemos pasos para que entendamos que estamos borrando y borrando cualquier seleccionado. recetas justo cuando las cargo, quiero asegurarme de que estamos borrando toda esta información aquí , así que no necesitamos que b11 a 12 borre esos contenidos, está bien, ahora nos estamos enfocando principalmente en la base de datos de pasos de recetas, así que estamos voy a hacer clic en la fila de pasos es el paso inicial, recuerde que necesito saber, ya que agregamos pasos aquí, debemos establecer esa fila inicial, el primer paso estará en la fila 15. El segundo paso estará en 19 y luego de Por supuesto, en 23 y así sucesivamente, estamos dando el paso cuatro, por lo que configuramos esa fila inicial aquí en 15. Ahora vamos a obtener la última fila. Necesito saber la última fila cuando repasamos todos los pasos, por supuesto. Al igual que con cualquier otro filtro avanzado, necesitamos obtener la última fila antes de ejecutar, en este caso es 105. Entonces, mi gran asistente Shane tomó una l ot de esto y tomé estos datos, así que muchas gracias por ocuparse de todos estos datos increíbles, así que tenemos que ejecutar nuestros criterios aquí y, por supuesto , vamos a tener nuestros resultados aquí. entonces podemos hacer eso con un filtro avanzado, pero queremos asegurarnos de que tenemos datos si la última fila es menos de tres, entonces podemos salir del sub , vamos a desactivar la actualización de la pantalla de la aplicación, vamos a poner eso a falso, eso hará que las cosas sean mucho más rápidas siempre que lo establezcamos de nuevo en verdadero antes de que finalice la macro . prepárese para ejecutar nuestro filtro avanzado y vamos a hacer de a2 a e hasta e vamos a establecer ese criterio desde g2 hasta g3 y, por supuesto, ahora queremos que esos resultados lleguen desde i2 hasta l todo el los resultados llegarán hasta i2 hasta l una vez que tengamos esos resultados, necesito determinar la última fila y m asegúrese de que tenemos la última fila para que los últimos resultados se basen en la columna i y luego, si va a tres, eso significa que no tenemos pasos, podemos omitir hasta aquí sin pasos porque no hay datos suponiendo que tenemos datos, luego podemos configurar nuestro bucle correctamente, quiero un bucle sin bucle, pero antes de hacerlo, antes de comenzar, como mencioné, necesitamos ordenar esos datos, quiero asegurarme de que estén en el orden de esos pasos para hacer eso. vamos a configurar con el tipo vamos a borrar cualquier tipo existente vamos a agregar una clave basada en i3 i3 es nuestra primera fila en los datos quiero que ascienda a la derecha del más bajo al más alto y una especie de normal vamos a establecer el rango aquí va a estar basado de nuevo y tenemos que hacerlo de nuevo porque estamos dentro del tipo tenemos que llamar a la hoja llamar a las hojas a veces me olvidaba mucho de hacer eso muchas veces no funcionaría bien porque estamos en la hoja aquí, pero nuevamente estamos dentro de otro ancho, así que nuevamente tenemos que llamar esa hoja y luego en función de los datos i3 a l en la última fila de resultados que se asegurará de que obtengamos el rango y luego apliquemos esa ordenación para ejecutar la ordenación para asegurarnos de que esos pasos estén en el orden correcto una vez que haga eso, estamos listos para ejecutar nuestro ciclo . y la fila de resultados también quiero el texto de instrucción dentro de una variable de cadena de texto llamada instrucción, se ubicará en j y quiero poner esa imagen, recuerde el nombre del archivo de imagen, ¿dónde irá eso dentro de las recetas? irá a la columna a y k irá en función de lo que sea que recuerde que hemos establecido esa fila aquí arriba, donde estará esa fila, se basará en esa fila de pasos, así que a y las filas de pasos donde se colocará aquí mismo vamos a hacer eso aquí mismo y la fila de pasos eso significa que va a poner esa imagen directamente dentro de a para que la imagen vaya justo aquí, es la primera a15, luego a19 y lo último, también quiero poner esa base de datos y quiero ponerla dentro de b, así que esa es la segunda cosa. vamos a hacer, pero antes de hacerlo, quiero establecer el nombre del archivo de imagen para esos pasos nuevamente. Tenemos nuestra ubicación para las imágenes de nuestros pasos ubicadas aquí dentro de c5, así que quiero combinar c5 junto con la barra invertida aquí c5 junto con la barra invertida junto con la fila de resultados lo que sea que esté en k aquí está nuestra k aquí está nuestra imagen quiero combinar eso bien para que tengamos la ruta completa del archivo para esa imagen de paso y luego tenemos la fila de la base de datos de pasos recuerde que va para venir de li quiero colocar esa fila de la base de datos de pasos en la columna b recuerde que tenemos la imagen en la columna a tenemos la fila de la base de datos de pasos en la columna b ahora lo que estoy listo para hacer es que estoy listo para crear ese paso bien, quiero crear este paso para hacer eso lo que necesitamos lo que debemos hacer es duplicar esta forma aquí llamada texto de ejemplo de paso duplicando eso tal como lo hicimos de las otras formas, así que podemos hacer eso aquí texto de ejemplo de paso duplicando eso y dándole un nombre quiero un nombre específico basado en el paso de recibo texto y la fila de pasos recuerden que quiero esa fila esa fila va a ser 15 19 23 así que eso es 15 aquí 19 23 esos nombres van a aparecer así que eso es oh no esa red esa fila de pasos nombrar esas formas es muy, muy importante porque cuando hacemos clic en ellos, sabemos exactamente cómo se ve la fila de la información, así que ahora lo que vamos a hacer es crear el texto correcto, voy a crear esta forma aquí, quiero establecer el ancho básicamente en todo el camino desde las columnas k hasta pi quiero establecer el ancho de ese mismo ancho de b y eso es todo, entonces quiero establecer la posición superior para que podamos hacer eso desde aquí, la posición izquierda se basará en k y el fila de pasos, la posición superior también será k y más rígida, pero solo voy a ir un poco por debajo de eso, así que voy a agregar 2 a eso para que baje un poco nuevamente , estamos sentados en todo el ancho básicamente desde k hasta p, ese es el ancho total de k en este caso o así debería ser um, veamos p sí p entonces debería ser p solo actualizaré el texto que debería ser p columna p así que estamos listos para eso y luego lo que quiero hacer es configurar el texto correctamente, ¿cuál es el text el texto se basará en esa variable texto de instrucciones ya lo hemos puesto en una variable, por lo que el texto del rango de texto del marco de texto es igual a las instrucciones establecer el texto de instrucciones ahora recordar cuando lo selecciono quiero quiero agregue una macro a la que aún no hemos llegado a esa macro, pero el nombre de esa macro se llama carga por pasos, así que voy a asignar esa macro llamada acción a la carga por pasos, así que agregamos esta forma de texto pero aún no hemos agregado el número y no hemos agregado la imagen, así que vamos a hacerlo ahora mismo, así que vamos a agregar el número de paso de nuevo, tenemos una muestra aquí llamada número de muestra de paso y es ese número el que vamos a duplicar y le vamos a dar un nombre específico, el número de paso de la receta y luego la fila de pasos que tiene uno que no hicimos No asigné No asigné una macro a esto, pero está bien, podría hacerlo, pero yo no lo hice, así que en este caso vamos a configurar eso , nos centraremos en eso con ese número que vamos a coloque la posición izquierda en función de k menos 5 a la derecha, quiero que se mueva un poco hacia la izquierda, no directamente sobre k, y también quiero que la posición superior no sea directamente sino un poco menos que la k en la fila superior, por lo que va a ser -1 configurando esa posición superior y, por supuesto, quiero configurar el número del cuadro de texto que será ese número de paso correcto, así que le dará ese número único excelente, así que hemos agregado el paso que hemos agregado el texto de dirección, por último, todo lo que tenemos que hacer es agregar la imagen, si la hay, así que, en primer lugar, hemos colocado esa imagen correctamente, ya la hemos definido d esa ruta de archivo completa de la imagen aquí en la libra de la imagen, así que ahora todo lo que tenemos que hacer es verificar para asegurarnos de que sea precisa, si lo es, entonces podemos agregarla si no lo es, entonces no lo hacemos, así que primero vamos para verificar si el nombre del archivo de la imagen del directorio no es igual a vacío, entonces sabemos que es una imagen correcta y podemos comenzar con ella . imágenes de la receta. vamos a insertar el nombre del archivo de la imagen . estoy insertando este nombre de archivo de imagen y le estamos dando un nombre específico, se llamará la imagen del paso de la receta y luego la fila una vez que tengamos eso, podemos trabajar con él nuevamente , voy a bloquear en este caso normalmente i bloquear la relación de aspecto verdadera, pero en este caso realmente quiero , los quiero a todos exactamente iguales, quiero que se vean y se sientan bien, así que no quiero bloquear la relación de aspecto en este caso, en este caso, quiero contorsionarlo un poco y así que vamos a asegurarnos de que esto sea falso, ¿verdad? Queremos cambiar la relación de aspecto que voy a establezca la posición izquierda en la columna q derecha en función directamente de la columna q voy a establecer el ancho directamente en función de la columna, el ancho será 70. Podría basar el ancho directamente en la columna q2, eso también está bien, eso funcionaría igual bien, entonces quiero que la posición superior sea q en la parte superior más 2, a la derecha, establecerá esa posición superior justo en la posición superior, ahora lo que hacemos es establecer la altura , quiero que la altura de eso sea exactamente la altura de lo que sea que sea lo que sea que sea el texto del paso de la receta quiero exactamente la misma altura que esa, por lo que el texto de la receta en la altura del paso que establece la altura igual que el cuadro de texto eso es todo lo que tenemos que hacer y luego todo lo que necesitamos lo que hay que hacer es incrementar la fila de pasos va a ser igual a la fila de pasos más 4. Recuerde que estamos comenzando en 15 y nos estamos moviendo a 19 y luego a 23, así que necesitamos incrementar y lo haremos para cada paso adentro para esa receta, luego la actualización de la pantalla de la aplicación y el tubo, eso es todo lo que tiene que hacer para cargar el paso Está bien, muy bien, pasemos al siguiente, les mostré brevemente este control deslizante de imágenes realmente genial para poder rotar entre cuatro imágenes diferentes y vayamos a esa macro ahora y básicamente rotará entre estas cuatro imágenes entre b7 b8 b9 y b10 y, por supuesto, también queremos realizar un seguimiento del número de imagen ubicado en b5, ahora sabemos que si combinamos esta imagen con la carpeta ubicada aquí dentro de c4 en el administrador, podemos obtener una ruta de archivo completa, sabiendo que lo que hacemos Lo que he hecho es que hemos asignado macros. Ahora le he asignado una macro. Si echamos un vistazo, vemos que es la imagen de la receta anterior y la otra es básicamente la siguiente. Comenzará con el siguiente, por lo que es básicamente el que se ha asignado a esta forma derecha aquí, por lo que cuando el usuario haga clic en él, se moverá hacia la derecha, por ejemplo, si están actualmente , estamos en el número de imagen. tres ubicados aquí este número de imagen r tres quiero moverme cuando haga clic aquí una vez quiero moverme a la imagen número cuatro, así que esta es la cuatro y esta es la que se muestra, entonces, ¿cómo vamos a hacerlo bien? Lo hacemos con solo un poco de código no demasiado, en primer lugar, al centrarnos en las recetas, tenemos una variable de cadena llamada carpeta de imágenes de recetas que se encuentra en c4, luego vamos a agregar la barra invertida en la que queremos asegurarnos de que esa es una carpeta correcta que es puede existir en la computadora si no es así, le informaremos al usuario que debe seleccionar una carpeta de imagen de receta correcta dentro de la pantalla de administración, está bien y salgo del sub, entonces quiero saber las imágenes existentes , recuerde en b5 nosotros tengo ese número de imagen, quiero saber en qué está actualmente, por ejemplo , si actualmente está en cuatro, debemos volver a uno, si vamos a seguir, si actualmente está en uno , debemos pasar a tres, así que estamos va a configurar eso en una variable larga llamada número de imagen seleccionada que se ubicará un y esa es la imagen seleccionada, llamemos a ese número de imagen seleccionado y si la imagen seleccionada es cuatro, entonces necesito moverme a una, recuerde que solo tenemos cuatro imágenes, así que si actualmente estamos en la última, necesito volver a la que quiero este bucle es correcto, no quiero detenerme, así que quería continuar, así que si es el último, debemos ir al primero, está bien, eso es todo lo que tenemos que hacer es informar al usuario si son cuatro. necesito volver a otra, el número de la imagen seleccionada será el número de la imagen seleccionada más uno, por ejemplo, si estamos en cuatro, solo necesito moverlo a dos a la derecha para tener eso, así que una vez que tengamos la imagen seleccionada correcta eso será lo que será el siguiente, así que si estamos en uno, irá a 2. Si estamos en 4, irá a 1. Entonces, lo que quiero hacer es establecer la fila de imágenes. qué fila es que ahora esta imagen está en la fila 7. esto está en 8 9 y 10 a la derecha, así que si estoy en la imagen número uno, ¿qué necesito mostrar? splay be what's in b7 así que es b más el número de la imagen más seis así que lo puse dentro de una fila aquí la fila de la imagen será el número de la imagen seleccionada más 6 esa es la fila porque una vez que sepa esa fila puedo extraer eso nombre del archivo de la imagen y podemos construir la ruta completa del archivo para que el nombre de la imagen sea igual a b y lo que sea que esté en la imagen, ese es el nombre de la imagen, luego podemos construir ese nombre de archivo, será la carpeta de imágenes que configuramos en la variable que incluye la barra invertida junto con el nombre de la imagen que establece la ruta completa del archivo a continuación, debemos asegurarnos de que sea precisa, podemos ejecutarlo a través del directorio vb o si el nombre de la imagen está vacío por algún motivo, entonces dejamos el usuario sabe si está vacío o hay algo mal con él lo que me gustaría hacer es mostrar esa imagen predeterminada si estamos en cuatro y hago un cambio escuchemos que la imagen no existe esta imagen el nombre no existe, así que si estoy en cuatro y cambio a uno, no Quiero mostrar algo como la imagen predeterminada. Esta imagen quiero mostrar, así que si hay un problema con eso, quiero mostrar la imagen predeterminada. Entonces, ¿cómo lo hacemos? Sabemos que tenemos esa imagen predeterminada que se encuentra directamente aquí adentro. c6, así que solo tenemos que cargar eso, así que si hay un problema aquí igual a vacío o el nombre de la imagen está vacío, entonces el nombre del archivo de la imagen será la imagen predeterminada ubicada en c6, entonces solo voy a hacer una doble verificación para asegúrese de que incluso la imagen predeterminada sea precisa escribiéndola si está vacía o si el nombre de la imagen está vacío, entonces la imagen no existe dentro de la imagen , simplemente hágale saber al usuario que no tenemos una imagen predeterminada que no tenemos tenemos otra imagen para que no tengamos nada que mostrar, de lo contrario, si es correcta, entonces qué vamos a hacer , de lo contrario, recordaremos que le estamos asignando la imagen predeterminada o le estamos asignando el imagen normal, por lo que cualquiera de los dos está en la misma variable aquí ahora lo que vamos a hacer es mostrar que con el marco de imagen de formas, ese es ese marco, lo llenaremos con la imagen del usuario colocando esa imagen y luego estableceremos b5 en la imagen seleccionada que vamos a configurar b5 para que actualice, recuerde, así que si está actualmente en uno, queremos avanzarlo , lo moveremos a dos, así que haremos clic aquí y lo moveremos a dos, ahora está configurado a dos y nosotros estoy mostrando la segunda imagen, está bien, genial, eso es todo lo que tenemos que hacer para la siguiente imagen, la anterior es casi exactamente igual, vamos a verificar para asegurarnos de que tenemos una carpeta correcta , vamos a seleccionar el número de imagen el único la diferencia está en este, si el actual es uno correcto, si vamos al anterior y estamos en esto, entonces, ¿qué debemos hacer? Necesitamos configurarlo en cuatro, debemos configurarlo en cuatro porque esta vez va anterior, así que volvemos a subir , irá de cuatro a tres dos dos a uno y si está en uno, irá a cuatro, así que vamos a haga exactamente eso dentro del código si el número de imagen seleccionado es igual a uno, entonces lo volveremos a establecer en cuatro; de lo contrario, es el número de imagen seleccionado menos lo que sea actualmente menos un reinicio en la primera imagen o restar uno el resto es mucho el exactamente lo mismo que hemos hecho , estamos revisando la fila de la imagen, lo estamos configurando para obtener el nombre de la imagen donde nos aseguraremos de que esté vacío o vacío, entonces lo que quiero hacer oh aquí está aquí está una nueva línea para esta es un poco importante aquí y luego lo que quiero solo en esta esto es importante si nos estamos moviendo hacia arriba bien si nos estamos moviendo hacia arriba quiero asegurarme de que vamos para volver a subir, por ejemplo, si borramos si borro una imagen, digamos que borramos esta imagen aquí a la derecha y repasaré esa macro ahora, mira, no podemos volver a la derecha, quiero saber la siguiente fila disponible con un valor correcto, no quiero crear un error, entonces, ¿cómo lo hacemos bien? ¿Qué voy a hacer en esto? el caso es que quiero asegurarme de que conocemos la última fila de la imagen si b la imagen es igual a vacío correcto si hay un espacio en blanco aquí, entonces quiero encontrar la siguiente fila disponible con el valor para que la fila de la imagen sea igual a b10 y xlap establecido en el el nombre de la primera imagen quiero saber cuál es el primero disponible, así que el nombre de la imagen será igual a la derecha , el archivo de la imagen profesional es igual a la carpeta y el nombre de la imagen vamos a verificar para asegurarnos de que existe si no vamos a configurarlo en esa imagen predeterminada si esa imagen predeterminada es precisa le informaremos al usuario que de lo contrario vamos a configurar esa imagen de usuario en el nombre del archivo de imagen nuevamente creando ese marco llenándolo con un imagen de usuario, recuerde que no es diferente, no es diferente a simplemente hacer clic con el botón derecho aquí nuevamente, formatear esa imagen, entrar en el relleno y luego elegir un archivo, es exactamente lo mismo, no, no hay diferencia cuando tenemos eso, así que si tuviéramos para hacer eso una foto de descanso claro, es exactamente lo mismo que hacer esto e insertar esa imagen, así que no es diferente a eso, excepto que lo estamos haciendo a través de vba , está bien, podemos hacer lo mismo a través de agregar una imagen, esa es la que voy a repasar contigo a continuación, así que eso es todo lo que tenemos que hacer para nuestra imagen anterior y nuestro próximo accesorio, pero ¿qué sucede si queremos agregar una imagen correcta? ¿Qué sucede si tengo una nueva o quiero reemplazar la imagen? Tal vez no me guste esta. Tal vez la imagen número dos no existe y quiero agregar una imagen, así que si hacemos clic en ella , podemos asignar una imagen como esta y se firmará aunque no querrías un grano de madera, pero entiendes el punto y luego lo que quiero quiero asignarlo a la primera celda disponible, entonces, ¿cómo vamos a hacerlo bien? Eso es agregar una imagen para que vuelva a estar en las recetas y si echamos un vistazo aquí abajo, vayamos aquí, creo que es la parte superior de aquí aquí vamos a guardar y después de guardar, agregue una nueva receta, agregue una imagen aquí mismo, agregue una imagen, está bien, así que con re recetas de nuevo en las que nos enfocamos vamos a asegurarnos de que necesitamos una carpeta para ese derecho si no tengo una carpeta donde vamos a colocar esas imágenes, debemos informar al usuario que por favor seleccione una carpeta para todas las recetas, de acuerdo, necesitamos saber en qué carpeta poner eso, entonces lo que quiero hacer es buscar el primer espacio disponible, el primero disponible, ¿dónde está ese primer espacio disponible, si están todos en blanco? si se trata de agregar un nuevo derecho, están todos en blanco en uno nuevo y queremos agregar una imagen, sabemos que debemos agregarla en el primer derecho disponible, podemos ponerla en cualquier lugar aquí, está bien, pero quiero saber esa primera fila disponible, así que si decido que quiero agregar otra, la tengo agregada, esta será la segunda imagen, en ese caso, quiero ponerla en la fila 2. Así que tengo que buscar la primera disponible fila entre b7 a b10 así que hacemos eso con esta línea de código vamos a establecer el espacio encontrado que estamos buscando vacío estoy buscando f o nada y dónde estamos buscando estamos buscando entre b6 y b10 y estamos buscando valores, por lo que si no se encuentra si no se encuentra nada significa que no se encuentra significa que están bien, debemos informar al usuario si están todos llenos e intentamos agregar una imagen, por ejemplo, en este están todos llenos, hacemos clic en agregar una imagen, se pueden agregar un máximo de cuatro imágenes, borre una receta antes, ¿por qué sucedería eso? eso significa que no hay espacios en blanco entre b7 y b10, ¿cómo sabríamos eso porque si lo encontramos estamos buscando un espacio en este rango, sé que es b6 pero esto funcionará probablemente b7 a b10 b6 se omitirá y será b7 a b10 un máximo de cuatro se pueden agregar imágenes, borre una receta antes de agregar una nueva imagen, está bien, así que la fila de la imagen si la fila de la imagen es la encontrada, suponiendo que se encuentre, vamos a establecer dónde se ha encontrado en la fila de la imagen encontrada, si es aquí, si elimino esto, se encontrará en la fila 9. Así que lo pondremos en el anuncio haciendo esa imagen correctamente, queremos que rellene lo que sea que se encuentre en la primera fila ahora 9 está hecho correctamente, así que vamos a decir que la fila de la imagen será la primera fila en la que se encuentre la fila de puntos de espacio encontrado la primera vacía disponible fila está bien, ahí es donde lo vamos a colocar si por alguna razón la imagen subió seis por si acaso recuerda que dije entre seis y diez, pero en realidad es por alguna razón a las seis, vamos a hacer que sea uno, esto solo corrige cualquier los problemas que podrían ocurrir si la imagen sube seis por casualidad y luego convertirla en siete asegura la fila correcta, por lo que vamos a configurar la carpeta de la imagen de la receta igual a admin c4, esa es la encuesta, estamos agregando la barra invertida, esa es la carpeta a la que va estar ubicado bien necesito saber que carpeta el usuario va a buscarla no sabemos dónde están en su computadora van a buscar pero una vez que la encuentran una vez que sacan esa imagen lo que queremos hacer si queremos hacer una copia de esa imagen ponerla en la carpeta correcta para que esté disponible para la próxima vez para que podamos hacerlo con el cuadro de diálogo del archivo de la aplicación y para hacer eso lo que vamos a hacer es configurar el cuadro de diálogo del archivo de la aplicación de imágenes de recetas ahora esta imagen de reposo variable ya está configurada como un cuadro de diálogo de archivo aquí la imagen de la receta como un cuadro de diálogo de archivo lo mismo con una imagen de paso y lo mismo con el cuadro de diálogo de archivo, así que tenemos todos esos ahí abajo, así que los usaremos en el futuro, está bien, entonces eh continuando aquí con la imagen del anuncio, vamos a configurar esa imagen ahora, le daremos un título, esa ventana emergente, ese es el título que aparece y cuando haces clic aquí, ves esta ventana emergente, oh, tenemos una borre el espacio antes de agregar eso, solo dejemos o podemos borrarlo, todo lo que tenemos que hacer es borrar esa imagen y luego agregar una imagen aquí ahora el título aquí se llama, seleccione una imagen de receta que es el título que está aquí arriba y nosotros quiero asegurarme de notar aquí abajo a la derecha que tiene fotos jpeg png gif queremos especifique qué tipo de imágenes pueden agregar, así que lo hacemos con un filtro y ese filtro se agrega aquí mismo archivos de imagen jpg png gf1 está bien, queremos permitir la selección múltiple no, solo queremos que seleccionen una imagen si cancelan fuera de está bien, no se muestra el punto, será negativo, por lo que si lo cancelan, no es igual a negativo cuando seleccionan algo, será negativo, si no seleccionan nada, no será negativo . entonces debe ir a ninguna selección, lo que significa que no han seleccionado nada, debemos omitir todo lo demás, pero suponiendo que hayan hecho una selección, podemos continuar con lo que quiero hacer es mencionar antes si quiero copiar el archivo de donde sea que esté la ubicación en su computadora en la carpeta correcta, que será la receta, así que hacemos eso con la copia del archivo, vamos a archivar los elementos seleccionados, esta es la ruta completa del archivo de la imagen que han seleccionado y qué quiero hacer quiero colocarlo quiero c cópielo, haga una copia, quiero colocarlo en esta carpeta junto con la barra invertida y el directorio de los elementos seleccionados, lo que significa que solo quiero extraer, no quiero la ruta completa del archivo, no quiero que este sea el ruta de archivo completa solo quiero el nombre de archivo para extraer ese nombre de archivo, podemos envolverlo en dir que será solo el nombre de archivo, así que cuando combino el nombre de archivo y la ruta obtengo la ruta de archivo completa para que este sea el original estamos usando la copia de archivo este es el destino aquí es donde lo copiamos a esto copia la imagen en la carpeta correcta para que podamos encontrarla la próxima vez que queramos mostrarla, entonces todo lo que tenemos que hacer es colocar el nombre de la imagen dentro de b en la imagen y quiero colocar ese nombre actualizado directamente en lo que sea aquí, así que si agregamos una imagen aquí y decidí agregar una imagen, quiero colocarla directamente dentro de esa fila, el nombre de la imagen debe colocarse directamente en b y cualquiera que sea esa fila, eso es lo que hacemos aquí, colocándola directamente dentro, así que una vez está allí, todo lo que debemos hacer nuevamente es simplemente agregar la imagen al marco usando la imagen de usuario de relleno de marco de imagen, solo dijimos antes de la carpeta correcta que no la hemos puesto y el estar en la imagen básicamente el nombre del archivo y la carpeta se combinó correctamente y vamos a configurar esa imagen y luego también debemos actualizar b5 con el número de imagen seleccionado, ese número de imagen seleccionado debe ir con b5. Quiero saber en qué imagen estamos. y luego, por supuesto , vamos a ser simplemente la fila de la imagen menos 6, así que este es el número de la imagen seleccionada que es suficiente, también podemos agregarlo para saber si la fila de la imagen es nueve o lo que sea, así que simplemente voy a restarlo ahora así es como obtenemos el número de la imagen bien genial así que eso es borrar una imagen bien quiero borrar una imagen cómo lo hacemos no necesitaremos nada de esto en realidad así que borrar una imagen es relativamente simple todo lo que tenemos que hacer es localizar ese cle ar la imagen y borrar el nombre para que podamos hacer esa imagen clara que es la macro que se ha asignado a esto, así que básicamente lo que quiero hacer es poner la imagen predeterminada aquí si existe, está bien en lugar de borrar y, por supuesto, necesitamos para borrar la fila asociada si conocemos el número de la imagen, es 3 y sé que quiero borrar la fila 9, todo lo que tengo que hacer es agregarle 6, así que eso es lo que haremos dentro de la imagen clara. así que con recetas si b5 no es igual a vacío y rango b y 6. válido qué es esto claro el contenido esta es la imagen recuerda b5 al valor digamos que esto es tres digamos que esto es seis así que esto sería b9 correcto si nosotros estoy tratando de borrar la imagen número tres más seis b9 vamos a borrar el nombre de la imagen que se encuentra directamente aquí a la derecha b9 tres más 6 es igual a 9 así es como lo borramos así que asumiendo b5 entonces vamos para borrarlo , lo que quiero hacer es configurar el nombre del archivo de imagen como t esa imagen predeterminada esta es nuestra imagen de receta predeterminada y la pondremos directamente dentro de una cadena aquí, entonces quiero asegurarme de que sea precisa, así que usaremos si el nombre del archivo del directorio no es igual a vacío si eso significa es exacto, tenemos una ruta de archivo correcta, entonces lo que quiero hacer es llenar ese marco de imagen con esa imagen predeterminada aquí, entonces lo que quiero hacer es establecer el encontrado y luego no necesitamos esto, esto ya está hecho ya borré la fila, así que no necesitamos hacer nada más, ya terminamos, eso no es necesario, todo lo que tenemos que hacer es borrar la salida y borrar la imagen cuando guardemos eso. receta solo cuando la guardamos, entonces realmente ponemos el espacio dentro de la imagen correctamente, así que si tuviera que guardarlo, pondrá este espacio en blanco directamente aquí dentro si no lo guardamos, entonces no hay cambios correctos, así que puedo si no lo guardo, entonces todas las fotos van a volver porque no lo guardé, está bien, genial así es como borramos la imagen muy, muy bien, de acuerdo, continuemos así que tenemos la receta cargada tenemos los ingredientes y los pasos cargados sabemos cómo agregar una imagen sabemos cómo borrar la imagen cómo guardamos una receta ¿Cómo agregamos nuevos y cómo los eliminamos? Vamos a cubrirlos, luego enviarlos por correo electrónico e imprimirlos. Creo que hemos terminado. ¿Quiero hacerlo bien? Básicamente, lo que quiero hacer es determinar si es una receta nueva o no es correcta. ¿Cómo puedo saber si es una receta nueva? Si b4 no está en blanco, es una receta existente si hago clic en Agregar nueva. sabemos que discúlpeme b3 no no es b4 b3 es nuestra fila correcta b3 es una fila asociada con la receta así que si está en blanco sabemos que es nueva si es una existente b3 siempre tendrá un valor entonces b3 es nuestro diferenciador así que esa es la macro que ha sido asignada a este botón de guardar receta, así que cuando entremos aquí y subamos aquí creo que está aquí rec yo guardo bien, ese es en el que nos vamos a centrar ahora, de acuerdo con las recetas nuevamente, quiero asegurarme de que tenemos algunos campos obligatorios, debemos asegurarnos de que lo estamos guardando, necesitamos tener un nombre de receta y yo necesito tener una categoría. Me aseguraré de que tanto k3 como 03 sean necesarios, así que haremos eso para asegurarnos de que tenemos al menos esos antes de guardar si k3 es igual a vacío u o3 es igual a vacío. luego, debemos informar al usuario para que se asegure de que las recetas contengan un nombre y una categoría . si es existente, b3 nos informará si b3 está vacío, es una receta nueva, de lo contrario, es una receta existente, por lo que debemos hacer tres cosas si es una nueva primero, lo que quiero hacer es determinar qué fila vamos a colocar esa receta en necesito saber la primera fila disponible para que podamos usar end excel hasta que la primera fila disponible será 24. yo también para Lo segundo que debo hacer es determinar cuál es la siguiente ID de receta. La usaremos aquí . Se ubicará en b4. Usamos la fórmula máxima para determinar la ID de receta, que es toda . los rangos de nombres asegúrese de que la receta asegúrese de que sus arañas sean todos números para usar el máximo, luego le agregaremos uno que nos dará nuestro próximo disponible, así que lo que debo hacer es que usted necesita tomar esto y Necesito colocarlo directamente dentro de b2. También necesito tomar esto y aplicarlo o se llama aquí mismo, así que no, eso es todo, eso es todo lo que necesito hacer para lo nuevo, solo esas tres cosas, así que haremos eso. aquí primero determine la fila recurrente que irá al resto fila b se basará en la base de datos de recetas a y x dejaron la primera fila disponible más una que es nuestra primera fila disponible a la derecha y luego también nuevamente como mencioné en b2 nosotros vamos a tomar lo que sea que esté en b4 y colocarlo b4 es nuestra siguiente identificación de receta, vamos a colocarlo dir ectly dentro de b2 y luego, por último, lo colocaremos directamente dentro de a y la base de datos de recetas de la fila de recetas a y la fila de recetas es igual a b4 es la siguiente identificación de receta, así que esas son las tres cosas que debemos hacer si es nuevo si existe, todo lo que tenemos que hacer es extraer la receta del b3 dentro de una fila de receta variable para que el resto de la fila sea igual en b3 o sea una nueva , todo lo demás, todo lo demás, que son estas tres filas, es exactamente igual si es para un nuevo o una receta existente, así que nuevamente vamos a ejecutar ese ciclo tal como lo hicimos cuando cargamos esa receta, excepto que esta vez será a la inversa, esta vez la base de datos de recetas tomará y obtendrá esa información y va a basarse en lo que esté ubicado en la fila de la receta y en la columna de la receta, por lo que estamos recorriendo básicamente tomando todos los datos, lo que sea que esté ubicado aquí, aquí, aquí, aquí y aquí, y colocándolos directamente en cualquier fila según esto en k3. lo vas a colocar aquí qué ver está en o3, lo colocaremos aquí y así sucesivamente, ejecutando un ciclo del 2 al 12. No necesitamos comenzar en uno porque ya colocamos uno, ya colocamos esa identificación allí, así que solo necesitamos ejecutarlo desde allí, está bien , eso es todo, eso es todo lo que necesitamos para guardar los datos a continuación, quiero guardar los ingredientes en este momento, tenga en cuenta que necesitamos guardar todos estos ingredientes, ahora necesitamos saber si estos ingredientes están guardados. o no está bien, así que la mejor manera de hacerlo es mirar hasta aquí y traer eso, no lo necesitamos tan lejos, ahora, así que tráigalo para que tengamos nuestros ingredientes, así que lo que necesito saber es si los ingredientes ya tienen una fila o no, por ejemplo, si decido que quiero agregar un ingrediente aquí, entonces quiero agregar un ingrediente aquí, digamos un cuarto de gota de, digamos, jugo de res, está bien, así que si quiero agregar un cuarto de gota de jugo de res, sé que esto aún no se ha guardado en la base de datos, así que si sé que no hay una fila asociada con esta nota, mire ro w 29 no hay ninguna fila. Tendría que guardar esto como una nueva fila dentro de nuestra base de datos de ingredientes aquí que tendría que guardarse aquí mismo, así que cuando la guarde correctamente, necesito buscar una nueva fila en la base de datos, la colocaría aquí. en la fila 230 si aún no se ha guardado, así que lo haremos, así que básicamente lo que debo hacer es determinar la última fila en función del nombre del ingrediente, luego recorreremos todas las filas y luego, si hay una fila de la base de datos asociada con ella, solo asegúrese de guardar los cambios que se hayan realizado si no hay una fila de la base de datos, luego tome lo que determine la primera fila disponible, coloque esa fila aquí y también dentro de esa fila . ese nuevo solo ese nuevo quiero poner en la identificación de la receta quiero poner la fila que está asociada y quiero poner una fórmula la fila aquí que será útil un poco más adelante y lo cargamos bien como vio cuando lo cargamos, necesitábamos esa fila, necesitábamos extraer esa fila para pla ce, todo está bien, así que tenemos eso, eso es solo para las nuevas filas, así que entremos en la macro y echemos un vistazo a guardar esos ingredientes nuevamente, tal como mencioné , vamos a determinar la última fila de ingredientes según la columna. i eso se ubicará aquí, está bien, el último ingrediente se basa en la columna de la última fila de ingredientes si es menos de 12, eso significa que no hay ingredientes, vamos a omitir todo esto y bajar hasta aquí, no hay ingredientes, así que asumiendo que hay son ingredientes lo que vamos a hacer es ejecutar esa fila de ingredientes en bucle desde 12 hasta la última fila de ingredientes otra vez esto ha sido borrado o borrado quiero omitir no hay nada que quiera guardar aquí si está vacío correcto si esto está vacío nada que guardar está bien asumiendo que no está vacío tenemos un gradiente lo que hago es quiero comprobar por qué recordar por qué contiene nuestra base de datos por qué porque lo hace por eso está bien por lo que contiene nuestra fila de la base de datos, por lo que si está vacía, debemos saber agregar una, eso es lo que debemos verificar aquí si y en el orden verde es igual a vacío, es un ingrediente nuevo, entonces debemos hacer todas estas cosas para el nuevo para existente es solo una cosa, así que para la nueva otra vez quiero determinar la primera fila de ingredientes disponible según la base de datos de ingredientes a y obtener nuestra primera fila disponible agregando la identificación de la receta muy importante en la columna a en el ingrediente, luego vamos a agregue dentro vamos a la columna e y la columna f vamos a agregar en la fila de receta de ingrediente y una fórmula necesito saber en qué fila se guarda esto en 29, así que si guardo este 29, ese 29 irá justo en la columna e y luego en cualquier columna, la fórmula va a la columna f, así que eso es exactamente lo que hago dentro de la fórmula, por lo que e y f se encargarán de eso y luego también necesito actualizar yy también necesita tomar la fila de ingredientes a la derecha necesitamos hacer esa actualización correctamente, así que en este caso esa nueva fila sería ser puesto aquí, por ejemplo, si guardo esa receta y guardar la receta, verá que la nueva rosa aquí en la fila 230 se guardó el jugo de res, así que miramos en la parte inferior de esto, vemos que el último elemento es ese jugo de res, la receta aquí el identificación de receta aquí tenemos nuestra cantidad aquí nuestra unidad de medida nuestro ingrediente además sabemos que ha estado en las filas de ingredientes 29 y 230 deberíamos estar haciendo estas cosas para realmente congelar estas columnas para que sea un poco más fácil para nosotros cuando seguimos adelante y congelamos estos paneles y congelamos la fila superior para que ahora, cuando nos desplacemos, siempre podamos ver que sabes que siempre podemos ver los ingredientes, así que ahora acabamos de agregar toda esta información, así que cuando la carguemos de nuevo va a aparece para que no se haya agregado uno, está bien, eso es lo que hacemos aquí y ahora en por qué agregamos esa fila esa fila de la base de datos sabiendo que se guardó , eso es lo que hacemos aquí y por qué agregar eso si es un existente es muy fácil, todo lo que tenemos que hacer es extraer la fila de la base de datos existente todo ng else es lo mismo independientemente de si es un ingrediente nuevo o un gradiente existente, vamos a actualizar esa base de datos y hacerlo básicamente dentro de nuestra base de datos de ingredientes desde b hasta d simplemente será igual a lo que se encuentre en g a i, así que hacemos eso con esta línea de código b a d de nuestra base de datos de ingredientes es igual a g a i de nuestra fila de recetas, eso es todo, así que eso es todo lo que tenemos que hacer y luego simplemente vamos a repetir que el los pasos de la receta guardados fueron ahora, tenga esto en cuenta, los pasos de la receta se guardan cuando se crean o actualizan, está bien, queremos asegurarnos de que los pasos de la receta, ahora son para los pasos de la receta, los agregaré, entonces, ¿cómo guardamos los pasos de la receta? Estoy poniendo eso aquí para que la receta agregue nueva, así que cómo guardamos bien, vemos que sabemos cómo guardamos la receta, pero y los ingredientes, pero ¿cómo guardamos los pasos ? son automáticos, en otras palabras, ya que agregamos un paso de receta que van a ingresar , se guardan automáticamente, así que no necesitamos guardarlos porque tan pronto como lo agreguemos aquí , se guardarán en la base de datos, por ejemplo, así que digamos que tenemos, digamos que hay seis pasos, así que llamémoslo un paso, veamos, luego vamos a ir al paso siete, así que agregamos un paso siete, tal vez queremos una imagen asociada con este paso siete, podemos poner aquí cualquier imagen, está bien y ahora tan pronto como guardamos este paso, que es la macro que vamos a llegar aquí para que se guarde automáticamente, así que repasemos esa macro ahora, ¿cómo guardamos realmente ese paso? Bueno, vayamos a la macro, está bien y luego o simplemente puede ver aquí, haga clic con el botón derecho si hacemos clic con el botón derecho, no estamos seguros de qué es un poco más rápido, asigne la macro y simplemente haga clic en editar, nos llevará directamente a la macro de receta, se llama paso de guardar, eso es lo que quiero hacer con usted ahora, así que cómo guardar ese paso con las recetas, por supuesto, queremos asegurarnos de que tenemos b3 lo que hay en b3 Quiero asegurarme de que si por alguna razón intentan guardar un paso sin guardar primero la receta , háganles saber si tratamos de agregar un nuevo derecho y voy a decir, digamos prueba aquí y guardo el paso . No quiero que puedan agregar pasos sin guardar primero la receta, así que quiero que digan, por favor, guarden la receta primero, así que eso es importante, debemos asegurarnos de que lo hagan, así que b3, por supuesto, eso está ubicado en nuestro Si la fila está vacía, sabremos que esta receta aún no se ha guardado, así que para hacer eso, solo infórmele al usuario que está bien, suponiendo que la receta se haya guardado, eso es importante. También quiero asegurarme de que no estén guardando nada. tan pronto como sepa si intentan guardar un paso y no hay nada en k11, hágales saber que en realidad no han agregado nada, así que si k11 se queda vacío, asegúrese de agregar algunas instrucciones de paso antes de guardar el paso, está bien si b12 está vacío es un nuevo paso en este momento, echemos un vistazo dentro de b12 cuando seleccionemos algo, quiero que toda la información del paso vaya dentro de esto, recuerda b12, correcto , tomará esa fila de pasos si hago clic aquí, esto es 15, esto es 19, sabes que se basa en el paso, recuerda que estamos agregando esto, pero si hacemos clic si yo guarde ese paso, se borrará, así que sé que no hay nada aquí, observe que b12 11 están completamente vacíos, lo que significa que es un paso completamente nuevo, pero si están haciendo un cambio y son suaves y gruesos, necesito saber la diferencia . antes de mayo, si lo estamos guardando, necesito saber si es un derecho existente o no, este derecho no existe, así que necesito asegurarme de que actualicemos correctamente, así que si cometo un error, como siempre guardo el paso quiero poder hacer fácilmente ese cambio muy rápido y fácil, así que tengo que diferenciar si es uno nuevo como aquí o existe como aquí b12 b11 nos lo dirá aquí en b12 si b12 está vacío, es un nuevo paso, así que cuando establecemos un nuevo paso, lo que vamos a hacer es g Voy a hacer la fila de la base de datos de pasos. Será la primera fila disponible en nuestra base de datos de pasos y nuestra base de datos de pasos se encuentra justo aquí . Será un paso completamente nuevo. Voy a congelar esta fila aquí para que podamos ver es un poco más fácil ver y luego congelar, está bien, vamos a congelar eso, así que básicamente lo que quiero hacer es la primera fila disponible, tenemos todos estos pasos, quiero saber la primera fila disponible, observe que el paso 7 i Acabo de guardar allí. ¿Qué quiero? Quiero la identificación de la receta. Quiero saber el número de paso. Quiero saber las instrucciones. Quiero saber si hay una imagen adjunta y quiero saber la fila asociada. Quiero saber toda esa información, así que a medida que avanzamos en el código, la fila de la base de datos de pasos será la primera disponible. La fila de pasos será un 99 más 4. ¿Qué es eso? Quiero saber dónde está esa fila . vamos a colocarlo bien a ver si tengo todos estos pasos quiero saber el ultimo ro w en este caso 39 sabemos que van en cada fila más 4. así que en este caso va a ser 43 es nuestro siguiente derecho así que tenemos 39 así que el próximo nuestro próximo paso irá en la fila 43. lo sé va a recordar que nos estamos saltando cuatro cada vez bien, solo nos estamos saltando tres, así que vamos a tener cada uno tres entre nosotros, así que es cada cuarta fila, así que 43 aquí y luego, por supuesto, 47 está bien, así es como nosotros Lo voy a hacer, así que quiero asegurarme de que estamos agregando 4 a eso aquí, está bien, agregando 4. Encontrando la última fila del valor en la columna a y luego agregando 4. Será nuestra próxima fila de paso de receta disponible. porque queremos nuestra receta, queremos que sea muy, muy fácil, así es como podemos hacer un seguimiento de cuál estamos haciendo muy fácilmente porque nos estamos saltando, son básicamente iguales al paso seis, por lo que todo está en el mismo línea es muy fácil una vez que tenemos eso, así que tenemos nuestra fila de pasos, nuestra primera fila de pasos disponible y nuestra fila de base de datos de pasos, tenemos eso ahora lo que quiero Quiero agregar esa información a la base de datos. Quiero agregar la identificación de la receta . Quiero agregar el número del siguiente paso. Está en b13 . estoy contando todo bien en b digamos columna b cuántos pasos cuántos de los valores hay cómo si uso contar quiero saber cuántas celdas contienen valores si tengo uno dos tres cuatro cinco seis siete si tengo siete aquí con valores , sé que si sumo siete más uno, mi próximo paso será ocho, así que eso es lo que he hecho aquí usando contar una fórmula usando b hasta 75 o lo que sea, probablemente podrías poner este valor mucho más alto en nueve en caso de que tenga muchos pasos complicados para cocinar más uno, ese será nuestro próximo paso, así que nuestros próximos pasos ocho para que sepamos que b13 contiene nuestro número de próximo paso para que podamos poner eso adentro, lo tomaré y lo pondré directamente en b en la fila de pasos quiero tomarlo aquí quiero poner el siguiente número de paso que voy a póngalo aquí, así que si agregamos ese paso 8 1 será la identificación de la receta 8 irá aquí, luego voy a poner las instrucciones, luego voy a poner la imagen, está bien, eso es todo, ¿y qué más? ¿Qué tenemos que hacer? También necesito colocar para los nuevos. Recuerde para los nuevos pasos . fórmula de esa manera, si eliminamos algo, seguirá estando aquí genial, así que entendemos que eso irá así que ahora también lo que quiero hacer es colocar el nombre de la imagen en una y quiero colocar la fila de la base de datos dentro b tal como lo hicimos para los nuevos, así que aquí dentro de la receta quiero poner el nombre de la imagen en a y pondré una fila de la base de datos y se basará aquí, así que si agregamos uno, por supuesto que se colocará directamente en 43. Entonces, si hago clic en guardar paso aquí y pongo digamos que vamos a llamar a este paso 8, paso 8 correcto, entonces este será el paso 8 y tal vez quiero poner una imagen aquí. Quiero agregar esa información aquí y guardo ese paso . Sabemos exactamente dónde se colocará. Se colocará directamente en 43 a. Tomará el nombre b . vamos a tomar esa fila de la base de datos si miramos en nuestra base de datos de pasos , vemos que tenemos nuestra información aquí, la imagen, todo está aquí, así que continuemos con el código, eso es todo, si es nuevo, si es existente, estamos voy a extraer la fila de pasos de b12 justo esa fila de pasos se ubicará en b12 y la base de datos de pasos es b en la fila de pasos ¿qué quiero decir con que la fila de pasos sería 43 y las filas de la base de datos se pueden ubicar en b y cualquiera que sea la fila de pasos en este caso 107. 107 es igual a esta, la fila de la base de datos aquí está bien , entonces tenemos toda la información que necesito saber esa fila de la base de datos porque cuando hacemos cambios cuando actualizamos eso necesitamos hacer seguro de que estamos agregando y actualizando algo así, así que aquí vamos, la fila de la base de datos cc va a ser nuestro texto de instrucciones justo que c aquí justo aquí columna c aquí hay instrucciones lo que sea que esté dentro de nuestra celda de campo aquí k11 va a tomar eso, así que hacemos exactamente eso aquí es igual a k11 y luego esa imagen va a entrar columna d, lo que sea que esté en l14, ese nombre de archivo de imagen irá aquí, está bien, así que buscamos ese nombre de archivo y vamos a ir aquí de adentro hacia afuera, así que vamos a guardar ese nombre de archivo de imagen, está bien, muy bien Entonces, ¿qué pasa si eliminamos un paso que es relativamente fácil? Todo lo que tenemos que hacer es simplemente determinar si el paso se guardó o no correctamente. Entonces, si agrego una prueba de paso aquí y elimino ese paso, todo lo que necesito hacer es simplemente borrar las filas y va a ser muy, muy simple , aclaremos eso y me aseguraré de borrar los contenidos k a través o también necesitamos aclarar eso si el paso se guarda, de lo contrario, claro, tenemos eso aquí, pongamos que aquí quiero hacer este rango de puntos k aquí asegurándome de borrar toda la información eso es importante k 11 a 0 13 k 11 a o 13 punto derecho borrar contenido y también qué más tenemos que hacer tenemos que borrar esa imagen cualquier imagen que esté aquí va a ser l 14 a n 14. así que l 14 a través de y 14 y vamos a borrar el contenido de ese derecho, así que una vez que borro el contenido, entonces se puede borrar, entonces, ¿qué más necesitamos hacer para borrar el contenido ? de todos quiero asegurarme quiero asegurarme de que quieres eliminar este paso dale al usuario un punto si se eliminó sí o no está bien entonces sal del sub o si no quieren eliminarlo no hay nada que podamos hacer si me dejas solo déjame poner esto voy a borrar el contenido independientemente de eso esto es si no se ha guardado eso es mejor ahí lo mantendré ahí bien así que ¿estás seguro de que quieres eliminar el paso bien entonces yo queremos agarrar al hermanastro que vendrá de b12, sabemos que b12 tomará esa fila de pasos aquí mismo, si es se ha guardado antes si no es nada que podamos hacer bien, entonces la fila de la base de datos de pasos que vendrá de b en la fila de pasos y también lo que queremos hacer es simplemente eliminar la fila completa de nuestra base de datos de pasos, sabemos cuándo sabemos el fila 3 o 4 de la base de datos de pasos, cualquiera que sea su ubicación, digamos que quiero eliminar este paso correctamente si cargo el paso 8 aquí mismo y está cargado aquí ahora, quiero eliminar esa fila, eliminar el paso, ¿está seguro de que desea eliminarlo? queremos hacer, queremos borrarlo, ya no está allí y si miramos nuestra base de datos de pasos, ya no está allí. ahora las celdas y luego lo que hago es ejecutar la macro para cargar los pasos para que actualice esos pasos esa macro como hemos estado sobrecarga todos esos pasos para que la vuelva a cargar y borre todo bien muy bien me alegro tenemos esa parte para mostrarle, repasemos algunos agregados nuevos, que es una macro muy rápida y por supuesto, al eliminarlo, queremos repasarlos, así que eliminamos la receta y agregamos nuevos, por lo que tenemos el paso eliminar eliminar ingredientes, vamos a repasarlos en un momento, pero quiero repasar la eliminación de recetas para agregar nuevos que va a ser la receta, veamos la receta, agregue nueva, está bien, esta aquí con recetas, en primer lugar, lo que quiero hacer es borrar las calificaciones de estrellas, si hay alguna forma, justo cuando hacemos clic en agregar, tenemos muchas . de formas que tengo tengo números de pasos tengo texto de pasos tengo imágenes tengo imágenes de calificación y quiero mostrarles las imágenes de calificación aquí quiero eliminar cualquier imagen de calificación así que cuando hagamos clic en agregar nuevo todo eso debe borrarse y también queremos configurar la imagen predeterminada, de modo que para cada forma de paso en el aire, reanude a continuación para cada forma si contiene una calificación de estrellas superior a 0, no la eliminaré, recuerde que no quiero eliminar esas calificaciones solo quiero ocultarlas ocultarlas todo lo demás se puede eliminar y eso incluye el paso n de la receta Numere el texto del paso de la receta y la imagen del paso de la receta para que todos esos pasos se puedan eliminar para que este texto se pueda eliminar todo lo que hay allí para que podamos borrarlo al agregar nuevo, está bien, entonces, ¿qué más? Entonces, por supuesto, necesitamos borrar todos los campos asociados. Bien, queremos borrar todos estos campos. Quiero borrar todos los ingredientes . Quiero borrar las filas de la base de datos aquí. lo que quiero hacer es establecer la imagen predeterminada cuando hago clic en Agregar nuevo, como viste hace un momento, apareció la imagen predeterminada, por lo que está ubicada en c6 y si es una ruta correcta que está en c6, entonces el relleno de forma establece eso imagen predeterminada al nombre del archivo de la imagen, así como lo hemos hecho antes cuando hago clic en agregar nuevo, esa imagen predeterminada aparecerá y estará lista para una imagen publicitaria, por lo que todo lo que tenemos que hacer es agregar una imagen y se hace así y si cour vamos al anterior, al siguiente, no aparecerá nada, así que eso es lo que quiero, no hay una imagen anterior, está bien, muy bien, tenemos eso, cállalos, ves que apareció la primera imagen aquí, estamos listos para ir bien, así que eso es todo para agregar nuevo así que la receta agrega nueva, pero ¿qué pasa si queremos eliminarla? Echemos un vistazo a que esa es, por supuesto, la macro que se le asignó aquí y, si la editamos, podemos ir directamente a eliminar, en primer lugar, quiero asegurarme. el usuario quiere eliminar una receta sí no eliminar entonces quiero asegurarme de que b3 no esté vacío, ¿verdad? b3 significa que se guardó previamente antes de que contenga esa fila de la base de datos. Voy a elegir esa fila de recetas de la base de datos ubicada en b3 y luego todas vamos a hacer es b3 ahora esta macro en particular realmente no está completa, se me acabó el tiempo ahora funciona bien, pero realmente cuando estás haciendo esto si lo estás haciendo para un profesional que quieres hacer el siguiente derecho que desea ejecutar, básicamente, primero se da cuenta de que tenemos todos de estos ingredientes, lo que quiere hacer es ejecutar un filtro macro avanzado que se basará en esto y devolverá todos los ingredientes para esa fila y desea eliminar cada uno individualmente, desea ordenarlos de qué tipo es grande, desea ordenarlos por fila, comenzando con el último y eliminándolo, así que elimina la fila 230, elimina 19 1870, esa es la forma correcta de hacerlo también en pasos, hará lo mismo que está va a ejecutar un filtro avanzado basado en esa identificación, sea lo que sea que haya allí , obtendrá sus resultados aquí, comenzará a eliminarlos, los ordenará a la inversa, de menor a mayor, o puede ir a la inversa ordene y luego comience con la última fila, la fila con el número más alto, elimine 106. Luego, elimine ocho, siete, sesenta, quiere ir en ese orden, tenga en cuenta que si elimina la fila tres, obtendrá el líder dos, así que no queremos eso, así que intente no para eliminar la fila tres o simplemente puede eliminar este criterio aquí y el n solo sáquelo una fila, así que tenga en cuenta que podría ser un problema si elimina la fila tres, así que si estuviera preparando esto , probablemente lo movería una fila hacia arriba para que nunca se elimine, tenga en cuenta esas cosas eso es realmente la forma correcta de eliminar, estamos haciendo una especie de eliminación fácil y rápida, así que es una forma fácil y luego todo lo que vamos a hacer es ejecutar la macro que agrega nueva, así que cuando la elimine es va a hacer eso, simplemente lo aclarará y agregará un nuevo, está bien y agregarlo probablemente debería eliminarlo, pero es mejor porque este es un campo obligatorio, así que podemos hacerlo, está bien, genial, así que hemos terminado de agregarlo, hemos estado sobre recetas guardadas hemos terminado eliminar hemos revisado imágenes claras agregar imágenes necesitamos revisar el correo electrónico e imprimir y una macro más antes de eso y esos son los ingredientes que tenemos la capacidad de eliminar ingredientes que realmente me gustan y entonces, pero puede ser un poco complicado y quiero ir, así que fíjate si tenemos algunos ingredientes. de vez en cuando digamos que tenemos que hacer jugo de res nuevamente , está bien, tenemos estos y hemos decidido que vamos a guardarlo bien, así que guardamos nuestra receta , así que tenemos estos dos ingredientes, pero ¿y si yo quiero eliminar bien un ingrediente, la mejor manera de hacerlo es simplemente determinar en qué fila está, así que lo primero es que quiero saber cuándo selecciono una fila, quiero que aparezca este pequeño ícono aquí, ese ícono se llama botón de eliminar ingrediente o eliminar el botón y quiero que se muestre directamente y eso se basará en el cambio de selección. También quiero resaltar la fila y para hacer eso vamos a usar el formato condicional, así que si entramos en el formato condicional, obtuve un algunas reglas y también quiero notar una fila abierta, así que tan pronto como agregamos algo, se abre una fila, así que repasemos el formato condicional aquí, sí, esta es una aplicación grande, trabajé duro en ella, así que básicamente tenemos tres reglas que solo tres reglas, estas son para las filas alternas que les da el color y hay dos condiciones correctas y 11 noto que nuestro aviso comienza en 12. El primero comienza en 12 pero pongo 11 y si haces eso, el siguiente siempre será el color 2. En otras palabras, va para dejarnos una fila en blanco que es lo que queremos que también esté coloreada y también una para las filas pares, por lo que las filas pares obtendrán este color marrón claro, así que observe que es igual a cero, el mod de la fila es igual a cero , mientras que en este el La misma regla basada en el ojo 11 no es igual a blanco, pero este va a tener un color marrón un poco más oscuro, así es como obtenemos las filas alternas y bien, y muy, muy importante, usé 11, recuerda que esto comienza en 12, pero usé 11. porque quiero esa fila en blanco tan pronto como agreguemos una fila aquí, tan pronto como sigamos agregando, mostrará que eso es exactamente lo que quiero, así que es realmente muy importante que tengamos eso para que el usuario sepa que puede ingresar al ingrediente allí, así que lo que quiero hacer es que tenemos el El último formato condicional se basará en cualquier fila seleccionada en b29, observe que desaparece tan pronto como seleccione algo. b1 es igual a cualquier fila que hayamos seleccionado. Puedo poner eso en b1 . el formato condicional aquí adentro vemos que b1 aquí la fórmula es b1 es igual a la fila y le damos un formato correcto en ese formato mientras mi voz apenas se mantiene en negrita lo queremos en negrita queremos darle un color de blanco y queremos darle un relleno. Voy a darle un efecto de relleno. Voy a usar un color un poco más claro, solo algunos colores marrones aquí para darle un bonito tono más oscuro, así que quiero diferenciar entre que para asegurarnos de que entendamos que eso ha sido uh visible, esa es la fila seleccionada y lo último que quiero hacer es ejecutar un evento, un evento de cambio de selección que coloca este pequeño bote de basura aquí en la fila seleccionada para que podamos eliminar cualquier fila si queremos hay una macro vinculada a eso si vemos lect todo lo demás, esos van a desaparecer, así que, ¿cómo lo hacemos ?, echemos un vistazo dentro del desarrollo visual básico, volvamos a la selección, esta vez , la receta, nos centraremos en el cambio de selección, está bien, lo primero que vamos a hacer hacer si el recuento de objetivos grande es mayor que uno, luego salir del sub, por lo que no queremos que si el usuario selecciona más de una celda, simplemente saldremos suponiendo que solo han seleccionado una celda en el frente que quiero ocultar algunas formas que siempre deberían estar ocultas, por ejemplo, esta opción de calificación casi se me olvida mostrarle esta opción. Necesito mostrarle que casi tantas características allí no puedo recordar, así que esto básicamente cuando selecciono una celda aquí celda, quiero que aparezca esta palanca, ¿cómo lo hacemos? Te mostraré que en un momento, tan pronto como terminemos con esta aquí, esta macro está bien, así que básicamente lo que quiero hacer es esta palanca si seleccionamos este pequeño aparece aquí esto se llama grupo de calificación grupo de calificación si selecciono cualquier celda i w y está oculto a la derecha, solo quiero seleccionarlo, solo quiero que aparezca cuando hago clic aquí; de lo contrario, lo quiero, así que quiero ocultar que quiero ocultar este bote de basura automáticamente y quiero ocultar algunas otras cosas, así que también quiero hacerlo aquí si la clasificación alterna aquí también este este alternar esta es una forma sí llamada alternar de clasificación también quiero que esté oculta sé que se ve como este tipo correcto de genial cierto casi es casi perfecto necesito hacerlo un un poco más pequeño, pero entiendes el punto, está bien, queremos ocultar eso aquí, entonces, ¿cómo lo hacemos? Solo ocultar ese tipo de formas solo está disponible, solo queremos que se muestren cuando creamos acciones específicas, de lo contrario, lo mejor es hacer es simplemente ocultarlos de inmediato, pero solo quiero ocultarlos si están visibles, por lo que si el cambio de calificación es visible es igual a verdadero, entonces ocúltelo si el grupo de calificación está visible y luego ocúltelo si el botón Eliminar ingrediente es un pequeño bote de basura. es visible, luego ocúltelo, así que solo vamos a ocultarlo todas esas cosas de inmediato si el usuario hace una selección a 0404 mientras estamos aquí o4 entonces quiero mostrar este pequeño botón recuerda que esto es solo una forma es un triángulo y un cuadrado eso es todo no es esto lo que es el la lista desplegable está hecha para que se vea así para que las personas la seleccionen , así que si es así, quiero que esté visible, si seleccionan en o4, quiero asegurarme de que esté visible para poder hacerlo con esto si las selecciones no sirven para nada, entonces el cambio de clasificación de forma visible es igual a verdadero, hay una macro asignada que simplemente alternará esto, está bien, así que si seleccionan eso , continúe si el usuario hace un cambio de selección entre g12 e i9 aquí g12 e i9 y quiero asegurarme de que contengo un valor correcto si están aquí abajo, no queremos que suceda nada si no contengo un valor, suponiendo que lo haga, lo que queremos hacer es que la fila de destino no contiene no está vacía, sí lo contiene contiene un valor y luego hace algunas cosas que uno b1 va a tomar en eso la fila de destino que va a activar ese formato condicional. Voy a tomar esa fila y luego lo que quiero con ese icono. Quiero colocarlo directamente a la izquierda de la columna j y la fila de destino y quiero colocarlo directamente en la parte superior. pero un poco más arriba que en la parte superior derecha y quiero asegurarme de que sea visible, así que básicamente este código de aquí se asegurará de que sea visible ahora que le hemos asignado una macro, tenemos que eliminar esa macro si echamos un vistazo, asigne la macro, desplácese hacia arriba aquí, vemos que se llama eliminación de ingrediente, si edito esa macro, continuará, déjeme verificar dos veces antes de volver al grupo de ingredientes, quiero asegurarme de que cubrimos todo en el cambio de selección está bien, si no, b1 borrar contenido, ¿qué significa eso? Eso significa que si seleccionan aquí, genial, pero si selecciono algo más, voy a borrar b1 justo cuando lo haga. Quiero asegurarme de que esa fila no esté seleccionada. eso es todo, así que ahora podemos continuar con ese i específico ngredient delete esta es la macro que vamos a ejecutar, así que, básicamente, si selecciono esto y hago clic aquí, quiero que se guarde la receta y quiero que se elimine. así que estábamos donde estábamos y luego lo que quería hacer, hagamos una prueba, así que es diferente, un gramo de prueba, esos son mis favoritos, guarde esa receta y lo que vamos a hacer, así que ahora lo que quiero hacer es borrar pero es un poco complicado, sabemos que la base de datos si esta es la base de datos 230 si elimino este elemento, vamos a buscar en la base de datos y los ingredientes si elimino vamos hasta aquí abajo si elimino este 230 entonces esto se convierte en 2 230 correcto, si elimino este, esta fila se mueve hacia arriba a la derecha si elimino que esta ejecución se convierte en 230 porque estamos usando una fórmula. Necesito asegurarme de que también cambiemos este aquí a 230. Note que estamos eliminando 230 aquí, necesito asegurarme de que el de abajo se mueva hacia abajo, así que eso es solo el control tenemos que hacer eso es lo que vamos a hacer si b 1 es igual a vacío el siguiente de la derecha secundaria si no tenemos una fila seleccionada si no sé qué fila se seleccionó podemos salir de la sub, si voy a eliminar este aquí , necesito saber que b29 es el que vamos a dejar, debemos poner eso en una variable, por lo que la fila de ingredientes será lo que esté ubicado en b1 el último la fila de ingredientes va a ser la última. Necesito saber la última fila. Vamos a recorrer todos los que si voy a eliminar esto. Vamos a cambiar mucho, así que necesito saber la última fila. en este caso, la última fila es 30. Entonces, vamos a hacer que la última fila sea i si necesito saber si se guardó o no, por qué si no es igual a vacío, recuerde que y es nuestra fila de base de datos, entonces eso está aquí, si no está igual de vacío, entonces necesito eliminarlo de la base de datos si está vacío, aún no se ha guardado y solo necesito actualizar la lista, es mucho más fácil si no lo ha hecho . No se ha guardado, pero si se ha guardado, debemos hacer todo esto bien, por lo que la fila de la base de datos de ingredientes se encuentra en y, a la derecha, si el ingrediente ahora necesito saber si es la última fila, por ejemplo , si solo quiero eliminar 231 es mucho más fácil si solo elimino el último no necesito hacer ningún cambio no hay nada debajo muy fácil es mucho no solo es el último en la base de datos pero lo más importante es la última fila de nuestra receta es la última fila de la receta así que necesitamos saber si si no es igual a la última fila si no es igual a la última fila significa que quieren eliminar este o este no es la última fila entonces tenemos que definir cuatro ahora tenemos que establecer un bucle para que la fila de ingredientes de la receta sea igual a la fila de ingredientes más uno hasta la última fila de ingredientes ¿qué significa eso? digamos que quieren eliminar este derecho , necesito hacer algo para todas las filas restantes Necesito hacer algo. ¿Qué debo verificar? Necesito verificar si esta fila es gr. eater than the row entonces necesito cambiar esto a 17 necesito esto a 19. necesito cambiar esto a 229 y luego cambiar esto a 230. entonces eso es lo que necesito hacer dentro del código si y es mayor que la receta Entonces, lo que vamos a hacer es reducirlo en uno. La base de datos de recetas fila e y la fila y. Esto es un poco confuso. Aquí está la fila de la base de datos. Aquí está la fila de la base de datos. voy a hacer es reducir si quiero así que todo lo que estamos haciendo es ir a la receta viendo esto vamos a hacer este 229 estamos viendo esto vamos a hacerlo 230 ejecutar o nosotros vamos a saber que solo vamos a actualizar eso, pero también si, dado que es una fórmula, no necesariamente debemos hacerlo, pero lo que sí debemos hacer es e este aquí tenemos que reducir aquí lo siento este porque si estoy borrando esta fila va a ser esta va a ser 29 qué quiero decir con eso digamos que elimino la sal marina bien no la quiero bien 20 esto se convierte en la fila 27 r Bueno, todo va a moverse hacia arriba, así que esto se convierte en 27, esto se convierte en 29 y esto se convierte en 30, así que también debemos cambiar eso en la base de datos . sobre ingresos, eso es todo lo que tenemos que hacer aquí , entonces lo que queremos hacer es por qué aquí es donde actualizamos la base de datos y es igual a y menos uno reduce la fila de la base de datos en este caso queremos reducirla correctamente 230 se convierte en 230 231 se convierte 230 2 30 se convierte en 229, por lo que estamos reduciendo eso porque estamos eliminando uno antes, así que eso es todo lo que tenemos que hacer, bien, solo vamos a recorrer todas las filas de recibos restantes y luego qué vamos a hacer. si vamos a verificar si la fila de la base de datos es mayor que lo que se encuentra , luego eliminar eliminar la fila de la base de datos si es mayor que tres simplemente no quiero eliminar la tercera fila nuevamente por si acaso eliminar esa tercera fila podría crear problemas porque vamos a borrar esta formula h ere que no quiero, así que nos aseguramos de que no sea 4. Está bien, entonces tenemos eso una y otra vez, como dije, probablemente lo movería hacia arriba, pero es más fácil cuando estamos enseñando a mostrarte que estás bien, así que continúa . eso es todo lo que tenemos que hacer a continuación, lo que ahora hacemos es simplemente borrar los detalles de los ingredientes desde g hasta básicamente borrar lo que sea que esté aquí, lo que sea que tengamos aquí, también lo que sea que esté en esa fila de la base de datos, borrar eso y también debemos ocultarlo. ese botón de eliminar ese ícono aquí eliminar ese aquí el que aparece aquí necesitamos eliminar eso y luego también queremos guardarlo y luego cargar nuestros ingredientes correctamente guardando esos cambios y luego cargando los ingredientes correctamente eso lo ejecutará automáticamente Entonces, si decido que quiero eliminar el jugo de carne de res pero sigo probando, se eliminará que la receta se guardará, se reiniciará. Aviso: antes de que fuera 30 ahora es 29. Entonces, si miramos en nuestra base de datos aquí dentro de nuestro gradiente aquí recuerda er prueba solía ser 30 y ahora es 29, así que simplemente lo redujimos antes de comenzar, así que redujimos esa fila, eso es lo importante que debes entender, está bien, muy bien, ahora quiero llegar al correo electrónico correcto y el imprimir, así que creo que solo va a ser. Haré una doble verificación para asegurarme de que cubrimos todo y vamos a mover estas formas de regreso a donde pertenecen aquí ocultas para mantener nuestra pantalla muy hermosa. No los necesito allí, así que lo que queremos hacer es, por supuesto, quiero poder enviar esta receta por correo electrónico si hago clic en el correo electrónico, asignemos cuál tengo que asignar esta macro, así que asigne la macro y será hacer clic en el correo electrónico de la receta ok, quiero enviar por correo electrónico esta receta completa, por lo que la colocará dentro de un pdf y enviará un correo electrónico automáticamente cuando seleccione esa macro y se verá así, por lo que crea un correo electrónico, básicamente, le dará un asunto de mantequilla . pollo si abro ese pdf vamos a ver que ese ent La receta de ire ahora está dentro de este pdf, todos los pasos están aquí y todo está allí, así que, ¿cómo lo hacemos bien ? Podemos hacerlo con solo un poco de código, así que sigamos adelante y echemos un vistazo dentro de ese código , primero que nada, receta con el correo electrónico, la parte complicada de esto es que necesitamos establecer el rango correcto para que sepamos que comenzará en gi quiere todos los ingredientes, por lo que comenzará en g3 correcto y llegará hasta q correcto, lo sabemos. eso, pero ¿qué pasa con la última fila ? Es un poco más complicado porque la última fila es una forma. Esta última fila es 42. Quiero asegurarme de que la incluyamos. ¿Cómo vamos a obtener ese 42? ¿Cómo sabemos qué es? Está bien, necesitamos determinar cuántos pasos tenemos. Sabemos que el próximo paso es ocho. Entonces, sé que tengo siete pasos. Sé que tengo siete. Si sé que tengo siete pasos, también sé que cada paso. toma cuatro filas a la derecha, así que si decido que está bien, cada paso son cuatro filas, tengo siete pasos, así que voy a multiplicar, eso es 28. Entonces, si tomo ese 28 y le agrego 14, voy a obtener automáticamente la última fila que es 42. mira cómo lo hicimos, empezamos en eso, sabemos que tenemos siete, esto es ocho, correcto, estamos agregando uno, así que tengo siete pasos actuales, así que quiero obtener la última fila, sabemos que cada paso contiene cuatro filas, así que podemos hacer eso con un poco de desorden, la última fila va a ser igual a lo que sea que esté en b13, ese es el 8 menos 1 que va para darnos 7. Vamos a multiplicar eso por 4, nos dará 28. Le sumamos 14 porque comenzamos en la fila 14 aquí, así que tenemos que sumar 14 a lo que va para obtener nuestra última fila una vez que tengamos que podemos establecer el rango de impresión, sabemos dónde comenzará en g3 hasta q y la última fila que irá a la dirección de ese es nuestro rango de impresión. Esta es una variable de cadena una vez que tenemos ese rango de impresión en una variable de cadena, podemos usar la configuración de página para establecer esa área de impresión, es un área de impresión dinámica basada en eso, por lo que la p el área de impresión de configuración de edad es igual al rango de impresión aquí está el rango en este momento lo que quiero hacer es establecer un nombre de archivo al menos temporalmente va a ser este trabajo vamos a usar la ruta actual del libro de trabajo porque ese es el seguro, vamos a agregarle una barra invertida, luego agregaré lo que esté en k3 k3 es el nombre de la receta quiero agregar ese nombre de archivo nombre de la receta voy a poner k3 lo que sea que esté allí y quiero agregue dentro de ese pdf a la derecha, así que quiero agregar aquí el pdf, así que básicamente y la receta correcta.pdf, así que eso es con el nombre del archivo, por lo que será el nombre de la receta, subraye la receta y el pdf obtendrá ese nombre de archivo si por alguna razón ese nombre de archivo existe si el directorio no es igual a vacío, quiero asegurarme de que esté vacío, entonces lo mataré, eso significa que si ese archivo ya existe en esa carpeta, primero quiero eliminarlo, está bien, así que si no es así lo eliminaré por si acaso ahora voy a exportarlo exportar esta página según la configuración del archivo n ame correcto y falso correcto, así que si echamos un vistazo dentro de los comentarios aquí, podemos ver que intellisense aparecerá ignorar las impresoras, cierto, queremos mantener eso en el área de impresión, así que esa es la información y luego, por supuesto, vamos a ser escriba como formato de archivo fijo, ese formato será un pdf , el nombre del archivo, la calidad, podemos dejarlo vacío y eso es todo lo que necesitamos para asegurarnos de que no estamos ignorando las áreas de impresión, luego vamos a establecer la perspectiva esto se ha definido dimensionado como un objeto esto se ha dimensionado como un objeto golpe vamos a crear esto crea esa aplicación de perspectiva esto crea un correo electrónico de perspectiva y con ese correo electrónico alec vamos a configurar los dos a nada vamos a agregar un archivo adjunto ese archivo adjunto será el nombre del archivo que acabamos de crear aquí ahora vamos a hacer un tema sin un tema básicamente ese será el nombre de la receta y la palabra en el espacio y el palabra receta nada en el cuerpo y pantalla que vamos a mostrar no queremos enviar ese correo electrónico que queremos mostrar ni siquiera tenemos 2 direcciones eso es todo lo que tenemos que hacer para crear el correo electrónico ahora imprimir va a ser muy, muy similar de nuevo, vamos a determinar la última fila, vamos a determinar el rango de impresión y vamos a determinar esto correctamente, así que en realidad tengo que mostrarte esa lista desplegable y luego el rango correcto g3 hasta q que se está poniendo la misma dirección esta vez estamos configurando la página configurando el área de impresión tal como lo hicimos antes, excepto que ahora lo estamos imprimiendo, está bien, muy, muy bien, está bien, quiero mostrarle esto cuando lo seleccionemos como se mencionó antes. selecciónelo, ¿qué pasa con este interruptor si hacemos clic con el botón derecho, hacemos clic, oh, en realidad, este es un grupo, por lo que debemos hacer clic con el botón derecho en los elementos individuales, hacemos clic con el botón derecho dentro y hacemos clic en asignar mac o hacemos clic en ver que se llama cambio de calificación ahora este cambio de calificación es muy fácil, todo lo que quiero hacer es básicamente mostrar ese grupo de calificación mostrar esa rati ng grupo aquí muéstrale alto este grupo de calificación son simplemente las estrellas aquí mismo este es un grupo de un montón de estrellas así que ¿cómo hago eso así que eso es solo esto así que si el grupo de calificación estaba visible es un alternar a la derecha así que si hago clic en él una vez que hace clic, se apaga, por lo que es un interruptor, quiero decir que se enciende y se apaga así, así que básicamente, si está visible actualmente, lo ocultaremos, de lo contrario, lo mostraremos, está bien, ¿qué pasa con el ? macro que está asignada a ese pozo que se llama calificación seleccionar cuando selecciono una calificación quiero que esa calificación aparezca ahora ¿cómo lo hacemos bien? lo hacemos muy específicamente en los nombres que se crearon, así que si hago clic aquí y lo cambio eso una vez más y selecciono aquí y voy a mostrar en estos números, echemos un vistazo dentro de lo que tenemos aquí, así que mire esto, les he dado nombres muy específicos, la clasificación uno es esa una estrella aquí abajo, vamos mueve esto un poco más la calificación dos es el mismo nombre para esas dos estrellas s o si un usuario selecciona cualquiera de los dos, se llama calificación dos calificación tres obviamente no vamos a repasar a todos, pero básicamente todos se nombran en función de la calificación en la que están dentro de la calificación cinco observe que la calificación cinco tiene cinco formas diferentes que todos se llaman igual, así que cuando un usuario selecciona uno de esos, sé que se llama calificación cinco, si el usuario selecciona uno de estos, sé que se llama calificación cuatro, si elimino la palabra calificación, ¿qué es lo que me queda? me queda uno dos tres cuatro o cinco si tomo eso y coloco ese uno dos tres o cuatro o cinco directamente dentro de b6 puedo establecer la calificación y luego todo lo que tengo que hacer es establecer la forma para que el nivel de tasa sea el dimensión más larga el nivel de tasa es igual a reemplazar recuerde que estamos eliminando la calificación de palabra que estoy reemplazando con nada estamos usando el collar de la aplicación bien ahora lo que voy a hacer es ir por cada forma de rayo en las recetas si la calificación de estrellas es cero, entonces vamos a ocultar primero que nada quiero ocultar cualquier calificaciones correctas, así que cuando cambio la calificación, si cambio esto de 2 a 4, necesito asegurarme de que estamos ocultando todo lo demás primero, no sé qué hay actualmente , probablemente podría saberlo, pero quiero ocultar todos los demás por si acaso, así que lo mejor que puede hacer es ocultar todo lo correcto que pueda convertir la palabra calificación de estrellas todo lo que contiene calificación de estrellas voy a ocultar, así que estamos haciendo eso aquí todo contiene calificación de estrellas estoy ocultando, no estamos eliminando ni ocultando, entonces lo que quiero hacer es el nivel de tasa de formas correctas de la receta, recuerde que es 1 y la calificación de estrellas que quiero mostrar quiero mostrar solo la que se basa en el nivel de tasa que establecemos aquí si han seleccionado dos a continuación, quiero configurar b6 en ese nivel de calificación, luego quiero mostrar el grupo de calificación, quiero ocultar eso, discúlpeme, quiero ocultar el grupo de calificación, no necesitamos eso y el cambio de calificación que quiero para ocultar también, entonces, ¿qué significa eso que significa que cuando seleccionan algo aquí queremos ocultar esto bien y quiero ocultar esto y quiero mostrar solo la calificación que seleccionaron así, así que eso es todo lo que tenemos que hacer ahora cuatro ahora tan pronto como lo guarden , ese cuatro se guardará en la base de datos eso es todo tenemos que hacerlo de manera relativamente simple , está bien, déjame asegurarme de que lo hemos repasado, haz una revisión rápida para ver si cubrimos todo lo que cubrimos, cómo crear categorías dinámicamente, cómo buscar recetas según el nombre de la receta y los ingredientes, cómo cargar esas recetas. basado en uno de esos filtros o basado en una selección de esos cómo cargar esos cómo cargar los ingredientes y cómo cargar esos pasos cómo seleccionar y cargar y cargar esas imágenes no creo que hayamos repasado la navegación pero está bien, es muy simple cómo buscamos una imagen, cubrimos eso aquí con la navegación, también sabemos cómo borrar una imagen, también sabemos cómo rotar la imagen, repasamos cómo crear una lista desplegable realmente genial, también la macro que ha sido asignado a allí también es el conmutador, en otras palabras, también la macro, déjame ver que es un grupo, pero si seleccionas en cualquier individuo, inicia la macro, déjame seleccionar en el individuo, la macro que se ha asignado también es el conmutador que es un poco importante, así que tal vez ¿Qué pasa si se pliega con cinco estrellas? Tenga en cuenta que no puede seleccionar a la derecha, no puede seleccionar en el cuadro, pero puede seleccionar aquí, por lo que es la misma acción seleccionar en las estrellas o seleccionar en la celda misma si es una estrella y nosotros seleccione en una celda o si agregamos nuevo a la derecha y seleccionamos en una celda, queremos que esos mismos aparezcan a la derecha o haciendo clic aquí queremos que aparezcan, así es como lo hacemos simplemente seleccionando ejecutar la misma macro aquí, está bien, entonces le mostraremos que le estoy mostrando cómo eliminar y guardar los pasos correctos cómo rotar esta imagen realmente genial cómo usar crear una presentación de diapositivas genial en Excel guardar y eliminar recetas borrar las imágenes imprimir las recetas enviar las recetas por correo electrónico y probablemente algo me olvidé bien entonces agregaré a esto, crearé funciones, pero realmente depende de ti, qué tipo de función te gustaría ver en esto, me perdí algo, necesito concentrarme más en eso , déjame saber tu opinión porque yo Estoy poniendo todo eso junto con una nueva capacitación y un nuevo libro de trabajo actualizado, todo estará dentro de nuestro Patreon, así que espero que se unan a nosotros allí, es una plataforma increíble y cuando alcancemos los 500 patrocinadores, habrá un nuevo curso gratuito. para todos allí, será increíble, por supuesto, todos nuestros patrocinadores entienden que tan pronto como lleguemos a 500, estamos alrededor del 20 22 por ciento allí, así que en unos meses estaremos allí o menos, dependiendo de usted, así que únase a nosotros allí es solo unos pocos dólares al mes y realmente nos ayudaría, muchas gracias por este increíble administrador de recetas, la semana que viene será una nueva y nos vemos entonces