Traducir el blog

Problema 2: Errores en la nube de OneDrive

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


Este año ha comenzado con dos problemas detectados en Microsoft OneDrive, y que afectan directamente a mi blog de Excel:

En este artículo hablaré del segundo problema, que me impide crear código personalizado para insertar archivos Excel en mi blog, sin la posibilidad de interactuar con ellos.

Lo que es un grave problema, pues suelo insertar Excel en mi blog como herramienta didáctica de lo que se puede hacer con Excel, sobre todo dirigido a los lectores de mi blog que aún no han instalado Excel en sus equipos, para que se animen a instalar esta potente herramienta multiusos y para que la usen en su día a día.

En esta imagen animada se muestras los dos problemas con OneDrive:


Vídeo con los problemas de OneDrive

En este vídeo explico los problemas detectados en Microsoft OneDrive:


Problema 2: Errores en la nube de OneDrive

El problema 2 impide compartir archivos Excel desde la nube de OneDrive, si se han insertado de forma personalizada, que es lo habitual en mi blog.

Dentro de cualquier artículo, en el que hay un Excel insertado, avisa que:

No se puede cargar este elemento ahora.


Si con mi usuario de Microsoft 365 abro el enlace: No se puede cargar este elemento ahora. No abre ningún archivo, sino que abre la carpeta de Inicio de OneDrive.

Esto solamente me ocurre desde hace dos meses con mi usuario de la suscripción a Microsoft 365. No me ocurre cuando no tengo abierta la sesión con mi usuario, tampoco cuando uso otro usuario, o cuando abro el blog en un navegador dentro de una ventana de incógnito o en privado.

Este caso no es un problema para los visitantes de mi blog, pues ven el elemento insertado dentro de los artículos del blog, por ejemplo el Excel incrustado con el que pueden interactuar.


Pero este problema afecta sobre todo a la manera de insertar los archivos Excel en mi blog, lo que si es un problema para mis lectores, ya que no me resulta tan fácil seguir escribiendo artículos con archivos Excel incrustados en mi blog...


Error al personalizar la inserción de Excel

En este enlace se explica cómo:

Pero al intentar personalizar la inserción de un archivo Excel en un blog o una página web crea una etiqueta <iframe> errónea.

Si selecciono un archivo Excel para crear el código con el que insertarlo en mi blog, por ejemplo genera este código:

que es válido, pero únicamente sirve para insertar el archivo ¡sin ninguna personalización!

En la imagen hay un enlace para:

Personalizar la forma en que este libro insertado se mostrará a otros usuarios

Haciendo clic en ese enlace, se abre una ventana para personalizar la inserción de un archivo en un blog o en una Web, y ahí se refleja el problema 2 en toda su extensión.

En la imagen de la derecha hay un ejemplo de la ventana para personalizar la inserción del archivo, con la posibilidad de modificar lo siguiente:

  • Qué se mostrará
  • Apariencia
  • Interacción
  • Dimensiones

Lo interesante es poder personalizar la Interacción para:

  • Permitir que los usuarios ordenen y filtren los datos
  • Permitir que los usuarios escriban en las celdas (sus cambios no se guardarán)
  • Comenzar siempre con esta celda seleccionada

Con la personalización seleccionada en la imagen anterior, se genera el siguiente Código para insertar:

PROBLEMA: Este código no hace referencia al archivo Excel, ya que aparece un interrogante como origen (source) del archivo: src="?

Si se quiere Ver en tamaño real, aparece el mensaje: Not Found

