Traducir el blog

Mostrando entradas con la etiqueta VBA. Mostrar todas las entradas
Mostrando entradas con la etiqueta VBA. Mostrar todas las entradas

PA3 - Cómo programé la comparativa animada

🔝To translate this blog post to your language, select it in the top left Google box.



    Mi comparativa animada

    En este artículo explicaré lo que he aprendido en dos días para conseguir programar una comparativa animada, gracias a la Programación Asistida por IA, que te animo a que la uses para mejorar como programador.

    En este artículo puedes probar la Comparativa animada y los botones de Repetir animación:


    Por supuesto que publicaré las PROMPTS (SOLICITUDES en español) con las que he guiado a la IA de Microsoft Copilot para obtener este aspecto de la comparativa animada.


    Vídeo de la comparativa animada

    En este vídeo verás la comparativa animada.


    Cómo programé la comparativa animada

    Hace dos semanas le hice varias preguntas a la IA, y la contestación de Microsoft Copilot está en estos enlaces:

    Con estas cinco preguntas, la IA me ofreció una explicación bastante clara sobre la Programación por Pares y la Programación Asistida, además de proporcionarme una imagen comparativa que se muestra a la derecha de este texto.

    El problema es que se colaron bastantes errores en el texto de la imagen: "Dos deansolladores humans", "Entorno comparrido", "Ejecución y y depuración en cónjusitó", "Sugerencias y correcciónes", "Transferencia de conveinnento".

    Aquí no voy a poner las preguntas que le hice a la IA para que corrigiera los textos de la imagen, cosa imposible, o para que generara los textos correctos en archivos tipo .docx o .xlsx o .pptx. Me indicaba los pasos manuales a seguir, que eran muchos, pero no generaba automáticamente los archivos Word ni Excel ni PowerPoint, lo que era muy frustrante...

    Como son gratuitas, le hice unas cuantas preguntas más a la IA:


    Programación Asistida de código HTML + CSS + JavaScript

    No conseguí los textos correctos en la comparativa hasta que le pedí:

    La imagen resultante está a la derecha, y no se parece a la imagen generada previamente por la IA, aunque se puede integrar en el blog porque está diseñada con HTML + CSS.

    Le falta añadir los iconos y que también sean animadas la cabecera y el pie de la comparativa y la última fila que es estática.

    En los siguientes enlaces comienza la Programación Asistida por la IA para mejorar el código HTML + CSS + JavaScript de la comparativa animada.

    Le hice varias preguntas sobre esta versión animada a la IA, pues yo no he usado prácticamente CSS y necesitaba aprender a programar si quería incrustar la comparativa animada en mi blog:

    Después de varias consultas conseguí que generara el primer icono.

    El procedimiento no me pareció efectivo, por lo que extraje los 18 iconos desde la imagen de la comparativa con la aplicación Fotos de Windows 11:

    Le hice varias preguntas más:

    Además necesitaba asistencia para repetir la animación:

    Como no sabía nada de la cantidad de animaciones que se pueden generar en CSS, estuvo platicando con la IA sobre algunas de ellas, pero es tan extenso el tema que aquí no voy a enlazar la animada charla que tuve con la IA y las pruebas que hice con algunos de los tipos de animación que ofrece CSS.

    Destaco aquí las animaciones que decidí usar:

    • Para la cabecera: animation: bounceWave 3s ease-out forwards;
    • Para las filas: animation: fadeIn 0.8s ease forwards;
    • Para el pie animation: bounceWave 5s ease-out forwards;

    Lo que me faltaba por resolver era:

    Y con todas esas SOLICITUDES (PROMPTS en inglés) conseguí respuesta a todas mis preguntas y conseguí resolver algo que no sabía programar hasta hace unos días: una comparativa animada con código HTML + CSS + JavaScript, que puedes probar aquí:

    Si necesitas ayuda en algún paso concreto de cómo programé la comparativa animada, puedes consultarme a mí y te contestaré en modo Programación Remota por Pares o en Pareja.

    ¡¡¡ O mejor aún, puedes preguntar directamente a la IA en modo Programación Asistida !!!


    Mis métodos de programación

    Le he pedido a la IA una tabla con los métodos de programación usados en la comparativa animada:

    En el siguiente enlace está la respuesta de la IA de Microsoft Copilot en formato tabla HTML + CSS, y un poco más abajo la tabla creada con algunos ajustes adicionales:


    Métodos de Programación Usados en la Comparativa
    Programación Declarativa
    Uso de CSS para definir estilos, animaciones y estados sin indicar pasos imperativos. (Ej.: @keyframes, animation, flexbox).
    Programación Imperativa
    JavaScript ejecutando instrucciones paso a paso para reiniciar animaciones y manipular elementos.
    Manipulación del DOM
    Selección y modificación de elementos HTML mediante querySelectorAll y style.
    Programación Basada en Eventos
    El botón “Repetir animación” usa un evento onclick para ejecutar código cuando el usuario interactúa.
    Reflow Forzado
    Técnica avanzada usando offsetWidth para reiniciar animaciones CSS sin recargar la página.
    Diseño Modular
    Separación clara entre HTML, CSS y JavaScript para mantener el código limpio, escalable y fácil de mantener.


    Cómo programé el índice automático desplegable

    Al principio de este artículo aparece un índice automático desplegable, que conseguí programar asistido por la IA, mediante las siguientes SOLICITUDES:

    Para que funcione en teléfonos ¿inteligentes? he tenido que mostrar siempre mi blog en modo escritorio:

    Con esto consigo crear un índice automático desplegable en cualquier artículo de mi blog y usarlo tanto en el escritorio de Windows como en el teléfono con Android.

    El índice se puede plegar y desplegar manualmente, y reconoce automáticamente las etiquetas h4 con class="indice" como partes integrantes del índice automático.

    Al pulsar los botones: Volver al índice se hace scroll hacia arriba hasta llegar al índice.

    ¿Quieres que este índice automático desplegable aparezca en los próximos artículos?


    Mis artículos sobre Programación Asistida

    Sigue todo lo que escribo sobre Programación Asistida para mejorar el Mapamundi con relojes desde aquí:

    Me alegrará saber si este proyecto te parece interesante.

    Deja un comentario y te lo agradeceré.

    PA2 - Programación por Pares vs Programación Asistida

    🔝To translate this blog post to your language, select it in the top left Google box.



      Programación por Pares

      Con la Programación por Pares o Programación en Pareja (Pair Programming en inglés), no se puede aprender a programar, porque se trata de emparejar a dos expertos en un determinado lenguaje de programación para mejorar el código escrito por ambos.


      Programación Asistida

      Con la Programación Asistida por IA (Vibe coding) si se puede aprender a programar un nuevo lenguaje de programación, que es lo que acabo de hacer en dos días.

      He pasado de usar el lenguaje HTML como un aficionado a programarlo como un profesional, aunque sigo sin ser un experto en HTML, CSS y JavaScript.

      Con lo que he conseguido diseñar el código que muestro más abajo, y he podido incrustar la comparativa entre los dos métodos de programación dentro del artículo de Blogger que estás leyendo ahora mismo, justo debajo de estas líneas.


      Comparativa animada

      Con una pizca de HTML, otro poco de CSS y el resto de JavaScript he conseguido programar la siguiente comparativa animada, con botones para repetir la animación.

      Pero no la habría sabido programar sin la inestimable ayuda de la Programación Asistida con la IA de Microsoft Copilot.


      ATENCIÓN: Gira el móvil o celular en posición horizontal y ajusta el zoom con dos dedos para ver claramente la siguiente comparativa.

      Comparativa:
      Programación por Pares vs Programación Asistida
      Programación por Pares
      Programación Asistida
      Dos desarrolladores humanos
      Humano + IA (Asistente)
      Simétricos, cambio de roles
      Asimétricos, humano conduce, IA asiste
      Debate y negociación
      Sugerencias y correcciones
      Turnos de 15–30 minutos
      Asistencia rápida y continua
      Entorno compartido
      Limitación del contexto
      Ejecución y depuración en conjunto
      La IA no ejecuta el código
      Detectados entre ambos
      Riesgo de fallos sutiles
      Experiencia compartida
      Transferencia de conocimiento
      Colaboración con la Inteligencia Natural Asistencia de la Inteligencia Artificial


      Ventajas e inconvenientes de la comparativa animada

      Esta tabla la creó la IA mediante estas tres solicitudes:

      Ventajas de usar animaciones Inconvenientes de usar animaciones
      Mejoran la comprensión: guían la mirada y ordenan la información. Pueden distraer: si se usan en exceso o sin un propósito claro.
      Aumentan la atención: el movimiento atrae la vista de forma natural. Requieren control de estados: si el estado final no está bien definido, el elemento puede quedar oculto.
      Dan sensación de profesionalidad: una entrada suave o un glow sutil elevan la calidad visual. Reiniciarlas no es trivial: a veces hay que usar trucos como forzar reflow para reiniciar la animación.
      Son ligeras: las animaciones CSS consumen pocos recursos y funcionan bien en móviles. Pueden afectar a la accesibilidad: usuarios sensibles al movimiento pueden necesitar animaciones más suaves o desactivadas.
      No requieren librerías externas: todo se hace con CSS y el propio navegador. Dependencia del orden de carga: en entornos como Blogger, si el script se carga antes que los elementos, los eventos pueden fallar.
      Fáciles de mantener: cambiar duración, suavidad o estilo no rompe la estructura. Compatibilidad variable: algunos efectos avanzados (como ciertos filtros) pueden verse distinto según el navegador.
      Escalables: se pueden añadir más elementos animados sin reescribir la base. Riesgo de saturación visual: si todo se mueve, nada destaca y el mensaje se diluye.


      Cómo programé la comparativa animada

      En el próximo artículo explicaré cómo he conseguido hacer la comparativa animada en dos días, para lo que necesito bastantes más días, pues tengo que recoger todas las ideas que he aprendido durante el proceso de aprendizaje con la Programación Asistida por IA.

      Por supuesto que publicaré las PROMPTS (SOLICITUDES en español) con las que he guiado a la IA de Microsoft Copilot para obtener la comparativa animada.


      Vídeo de la comparativa animada

      En este vídeo verás la comparativa animada.


      Cómo programé el índice automático desplegable

      Al principio de este artículo aparece un índice automático desplegable, que acabo de programar asistido por la IA en dos horas.

      También lo pienso explicar en el próximo artículo, además de explicar cómo hacer los botones: Volver al índice, como el de aquí abajo, que al pulsarlo hace scroll hacia arriba hasta llegar al índice.

      ¿Quieres que este índice automático desplegable aparezca en los próximos artículos?


      Mis artículos sobre Programación Asistida

      Sigue todo lo que escribo sobre Programación Asistida para mejorar el Mapamundi con relojes desde aquí:

      Me alegrará saber si este proyecto te parece interesante.

      Deja un comentario y te lo agradeceré.

      PA1 - Mapamundi con relojes en Excel

      🔝To translate this blog post to your language, select it in the top left Google box.



        DEDICATORIA

        Dedico este y los próximos artículos a mi amigo Fernando, el mejor programador que he conocido en mi vida profesional, con quien he compartido muchas sobremesas y que, recién jubilado, se mudó a vivir a Pareja (pueblo de Guadalajara), escapando de los madriles.


        Cambios en el Mapamundi con relojes

        Para no perderte en el laberinto de los cambios de horario de invierno y de verano, lee estas páginas:

        O mejor aún, descarga la nueva versión del Mapamundi con relojes en Excel, que he diseñado a partir de las versiones anteriores que publiqué en mi blog:

        La nueva versión tiene este aspecto y permite saber la hora en cualquier ciudad del mundo:


        La nueva versión del Mapamundi con relojes la he diseñado con la inestimable ayuda de Microsoft Copilot, una IA generativa que permite la Programación Asistida (Vibe coding), de la que hablaré más adelante.


        Descarga el nuevo Mapamundi con relojes

        Descarga la última versión del Mapamundi con relojes, en continua evolución, desde este enlace:

        Las macros del archivo descargado están bloqueadas por defecto. Para desbloquear las macros debes modificar las Propiedades del archivo siguiendo estas instrucciones:

        Abre el archivo y presiona el botón: Habilitar edición cuando aparezca el aviso de VISTA PROTEGIDA.

        Presiona el botón: Habilitar contenido cuando aparezca la ADVERTENCIA DE SEGURIDAD Las macros se han deshabilitado o se deshabilitó parte del contenido activo.

        Las macros no están protegidas para poder analizar fácilmente el código VBA. Las hojas están protegidas sin contraseña, para poder analizarlas y para evitar que los usuarios alteren las fórmulas.

        ATENCIÓN: Se puede modificar este libro de Excel respetando esta licencia:

        Creative Commons — Atribución-NoComercial-CompartirIgual-No portada — CC BY-NC-SA 4.0


        Vídeo: Mapamundi con relojes

        En este vídeo explico cómo usar el Mapamundi con relojes.

        Te agradecería que me comentaras cualquier sugerencia de mejora o los errores que deban corregirse en una próxima versión.


        Programación en Pareja

        Mi carrera profesional acabó en 2020 (año de la pandemia) sin haber usado la Inteligencia Artificial - IA, pues el uso generalizado de la IA comenzó en el año 2022, coincidiendo con la aparición y expansión de los modelos de IA generativa como ChatGPT.

        Lo que si conocí fue la Programación en Pareja o Programación por Pares (Pair Programming), que es una técnica de desarrollo ágil, especialmente con la Programación Extrema (Extreme Programming - XP)donde dos desarrolladores trabajan juntos en el mismo código al mismo tiempo, compartiendo pantalla, teclado y ratón. Uno escribe y el otro revisa, y ambos intercambian roles con frecuencia. Esto mejora la calidad del código, acelera el aprendizaje y reduce errores.

        La Programación en Pareja o Programación por Pares se denomina así porque siempre hay dos programadores, que intercambian sus roles regularmente:

        • Conductor/Piloto: es el que escribe el código.
        • Navegador/Copiloto: es el que revisa el código, detecta errores, propone mejoras y piensa en el diseño general.

        Siempre he creído que este tipo de programación es el mejor para generar código, aunque pocas veces la he practicado, pues hacen falta dos programadores para generar un único código, y los gestores de proyectos aún piensan que cada programador haga su tarea y se responsabilice de ella, sin contar con una pareja de programadores, cuando es más rápido y eficaz que dos programadores codifiquen juntos aprendiendo el uno del otro.

        Con el teletrabajo se creó la variante de Programación Remota en Pareja (Remote Pair Programming), donde ambos desarrolladores trabajan desde lugares separados usando herramientas de colaboración remota en tiempo real. Yo no la he probado, pues suelo programar habitualmente solo... ¡Hasta hace poco!


        Programación Asistida

        Este es el primer artículo sobre Programación Asistida por IA, que me ha servido para diseñar la última versión del Mapamundi con relojes en Excel, y para compartir mis experiencias de programación con los lectores de mi blog.

        Los títulos de cada uno de los artículos de esta serie comenzarán con PA y un número de artículo, para indicar que se refieren a la Programación Asistida (PA).

        La Programación Asistida por IA (Vibe coding) permite a programadores solitarios desarrollar software que antes requería un equipo de ingeniería.

        "La nueva relación entre los programadores y la inteligencia artificial será de colaboración, en la que las herramientas automatizadas incrementarán la productividad y la eficiencia, mientras que el conocimiento y la experiencia humana seguirán siendo esenciales para incrementar la calidad del software."


        Programación por Pares vs Programación Asistida

        ¿Cómo he programado el nuevo Mapamundi con relojes?

        Con la inestimable ayuda de Microsoft Copilot, una IA que permite codificar mediante Programación Asistida.

        Gracias a MS Copilot he podido encontrar bugs, mejorar y comentar el código VBA de la última versión del Mapamundi con relojes, que puedes descargar más arriba y que está en continua evolución, pues no me resisto a seguir consultando a la IA, que está activa 24x7 y deseando ayudarme.

          De momento, quédate con esta comparativa:


          Mis artículos sobre Programación Asistida

          En los próximos artículos de esta serie sobre Programación Asistida, os contaré cómo la IA me ha ayudado y sigue ayudándome a realizar cambios en el código VBA e incluso en las hojas de Excel.

          Podrás seguir los nuevos artículos desde aquí:

          Me alegrará saber si este proyecto te parece interesante.

          Deja un comentario y te lo agradeceré.

          Cómo crear hipervínculos inteligentes con fórmulas

          🔝To translate this blog post to your language, select it in the top left Google box.


          Inteligencia Artificial errónea

          Ahora que está tan de moda la Inteligencia Artificial (IA) con minúsculas, no hay que olvidar que su origen está en la INTELIGENCIA NATURAL (IN), con mayúsculas...

          En Excel hay un problema para crear hipervínculos inteligentes, que no generen error al hacer clic en el enlace generado por el hipervínculo si no existe el enlace a un archivo...

          Le he preguntado a la IA si se puede saber si un archivo existe usando solamente fórmulas, ¿¡y me ha dicho que sí!?

          Pregunta a la IA:

          Cómo usar la función HIPERVINCULO en Excel para detectar si un archivo existe, pero solamente con fórmulas, sin código VBA.

          Respuesta de la IA:

          Entiendo. Aunque es un poco más complicado sin VBA, puedes usar una combinación de fórmulas y el manejo de errores en Excel para lograr algo similar. Aquí te dejo una solución basada en fórmulas que podría ayudarte:

          1. Primero, necesitas definir una ruta de archivo en una celda. Por ejemplo, en `A1` coloca la ruta del archivo, como `C:\Ejemplo\archivo.txt`.

          2. Después, usa una combinación de funciones para verificar si el archivo existe y crear el hipervínculo. Desafortunadamente, Excel no tiene una función nativa para verificar la existencia de un archivo, pero puedes usar una fórmula que intenta abrir el archivo y maneja el error si no se puede abrir.

          =SI.ERROR(HIPERVINCULO(A1; "Abrir archivo"); "Archivo no encontrado")

          Esta fórmula intenta crear un hipervínculo basado en la ruta en `A1`. Si no puede hacerlo (porque el archivo no existe), muestra "Archivo no encontrado".

          Es importante tener en cuenta que esta fórmula funciona solo si el archivo existe y es accesible desde la ruta proporcionada. Si necesitas una verificación más robusta, VBA sería la mejor opción, pero esta fórmula puede ayudarte en muchos casos.

          ¿Hay algo más en lo que pueda asistirte? 😊

          Esta fórmula no es válida, pues la fórmula no dispara ningún error, sin importar que el archivo realmente no esté disponible en esa ruta. Solo se sabe si existe o no existe el archivo a posteriori, después de hacer clic en el enlace generado por el hipervínculo.


          Think Deeper (Pensamiento Profundo) de Microsoft Copilot

          Desde hace 2 meses se le puede pedir a la IA de Microsoft Copilot que piense más profundamente (Think Deeper). Su respuesta está en este enlace:

          La respuesta de la IA es clara, solo cuando intentas usar el enlace generado con fórmulas (haciendo clic en él) es cuando Excel podría mostrar un error en caso de que el archivo no esté disponible.

          Lo que quiere decir es que no nos podemos quedar con la primera respuesta dada por la IA, sino ser críticos y probar la respuesta antes de darla por buena. Y mejor, preguntarle a una IA más evolucionada la misma pregunta, pues difieren totalmente las respuestas.

          En la respuesta con pensamiento profundo del enlace anterior, indica una alternativa usando la función INDIRECTO dentro de la fórmula:

          =SI(ESERROR(INDIRECTO("'C:\Ruta\Archivo.xlsx'!Hoja1!A1")); "No existe o está cerrado"; "Existe y está abierto")

          Este método tiene dos limitaciones importantes:

          1. El archivo referenciado debe ser un archivo Excel y estar abierto. Si está cerrado, INDIRECTO no puede obtener la referencia y devolverá un error, aunque el archivo exista.
          2. No se está usando la función HIPERVINCULO. Es una estrategia diferente para tratar de "comprobar" el archivo mediante la obtención de datos de él.

          La solución para detectar la existencia de archivos, tanto si son Excel como si no, pasa por usar:

          • Macros en VBA: Permiten un acceso directo al sistema de archivos y una verificación precisa.
          • Power Query: Permite listar archivos de una carpeta para luego usar fórmulas y determinar si un archivo está presente, aunque implica configurar una consulta externa, que no vamos a implementar, pues se sale de los límites planteados en este artículo.
          • Macros de Excel 4.0: Esta otra alternativa no la da la IA. No son macros VBA, sino unas macros más antiguas que se programan como fórmulas, por lo que a efectos prácticos sería la solución buscada inicialmente con fórmulas.


          ¿Cómo crear hipervínculos inteligentes en Excel?

          Para crear hipervínculos inteligentes hace falta ser inteligente y/o consultar un foro de Excel:

          No se pueden usar las respuestas de la IA sin haberlas probado concienzudamente.

          Tampoco se puede aceptar sin probar la documentación de Soporte de Microsoft Excel, que suele incluir errores u omisiones, como explicamos en el enlace anterior al foro de Excel.

          Lo más inteligente es probar las respuestas que entrega la IA para ver, en este caso, si son la solución al problema de crear hipervínculos inteligentes en Excel.

          En la columna A está el nombre y el tipo de archivo.

          En esta imagen hay 5 alternativas dadas por la IA y solamente dos de ellas son correctas para detectar si existe el archivo con la función HIPERVÍNCULO:

          • Columna B: Fórmula normal, que genera el enlace aunque no exista el archivo:

            =HIPERVINCULO(miRuta&[@Archivo];"Enlace "&[@Archivo])

          • Columna C: Fórmula con la función SI.ERROR, que no detecta si existe el archivo y siempre genera el enlace al archivo:

            =SI.ERROR(HIPERVINCULO(miRuta&[@Archivo]; "Enlace "&[@Archivo]); "No existe "&[@Archivo])

          • Columna D: Fórmula con la función SERVICIOWEB, que siempre indica que no existe el archivo:

            =SI(ESERROR(SERVICIOWEB(URLCODIF("file:///" & miRuta&[@Archivo])));"No existe "&[@Archivo];"Enlace a "&[@Archivo])

          • Columna E: Fórmula que llama a una UDF con macros VBA, que detecta la existencia del archivo:

            =HIPERVINCULO(miRuta&[@Archivo];SI(DetectarArchivo(miRuta&[@Archivo]);"Enlace a "&[@Archivo];"No existe "&[@Archivo]))

          • Columna F: Fórmula con una macro de Excel 4.0, que detecta la existencia del archivo:

            =HIPERVINCULO(miRuta&[@Archivo];SI(SI.ERROR(COINCIDIR([@Archivo];misArchivos;0);0)>0;"Enlace a "&[@Archivo];"No existe "&[@Archivo]))

          Las únicas fórmulas correctas son las de las columnas E y F.


          Detección de archivos con macros VBA

          En la columna E se llama a una función UDF de macro VBA:


          Detección de archivos con macros de Excel 4.0

          En la columna F se usa el nombre definido misArchivos para buscar si existe un determinado archivo entre todos los archivos de una carpeta definida por el nombre definido miRuta.

          misArchivos: =TRANSPONER(ARCHIVOS(miRuta&"\*")) 

          Siendo la función ARCHIVOS una macro de Excel 4.0, que fue anterior a las macros VBA, pero que aún funcionan en todas las versiones de Excel.

          Lee más información creada por la IA de esta función en el siguiente enlace:

          Por lo que las fórmulas que llaman a las funciones con macros de Excel 4.0 son las que detectan la existencia de los archivos antes de hacer clic en el enlace generado por el hipervínculo

          Con esta solución alternativa no es necesario programar en VBA, ¡y se usan solamente fórmulas!, que fue la premisa de la consulta que se le hizo inicialmente a la IA y para la que la IA no dio una respuesta acertada.


          Descarga los hipervínculos inteligentes

          Descarga los hipervínculos inteligentes desde este enlace:

          Las macros del archivo descargado están bloqueadas por defecto. Para desbloquear las macros debes modificar las Propiedades del archivo siguiendo estas instrucciones:

          Las macros de Internet están bloqueadas de forma predeterminada en Office - Deploy Office | Microsoft Learn

          Abre el archivo y presiona el botón: Habilitar edición cuando aparezca el aviso de VISTA PROTEGIDA.

          Presiona el botón: Habilitar contenido cuando aparezca la ADVERTENCIA DE SEGURIDAD Las macros se han deshabilitado o se deshabilitó parte del contenido activo.

          Las macros VBA no están protegidas, por lo que puedes analizarlas. La hoja no está protegida con contraseña.

          ATENCIÓN: Se puede modificar este libro de Excel respetando esta licencia:

          Creative Commons — Atribución-NoComercial-CompartirIgual-No portada — CC BY-NC-SA 4.0


          Video para crear hipervínculos inteligentes

          En este vídeo explico cómo crear hipervínculos inteligentes.

          Puede que algún día la IA indexe este artículo y sepa responder, ¡con conocimiento de causa!, cómo crear hipervínculos inteligentes con fórmulas de Excel, ¡aunque sean fórmulas antiguas!...

          Un juego del Rabino en Excel

          🔝To translate this blog post to your language, select it in the top left Google box.


          NUEVA REVISIÓN: A 6 de febrero de 2025, he subido una nueva revisión del juego con algunas correcciones de problemas y mejoras en el motor del juego.


          AVISO: En la red hay muchos juegos de cartas, escritos por ejemplo en Java o Python, pero al intentar descargarlos mi antivirus detecta amenazas en los ejecutables y los pone en cuarentena, pues son un riesgo para mi equipo.

          Pero esto no te pasará si descargas ¡¡¡ mi juego del Rabino en Excel !!!


          Un juego del Rabino en Excel

          Esta es la entrega final de una serie de artículos con los que he intentado diseñar en Excel un juego de cartas con una variante especial del Rabino.

          Ya me dirás si lo he conseguido.

          La variante que he programado es el Rabino que me enseñó mi padre cuando yo era un niño, y es el Rabino que juego muchas tardes con mi esposa. A los dos les dedico este entretenido juego.😘

          En este enlace encontrarás todos los juegos de cartas que he programado en Excel:

          En esta entrega final explicaré:

          ♥️  Cómo ganar una serie de partidas.

          ♠️  Qué datos se guardan de cada partida.

          ♦️  Cómo ver los resultados de las partidas.

          ♣️  Qué falta por hacer para mejorar este juego.

          La nueva funcionalidad de esta última entrega es poder jugar una serie de partidas, hasta que un jugador sobrepase los 100 puntos, con lo que perderá la serie de partidas, o hasta que un jugador cierre con una Escalera Real, en cuyo caso ganará la serie de partidas del Rabino.

          En la imagen se muestran los resultados de las últimas partidas, y cuántas series de partidas ha ganado cada jugador.

          ¡Vaya!

          ¡El Rabino en Excel me lleva ventaja!

          ¡Tengo que seguir retándolo a jugar más partidas!


          Vídeo del juego del Rabino

          En este vídeo verás la estadística de puntos de algunas de las muchas partidas que he jugado contra el Rabino en Excel, para así probar el motor del juego.


          Cómo ganar una serie de partidas

          Esta variante del Rabino no la he diseñado en plan profesional sino en plan didáctico, aunque he intentado ser lo más fiel posible a la manera de jugar entre dos jugadores.

          Una serie de partidas las gana el jugador:

          • Que cierra con una Escalera Real, con las 10 cartas combinadas en una sola escalera del mismo palo.
          • Si al sumar los puntos de la última partida, el otro jugador sobrepasa los 100 puntos en el total de la serie que se está jugando.


          Qué datos se guardan de cada partida

          Cuando acaba una partida se guardan sus datos:

          • Fecha y hora
          • Puntos de cada jugador.
          • Total de puntos de cada jugador de la serie de partidas.

          Si uno de los jugadores gana la serie de partidas, esa partida se colorea con un verde más oscuro, añadiendo un juego más a ese jugador.


          Cómo ver los resultados de las partidas

          Los datos se guardan en la hoja 'Juegos', con la macro del módulo modJuegos:

          • AnotarPuntos: Anota los puntos del juego a partir de la fila 21 de la hoja 'Juegos'.

          En la celda D18 está el total de las partidas jugadas.

          En las celdas D3 y J3 están las series de partidas ganadas por cada jugador.

          Para ver estos datos en la hoja 'Tapete' se usa la macro:

          • MostrarJuegos: Muestra u oculta los juegos de las partidas jugadas en una forma (shape) de Excel, creada con la cámara de Excel.

          TRUCO: Con esta macro se consigue crear una imagen estática de las partidas jugadas, escribiendo por segunda vez la fórmula sin rangos:

          Selection.Formula = ""

          Con lo que se consigue mejorar el rendimiento del juego, pues si se mantiene la fórmula de la cámara de Excel, la imagen es dinámica y se refresca y se recalcula continuamente. Por eso hay que igualar la fórmula dos veces, una con el rango de la foto y otra sin nada, como se ve en este código:


          Qué falta por hacer

          Para poder finalizar el diseño del juego aún falta bastante por hacer:

          1. Ajustar y optimizar el motor del juego, hecho con el complemento Solver.
          2. Corregir los defectos del juego y seguir mejorándolo.
          3. Documentar el juego profesionalmente...
          4. Barajar de forma menos aleatoria, pues la mayoría de los humanos no somos tan variables, y creo que nos gusta la rutina...
          5. Que el Rabino en Excel cierre alguna vez con Color o con Escalera Real, lo que es muy improbable que ocurra ahora... 
          6. Colocar las cartas de los dos jugadores en un arco, como si las tuvieras en la mano...
          7. Poder jugar dos humanos en remoto...
          8. Cualquier cosa que se te ocurra añadir a este juego de cartas, y seas capaz de programarlo, ya sea modificando las fórmulas de Excel o cambiando el código en VBA...

          Algún día puede ser que me dedique a ello. De momento, prefiero dejar las cartas a un lado, pues ya le he dedicado más de 3 meses al diseño de este juego del Rabino y quiero hacer otras cosas...


          Descarga un juego del Rabino en Excel

          Descarga esta variante del Rabino, compatible con las versiones de escritorio desde Excel 2010 hasta Excel para Microsoft 365.

          Las macros del archivo descargado están bloqueadas por defecto. Para desbloquear las macros debes modificar las Propiedades del archivo siguiendo estas instrucciones:

          Las macros de Internet están bloqueadas de forma predeterminada en Office - Deploy Office | Microsoft Learn

          Abre el archivo y presiona el botón: Habilitar edición cuando aparezca el aviso de VISTA PROTEGIDA.

          Presiona el botón: Habilitar contenido cuando aparezca la ADVERTENCIA DE SEGURIDAD Las macros se han deshabilitado o se deshabilitó parte del contenido activo.

          Las macros VBA no están protegidas, por lo que puedes analizarlas. Las hojas están protegidas con una contraseña que es fácil conocer, pues está guardada en VBA escrita en la constante: sContra.

          ATENCIÓN: Se puede modificar este libro de Excel respetando esta licencia:

          Creative Commons — Atribución-NoComercial-CompartirIgual-No portada — CC BY-NC-SA 4.0


          Más juegos de cartas en Excel

          En este enlace encontrarás todos los juegos de cartas que he programado en Excel:

          Me ayudarás si me indicas las erratas que encuentres y me digas qué mejoras le faltan a este juego...

          Mi lista de blogs