Este segundo problema tiene mucha relación con el primer problema detectado, pues los dos problemas ocurren desde hace unos dos meses, y lo que ahora es un interrogante (src="?) antes era un identificador del archivo Excel, que ahora no deja descargar.

Como ejemplo usaré el mismo artículo del primer problema:

En dicho artículo está incrustado el siguiente código, que se generaba antes de ocurrir el segundo problema:

Donde se referenciaba al identificador del archivo: 103723, que ya comenté en el primer artículo:

y la referencia a ese identificador ha desaparecido en el código generado para personalizar la inserción del archivo Exel, con lo que no se puede insertar de forma personalizada en mi blog...


He denunciado el problema al Soporte de Microsoft OneDrive

Hace dos meses denuncié de forma privada este problema al Soporte de Microsoft OneDrive, ¡y aún estoy esperando respuesta!, por lo que lo publico aquí por si alguien del equipo de desarrollo de OneDrive se digna atender este problema...

El viernes volví a communicar el problema y ayer domingo me contactó un miembro del Soporte Técnico de Microsoft OneDrive, pidiendo más pantallazos y una grabación de "mi problema", que comparto aquí:

Cuando me conteste prometo publicar un nuevo artículo sobre los problemas de OneDrive.

Mientras tanto, intentaré crear un código personalizado con la fuente (source - src) correcta, como workaround, como una solución alternativa para poder seguir insertando archivos Excel en mi blog, que creo que pueden seguir siendo útiles para mis lectores como herramienta didáctica.

También he escrito un comentario en la Comunidad de MS OneDrive en inglés, por si lo quieres votar, a ver si Microsoft revierte pronto el error en el código generado al personalizar un archivo insertado:

Esperaré sentado, pues la experiencia me dice que las respuestas de Microsoft se hacen esperar...

Problema 1: Enlaces rotos en OneDrive

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


Este año ha comenzado para mí con dos problemas detectados en Microsoft OneDrive, y que afectan directamente a mi blog de Excel:

En este artículo hablaré del primer problema. Reservo un nuevo artículo para el segundo problema.

Las evidencias de estos dos problemas están en cualquier artículo de este blog en los que aparezca uno de estos avisos, como muestra esta imagen animada:


Estos problemas son muy frustrantes para mí, pues me obligan a reeditar casi todos los artículos de mi blog, que son más de 300, para cambiar los enlaces de descarga desde OneDrive, y para cambiar la forma de insertar archivos desde OneDrive.

¡¡¡ Lo que es un verdadero latazo para cualquier bloguero !!!

Como no tengo ninguna esperanza de que Microsoft los solucione pronto, explicaré estos dos problemas, los pasos que he seguido para denunciar el problema a Microsoft, la solución alternativa (workaround) que me he propuesto para la resolución de cada problema y el plan para resolverlo tan pronto como me sea posible.

Sirva esta publicación como denuncia pública a Microsoft, por si a alguien más le ha pasado lo mismo, ya que aún no he recibido ninguna respuesta de la denuncia privada que puse hace un mes a Microsoft...


Vídeo con los problemas de OneDrive

En este vídeo explico los problemas detectados en Microsoft OneDrive:


Problema 1: Enlaces rotos en OneDrive

Para descargar los archivos Excel, que uso de ejemplo en los artículos de mi blog, hay dos enlaces diferentes según la fecha de publicación del artículo.

En las publicaciones de hace años, la descarga se hace desde Google Drive, con el botón: Excel Download, o desde el enlace a Microsoft OneDrive, por ejemplo desde este artículo:

En las publicaciones recientes, la descarga se hace desde uno de los dos enlaces, por ejemplo desde este artículo:


Los enlaces a Google Drive permiten descargar los archivos sin problemas. ¡Bien hecho Google Drive!

El problema está en los enlaces de descarga desde el enlace a Microsoft OneDrive pues, desde hace un par de meses, no permite la descarga apareciendo este mensaje:

Es posible que este elemento no exista o que ya no esté disponible

Es posible que alguien haya eliminado el elemento, que éste haya caducado o que no dispongas de permiso para verlo. Ponte en contacto con el propietario del elemento si deseas obtener más información.

No se por qué avisa OneDrive que el archivo es posible que no exista o no esté disponible, ¡cuando sigue estando en mi carpeta pública de OneDrive y disponible para su descarga!


¿Cómo descargaba hasta ahora los archivos desde OneDrive?

Vamos a verlo con el artículo del blog más leído últimamente:

Esta es la página web que se llama para descargar el archivo Excel desde OneDrive.

El acceso al archivo de descarga se identifica con un número después del signo de admiración (!). En este caso es el identificador: 103723

Hasta hace un par de meses este enlace era capaz de descargar el archivo:

Pero, como puedes comprobar si pinchas en este enlace, ahora genera el mensaje de aviso comentado más arriba y no se descarga desde OneDrive...


¿Qué problema tiene el enlace de descarga a OneDrive?

El problema es que esos enlaces han funcionado durante casi 15 años hasta que, hace unos dos meses, Microsoft cambió el identificador comentado para que no se pudiera usar para descargar archivos...

Lo que tengo claro es que no puedo denunciar a OneDrive por la rotura de los enlaces, ya que la forma de descargar archivos con dicho identificador no es la tradicional con la que se comparten los enlaces de descarga en OneDrive, que es con un enlace como éste:

Este enlace obliga a descargar manualmente el archivo, además de ser único para cada archivo que se comparte, con lo que hay que generar uno distinto por cada enlace de descarga de cada uno de los más de 300 artículo del blog...


¿Cómo resolver el problema con los enlaces a OneDrive?

La solución pasa por modificar ese enlace, modificando uno a uno todos los artículos del blog, cosa que no voy a hacer, ¡de momento!

No sólo eso, en los nuevos artículos que publique a partir de ahora, solamente se podrá descargar de Google Drive, por si Microsoft OneDrive algún día vuelve a permitir enlaces con el identificador comentado antes...


Buscador de artículos del blog afectado por este mismo problema

¡Vaya casualidad! Hoy hace justo dos años, publiqué un Buscador de mis artículos de Excel que está desactualizado, pero que permitía la descarga directa de cualquier archivo del blog desde este archivo Excel:

Se hacía desde la columna J, que contenía el identificador del Enlace a la descarga del archivo.

Como la técnica empleada es la misma que el problema que denuncio ahora, pues uso el identificador de cada archivo, también se han roto las descargas de mi buscador.

Lo que me obligaría a editar el buscador, copiando uno a uno todos los enlaces de descarga rotos, ¡lo que no es uno de mis propósitos para este año!


Problema 2: Errores en la nube de OneDrive

El segundo problema, derivado del actual comportamiento del identificador de los archivos públicos en OneDrive, da para escribir otro artículo:

¡Y habrá más!

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...

Jugando al Rabino en Excel - Parte 9

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


Parte 9 de un juego del Rabino

Esta es la novena parte de una serie de artículos con los que intento diseñar en Excel un juego de cartas con una variante especial del Rabino.

Al final de este artículo hay un enlace a todos mis juegos de cartas.

En esta Parte 9 explicaré:

♥️  Cuándo decide Excel acabar la partida.

♠️  Cómo elegir la carta comodín: Rabino o The Jolly.

♦️  Cómo ver u ocultar los puntos de cada jugador.

♣️  Qué falta por hacer para completar el desarrollo de este juego.

La principal novedad de esta entrega es que el motor del juego decide automáticamente cuándo acabar la partida, indicando qué jugador ha cerrado y los puntos de cada jugador, además de mostrar las cartas del jugador Rabino en Excel, que son las cartas de arriba ocultas durante la partida.


Vídeo con la Parte 9 del juego

En este vídeo verás una de las muchas partidas que he jugado contra el Rabino en Excel, y así probar el motor del juego.


Cuándo decide Excel acabar la partida

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

En esta Parte 9 ya se puede jugar una partida completa, y es el motor del juego el que decide si se cumplen las condiciones para acabar la partida, según las reglas del juego que están escritas en la hoja 'Ayuda'.

La nueva función: TestFinPartida, detecta si se puede acabar la partida en curso cerrando el primero de los dos jugadores que puede:

1) Cerrar con Escalera Real, asignando -100 puntos si las 10 cartas son del mismo palo y forman una sola escalera.

2) Cerrar con Color, asignando -25 puntos si las 10 cartas son del mismo palo y no están todas combinadas.

3) Cerrar con -10 puntos, si las 10 cartas están combinadas según las reglas del juego.

4) Cerrar con 1, 2 o 3 puntos, si hay 9 cartas combinadas y una carta sin combinar, esta carta debe ser un as (1), un dos (2) o un tres (3), asignando los puntos de la carta no combinada.

Al jugador que no ha cerrado se le asigna la suma de los puntos de las cartas sin combinar.

El jugador Rabino en Excel, con las cartas de arriba, avisa del cierre con un mensaje.

Al jugador con las cartas de abajo se le pregunta si cierra ya o si sigue jugando. Por ejemplo, para mejorar el cierre del jugador humano, en lugar de cerrar con 3, 2 o 1 puntos, podría intentar cerrar con -10 puntos. O también podría intentar cerrar con Color (-25 puntos) o con Escalera Real.

En el momento en que se decide finalizar la partida, se muestran las cartas de la fila de arriba del jugador Rabino en Excel, que estaban ocultas porque son las cartas de nuestro contrincante. Esto se consigue llamando a la macro: MostrarJugador2

La función TestFinPartida se apoya en varias celdas de la hoja 'Motor'.

Nuevas celdas en la hoja 'Motor':

  • Celda B15 - miCartaMarcaPila: Vale 1 si el motor del juego ha elegido una carta de la pila. Vale 0 si ha elegido una carta del mazo oculto.
  • Celda B17 - miFinJugador2: Fórmula con los puntos para tomar la decisión de cerrar el jugador 2: Rabino en Excel.
  • Celda B18 - miFinJugador1: Fórmula con los puntos para tomar la decisión de cerrar el jugador 1: Usuario de Excel.
  • Celda B20 - misPuntos2: Vale 1 si muestra los puntos del jugador 2.
  • Celda B21 - misPuntos1: Vale 1 si muestra los puntos del jugador 1.
  • Celda B22 - misPuntos0: Vale 1 si muestra los puntos del jugador 1 siempre y del jugador 2 cuando acaba la partida.
  • Columna R: Fórmulas para averiguar si un jugador cierra con Color, con las 10 cartas del mismo palo.
  • Columna S: Fórmulas para averiguar si un jugador cierra con Escalera Real.
  • Columna T: Fórmulas para controlar el buen funcionamiento del motor del juego, si todas las celdas valen 0. Será erróneo si alguna celda es mayor que cero.


Cómo elegir la carta comodín

Antes de comenzar una partida se puede elegir la carta comodín: Rabino o The Jolly.

Haciendo clic en la figura de un comodín se cambia al otro comodín mediante la macro: ElegirRabino

Solamente se permite elegir el comodín antes de iniciar la partida, tal y como se muestra en la imagen animada de la derecha, pues durante la partida no se ve el comodín.

El cambio de comodín se hace en la celda N2 (miRabino) de la hoja 'Baraja'.


Cómo ver u ocultar los puntos

Haciendo clic en la celda BO1 con un cero (0) se ven u ocultan los puntos de cada jugador, llamando a la macro: VerPuntos

Los puntos de las cartas de arriba solamente se ven al finalizar la partida, para no dar pistas durante la partida de las cartas combinadas por el motor del juego para el jugador Rabino en Excel.


Qué falta por hacer

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

  1. Guardar estadísticas de las partidas jugadas.
  2. Obtener el ganador de una serie de partidas.
  3. Ajustar y optimizar el motor del juego con el complemento Solver.
  4. Corregir los defectos del juego y seguir mejorándolo.

Los dos primeros puntos los veremos en la próxima entrega, que será la última de este curso sobre el diseño de un juego de cartas en Excel. Los otros dos puntos los dejo para más adelante...


Descarga la Parte 9 de un Rabino en Excel

Descarga la Parte 9 de 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 mis juegos de cartas programados en Excel:

Me ayudarás si me indicas las erratas que encuentres en este artículo, y si me comentas qué es lo que te gustaría ver en los próximos artículos.

Jugando al Rabino en Excel - Parte 8

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


Parte 8 de un juego del Rabino

Esta es la octava parte de una serie de artículos con los que intento diseñar en Excel un juego de cartas con una variante especial del Rabino.

Al final de este artículo hay un enlace a todos mis juegos de cartas.

En esta Parte 8 explicaré:

♥️  Que ya se puede jugar una partida completa contra el motor del juego.

♠️  Que Excel ya decide automáticamente qué carta jugar, marcando en un marco amarillo una carta del mazo o de la pila de descartes.

♦️  Que el motor del juego también decide qué carta tirar a la pila de descartes.

♣️  Cómo saber qué cartas ha combinado el motor del juego.

Si ves esta imagen es que algo ha fallado. La conseguí mientras hacía pruebas para marcar la carta que ha decidido jugar el Rabino en Excel, obtenida por el motor del juego, que es una combinación del complemento Solver y de código VBA.

Durante el juego, cuando le toque jugar a las cartas de arriba quedará marcada la carta a jugar con un marco de color amarillo, y solamente será marcada una carta, que será la que hay que jugar.

El motor del juego decide automáticamente qué carta jugar, marcando en un marco amarillo una carta del mazo o de la pila de descartes. Y también decide qué carta tirar a la pila de descartes.


Vídeo con la Parte 8 del juego

En este vídeo verás un par de partidas completas, que he jugado contra el motor del Rabino en Excel.

A continuación explicaré lo que no he querido contar en este vídeo para no hacer espóiler.


Cómo jugar una partida completa

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

En esta Parte 8 he ocultado las cartas de arriba, para que no se sepa que mano tiene el Rabino en Excel, aunque aún sigo mostrando el valor de las cartas sin combinar, para hacer más didáctico el juego...

Ya no se muestra ningún cuadro de diálogo, cuando Solver intenta resolver la combinación de cartas, y el motor del juego marca la siguiente carta que jugará nuestro contrincante del Rabino en Excel.

He cambiado la llamada al complemento Solver de Excel para que no salga ningún mensaje cuando se alcanza alguno de los límites, de tiempo por ejemplo, que he fijado intentando resolver las combinaciones posibles de las cartas del jugador Rabino en Excel.

En la macro ResolverCartas he modificado estas instrucciones:

' Ejecuta el análisis

result = Application.Run("Solver.xlam!SolverSolve", True, "ShowTrial")

' Finaliza el análisis

Application.Run "Solver.xlam!SolverFinish", 1

Y he añadido esta nueva macro:

Function ShowTrial(Reason As Integer)

ShowTrial = 0

End Function

En esta página en inglés se explica el uso de esta función para que, en lugar de que Solver se detenga por cualquier motivo mostrando el cuadro de diálogo: Mostrar solución de prueba, ahora no lo muestre y continúe intentando resolver la combinación de las cartas, sin necesidad de interactuar con el usuario del juego:

También he cambiado las opciones de Solver, para intentar mejorar su rendimiento, pero aún hay que optimizar esos valores algo más, por lo que seguiré estudiando esta página en inglés:


Cómo decide el motor del juego qué carta jugar

El motor del juego ya decide automáticamente cuál es la próxima carta que jugará el Rabino en Excel, marcando en un marco amarillo una carta del mazo o de la pila de descartes. También decide automáticamente qué carta tirar a la pila de descartes.

AVISO: La carta marcada en amarillo se debe escoger obligatoriamente, y el juego no permite elegir otra carta que no sea la que ha marcado el motor del juego.

Para hacer más realista el juego, la carta marcada en amarillo tiene que moverla el jugador humano, pues no cambia automáticamente de un lugar a otro.

En esta imagen animada el motor del juego marca en amarillo el Rey (K) de tréboles♣️, para que sea robado de la pila de descartes. A continuación intenta resolver las posibles combinaciones de las 11 cartas, y acaba marcando el 7 de diamantes♦️, para que sea descartado y echado a la pila de descartes.

Para ello he añadido dos nuevas macros al módulo: modReglas

  • ElegirCarta: Para decidir si el Rabino en Excel marca la carta del mazo o de la pila de descartes.
  • MarcarCarta: Para marcar la carta que jugará el Rabino en Excel.


En la hoja 'Motor' he añadido algunas fórmulas para elegir y marcar la carta a jugar.

En la celda B12 se escribe la carta de la pila de descartes, para comprobar si combina con las otras 10 cartas del jugador 2, que es el Rabino en Excel.

En la celda F14 se comprueba si el valor de esa carta es igual al de alguna de las 10 cartas, en cuyo caso queda marcada.

En la celda G14 se comprueba si esa carta puede formar parte de una escalera con alguna de las 10 cartas, en cuyo caso queda marcada.

Si la carta de la pila de descartes no sirve para combinar con alguna de las 10 cartas, la carta de arriba del mazo será la que quedará marcada.

La carta marcada, sea del mazo o de la pila de descartes, será la que el jugador 2 robará para intentar combinarla con las otras 10 cartas.

Una vez combinadas las cartas, el motor del juego decidirá qué carta marcar, y la carta marcada habrá que echarla a la pila de descartes.

La fórmula que se ve en la imagen de arriba, de la celda Q14, es la que decide qué carta marcar, valiéndose del nuevo rango de celdas Q3:Q13, en el que se indica qué cartas no están combinadas y son candidatas a descartarlas.

Las fórmulas anteriores pueden variar sin previo aviso en las próximas entregas de las partes de este desarrollo del juego, siempre con la intención puesta en mejorarlo...


Qué cartas combina el motor del juego

Para saber qué cartas ha combinado el jugador Rabino en Excel, en la Parte 8 hay que ver el rango E3:E13 de la hoja 'Motor', donde están las cartas ordenadas según las combinaciones resueltas por el motor del juego.

Este procedimiento no será necesario cuando se muestren las cartas de la fila de arriba, en el momento en que se decida dar por finalizada la partida, lo que se verá en la siguiente entrega de este juego...


Qué falta por hacer

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

  1. Cerrar la partida con Escalera Real, si todas las cartas están combinadas en una única escalera del mismo palo.
  2. Cerrar la partida con Color, si todas las cartas son del mismo palo aunque no estén combinadas.
  3. Decidir cuándo acaba la partida cualquiera de los dos jugadores.
  4. Mostrar las cartas del jugador Rabino en Excel al acabar la partida.
  5. Ordenar las cartas combinadas del jugador Rabino en Excel.
  6. Guardar estadísticas de las partidas entre los dos jugadores.

Todo esto lo iremos viendo en las próximas entregas de las Partes de este curso sobre el diseño de un juego de cartas en Excel.


Descarga la Parte 8 de un Rabino en Excel

Descarga la Parte 8 de 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 mis juegos de cartas programados en Excel:

Me ayudarás si me indicas las erratas que encuentres en este artículo, y si me comentas qué es lo que te gustaría ver en los próximos artículos.

Agenda Calendario Lunar 2025

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


¡¡¡ Feliz y Próspero Año Nuevo 2025 !!!

Para comenzar este Año Nuevo lo mejor posible publico la Agenda Calendario Lunar actualizada para este nuevo año, que funciona únicamente con fórmulas, ¡sin macros VBA!

Se puede usar tanto en español como en inglés, y comenzar la semana en lunes o en domingo.

He intentado que se pueda abrir en cualquier versión de Excel, también en Excel para la Web y en las aplicaciones de Excel para Android y de Excel para Mac. ¡Ya me dirás si lo he conseguido!

De todos los calendarios que he hecho en Excel, éste es del que estoy más satisfecho para llevar al día mis asuntos. Espero que a ti te pase lo mismo que a mí.

AVISO: La única novedad de este año ha sido usar la celda B4 para que la semana comience en domingo o en lunes. Así puedo usar el rango de celdas B3:J3 para mostrar los datos de hoy en: la agenda, los aniversarios, los festivos o las tareas. También indico si no hay datos de hoy para el tipo de calendario elegido...

ATENCIÓN: El cambio del tipo de calendario se hace en la celda C3 de la hoja 'Agenda':

  • Mi agenda: Con todos los aniversarios, festivos y tareas.
  • Aniversarios: Con los aniversarios y las tareas.
  • Festivos: Con los festivos y las tareas.
  • Tareas: Solamente con las tareas de las 24 horas de los 365 días del año.

Sirva esta Agenda Calendario Lunar para felicitar el Año Nuevo a mis seguidores.


Descarga la Agenda Calendario Lunar

El archivo tiene todas las hojas protegidas con contraseña, para que los usuarios no destrocen las fórmulas.

Descarga desde uno de estos enlaces:

Esta plantilla no contiene macros, pues todos los cálculos se realizan ¡únicamente con fórmulas!

Si te interesa analizar las fórmulas, encontrarás la contraseña, para desproteger las hojas, en el primer artículo que publiqué sobre calendarios lunares:

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


Videotutorial de la Agenda Calendario Lunar

En este videotutorial explico como usar la Agenda Calendario Lunar:


Hojas de la Agenda Calendario Lunar

Esta agenda calendario lunar contiene las siguiente hojas:

  • Calendario: mensual y lunar, con hipervínculos a los eventos del año.
  • Agenda: con los próximos eventos: tareas, festivos y aniversarios.
  • Diario: con los eventos de las 24 horas de un día, y con hipervínculos.
  • Buscar: buscador de cualquier evento del año.
  • Festivos: lista editable de días festivos para cualquier año.
  • Aniversarios: lista editable de aniversarios para cualquier año.
  • Ayuda: enlaces a las páginas que me han servido de inspiración.
  • 2025: Planificador de eventos editables para 366 días x 24 horas.


Menú de la Agenda Calendario Lunar

Con los iconos del menú es más fácil cambiar de hoja, y saber qué hoja se ha seleccionado, pues cambia a rojo el color del icono.

Desde cualquier hoja se puede ir al evento del día de hoy, haciendo clic en el enlace con el hipervínculo.

Además he añadido la hora actual en todas las hojas de la agenda.


Tutoriales de la Agenda Calendario Lunar

En los siguientes artículos explico las principales características de la Agenda Calendario Lunar:


Cómo añadir años a la Agenda Calendario Lunar

En este vídeo explico cómo he actualizado la agenda, con un ejemplo de cómo convertirla en un calendario del año 2025, con lo que será fácil crear agendas de otros años.

¡Apunta en esta agenda tus propósitos para el Año Nuevo!

¡Y así nunca los olvidarás!

Jugando al Rabino en Excel - Parte 7

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


Parte 7 de un juego del Rabino

Esta es la séptima parte de una serie de artículos con los que intento diseñar en Excel un juego de cartas con una variante especial del Rabino.

Al final de este artículo hay un enlace a todos mis juegos de cartas.

En esta Parte 7 explicaré:

♥️  Cómo combina las cartas el motor del juego.

♠️  Cómo jugar una partida completa.

♦️  Cómo decidir qué carta jugar.

♣️  Qué falta por hacer para finalizar el diseño del juego.

Los tres últimos temas están explicado en el vídeo que acompaña a este artículo.

Esta es la imagen del fin de partida jugada durante la grabación del vídeo de la Parte 7. El jugador Pedro Wave (el usuario de mi versión de Excel) ganó la partida, cerrándola con -10 puntos, pues tenía todas las cartas combinadas. Sus cartas son las de abajo, estando ordenadas de mayor a menor, para poder calcular los puntos de las cartas que pudieran no estar combinadas. En este caso hay 6 cartas del mismo palo, formando escalera descendente de diamantes ♦️, y otras 4 cartas del mismo palo en escalera de corazones ♥️.

Sigo mostrando las cartas de arriba, que son las del jugador contra el que juego, el Rabino en Excel. Lo hago a propósito para mostrar cómo funciona el nuevo motor del juego que he añadido en esta fase del desarrollo de la Parte 7.

Las cartas de arriba han finalizado el juego con los 3 puntos del 3 de picas ♠️. El resto de cartas están combinadas por lo que son de 0 puntos. Lo más curioso es que las cartas no están ordenadas formando combinaciones, aunque realmente están combinadas: 5 cartas formando escalera de tréboles ♣️ y 4 cartas formando escalera de picas ♠️, con el rabino como si fuera el 10 de picas. Luego explico por qué no están ordenadas...


Vídeo con la Parte 7 del juego

En este vídeo verás la partida completa, que he jugado como ejemplo de lo que se puede hacer hasta ahora en la Parte 7 de esta fase de desarrollo del juego. Prácticamente será como se podrá jugar cuando finalice este diseño, por lo que es conveniente aprender cómo jugar a esta variante del Rabino en Excel.

Cuando veas este vídeo, comprobarás que no soy un buen jugador del Rabino. Y también dudo que sea un buen programador de juegos, pero estoy seguro que todo se aprende practicando, lo que te animo a hacer en cualquier momento del juego incierto de esta vida finita.

A continuación explicaré lo que no he querido contar en este vídeo para no hacer espóiler.


Cómo combina las cartas el motor del juego

Esta variante del Rabino no la he diseñado en plan profesional sino en plan didáctico, por lo que me he tomado ciertas libertades.

La primera libertad, fundamental desde esta Parte 7 y en adelante, es que uso herramientas propias de Excel para crear el motor del juego, con el que conseguir combinar las cartas de arriba del usuario: Rabino en Excel.

Y como adelantaba en el vídeo: ¡No lo he hecho programando macros VBA!

Y entonces: ¿Cuál es el motor del juego? ¡¡¡ El complemento Solver de Excel !!!

Si aún no conoces el complemento Solver será mejor que antes leas esto:

Resumiendo, y haciendo espóiler, o sea destripando el motor del juego, he usado el complemento Solver para determinar el valor mínimo de la celda que contiene la fórmula con la suma de los puntos de un jugador, después de combinar las cartas, cambiando el valor de otras celdas.

La siguiente imagen es el resultado de aplicar el complemento Solver:


La hoja 'Motor' sirve de motor del juego, valga la redundancia, y contiene bastantes fórmulas complejas que no voy a explicar aquí. Si tienes interés, pregúntame...

En la columna D están las posiciones de las 11 posibles cartas de cada jugador, identificadas con números del 1 al 11.

En la columna E están las cartas según las posiciones determinadas con los valores de la columna D.

Las columnas F a O contienen fórmulas auxiliares con las que determinar las posibles combinaciones de las cartas de un jugador, tanto con escaleras como con cartas del mismo valor.

En la columna P se obtiene los puntos de las cartas que no se han podido combinar.

El total de la suma de puntos del jugador 2, o sea del Rabino en Excel, se obtiene en la celda P14, denominada miSolver, con la fórmula: =SUBTOTALES(9;misPuntosCartas2)

Siendo el rango de celdas misPuntosCartas2: =Motor!$P$3:$P$13

Solver cambia automáticamente los valores de un grupo de celdas, llamadas celdas de variables de decisión, que en este motor del juego están en el rango D3:D13 denominado: miNumCartas2

Solver intenta cumplir 4 restricciones de esas celdas:

  • miNumCartas2 = entero
  • miNumCartas2 <= 11
  • miNumCartas2 >= 1
  • miNumCartas2 = Todos diferentes

O sea, que esas celdas sean números enteros del 1 al 11 y diferentes entre sí, sin importar su orden.

En este pantallazo están los parámetros de Solver definidos para el motor de este juego.

Se establece como objetivo la celda denominada miSolver: =Motor!$P$14, para que la fórmula que contiene sea el valor mínimo óptimo.

Los valores del rango de celdas miNumCartas2 son el resultado obtenido por el complemento Solver, con las posiciones de las cartas combinadas según las reglas del juego.

Se ha elegido como método para encontrar una solución: Evolutionary, ya que el solucionador evolutivo prácticamente no hace suposiciones sobre las relaciones entre las variables de decisión y la función objetivo y las restricciones. Aunque puede ser que encuentre una "buena" solución, pero no necesariamente la solución óptima, lo que es suficientemente bueno para nuestro motor de juego, que realmente busca una buena combinación de las cartas, ya que no es un jugador profesional, de momento...

Si quieres saber más sobre los tres tipos de métodos del complemento Solver, abre este enlace en inglés:


Motor del juego compatible

Para que el motor del juego sea compatible con todas las versiones de Excel, desde Excel 2010 hasta Excel para Microsoft 365, he tenido que sudar un poco...

Pero todo se ha resuelto leyendo esta página en inglés:

Si escribes código convencional para ejecutar Solver solamente funcionará en tu computadora, y en cualquier computadora con las mismas versiones de Excel y Solver. ¿A que no queremos eso?

Para que Solver funcione en cualquier versión de Excel, no debe haber referencias a una versión concreta, lo que se consigue llamando al método: Application.Run

Este método permite ejecutar dinámicamente cualquier procedimiento de Solver, llamando al nombre del procedimiento entre comillas dobles, seguido de una lista separada por comas de los argumentos que se pasan al procedimiento, ordenados por posición.

El código está incluido en las macros y funciones del módulo: modMotor

  • ActivarSolver: Activa y configura el complemento Solver.
  • ConfigurarSolver: Configura el complemento Solver.
  • ResolverCartas: Resuelve las combinaciones de las cartas de un jugador con el complemento Solver.
  • CheckSolverIntl: Chequea si existe el complemento Solver en cualquier versión internacional de Excel.
  • IsInstalled: Test si está instalado Solver.
  • AddInInstall: Instala el complemento Solver.

He separado la activación del complemento Solver de la resolución del problema con Solver, con lo que solamente hay que llamarlo en dos ocasiones:

  • La macro IniciarRabino llama a ActivarSolver, con lo que queda activado y configurado el complemento Solver.
  • La macro CombinarCartas llama a ResolverCartas, con lo que ejecuta el complemento Solver, previamente configurado, cada vez que intenta encontrar las posibles combinaciones de las cartas del jugador Rabino en Excel.

Si no se alcanza una solución, en un tiempo prefijado por las opciones (SolverOptions) que veremos a continuación, aparece un mensaje de advertencia y el jugador presionará el botón Continuar o Detener, según le convenga:

NOTA: Cuando se configura Solver, se modifican sus opciones con esta llamada:

Application.Run "Solver.xlam!SolverOptions", 16, , 0.1, , , , , , 99, , , , , , , , , , , , 8

Lo que modifica, de momento y a falta de más pruebas, los siguientes valores en este juego:

  • MaxTime: La cantidad máxima de tiempo (en segundos) que Solver empleará para resolver el problema. El valor es un número entero positivo definido a 16 segundos.
  • Precision: Un número entre 0 (cero) y 1 que especifica la precisión con la que se deben cumplir las restricciones. El valor está definido a 0.1
  • IntTolerance: Un número decimal entre 0 (cero) y 100 que especifica la tolerancia porcentual de optimalidad de enteros. El valor está definido a 99.
  • MaxTimeNoImp: Cuando se utiliza el método de resolución evolutiva, la cantidad máxima de tiempo (en segundos) que Solver continuará resolviendo sin encontrar soluciones significativamente mejoradas para agregar a la población. El valor es un entero positivo definido a 8 segundos.

Los argumentos separados por comas y ocupan el lugar descrito en esta página en inglés:

En esta página hay más información del complemento Solver usado con VBA:


Qué falta por hacer

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

  1. Ocultar las cartas del jugador Rabino en Excel, que juega las cartas de arriba.
  2. Decidir automáticamente que ese jugador robe una carta de la pila de descartes o del mazo de cartas.
  3. Saber qué carta descartar automáticamente.
  4. Ordenar las cartas combinadas por el motor del juego para el jugador Rabino en Excel.
  5. Decidir cuándo puede y quiere acabar la partida cualquiera de los dos jugadores.
  6. Guardar estadísticas con los jugadores que van ganando las series de partidas.

Todo eso lo iremos viendo en las siguientes Partes de este curso sobre el diseño de un juego de cartas en Excel.


Descarga la Parte 7 de un Rabino en Excel

Descarga la Parte 7 de una 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 mis juegos de cartas programados en Excel:

Me ayudarás si me indicas las erratas que encuentres en este artículo, y si me comentas qué es lo que te gustaría ver en los próximos artículos.

Mi lista de blogs