Traducir el blog

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

Cómo insertar archivos Excel en páginas web

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


Como este blog es didáctico, la manera que tengo de llegar a mas personas es: insertando archivos Excel en los artículos del blog, con lo que cualquiera puede ver e interactuar con el archivo desde un navegador, sin ni siquiera tener instalado Excel en su equipo.

Algunos ejemplos de archivos insertados en mi blog los puedes probar aquí:

Aunque muchos de los archivos Excel insertados en mi blog, y en cualquier blog o página web, han dejado de funcionan este año. 😤


Solución alternativa al código para Insertar

En febrero denuncié un problema en Microsoft OneDrive. Se puede leer aquí:

Hace unos meses existía la posibilidad de personalizar la forma de insertar archivos Excel en un blog o en una página web directamente, con el código HTML generado por Microsoft OneDrive.

Ahora mismo el código generado para insertar un archivo Excel:

  • No permite elegir lo que se mostrará.
  • No permite cambiar la apariencia.
  • No permite la interacción con el archivo.
  • No permite cambiar las dimensiones de la hoja activa.

Workaround: Pero no va a ser un problema a partir de ahora, pues aquí voy a dar una solución alternativa al problema de OneDrive, que impide interactuar y cambiar la apariencia de los archivos insertados en un blog o en una página web.

Sigue leyendo y aprenderás a modificar el código generado, y podrás insertar archivos Excel en tu blog o web, permitiendo la interacción y la apariencia, tal y como se podía hacer el año pasado directamente con Microsoft OneDrive.


Cómo genera ahora el código para Insertar

Esta es la ventana que aparece actualmente en Microsoft OneDrive para generar el código para Insertar, mostrando el ejemplo de Mi bingo iterativo:

Los pasos para generar el código para Insertar son:

1) Iniciar OneDrive.

2) Ir a la carpeta donde se encuentra el archivo Excel que se quiere insertar.

3) Seleccionar el archivo a insertar, haciendo clic en los 3 puntos a la derecha del nombre del archivo: ...

4) En el menú de acciones desplegado, seleccionar: </> Insertar

5) Aparece una vista previa del archivo Excel y el código para insertar.

6) Presionar el botón: Copiar código para insertar

7) El código copiado del ejemplo es:

<iframe src="https://1drv.ms/x/c/6b219f16da7128e3/IQRZOSIkR7jWRbVEo0Yk132AAUKdWzezYbcYm1P9afBAC5c" width="402" height="346" frameborder="0" scrolling="no"></iframe>

Por lo que no existe actualmente ninguna opción para poder interactuar con el archivo Excel.

¡Es una pena que Microsoft ya no permita personalizar el código para Insertar!

¡Sigue leyendo y podrás modificar el código generado con las explicaciones que daré más adelante!

¡Y podrás interactuar con el archivo insertado en tu blog o en tu página web!


Cómo generaba antes el código para Insertar

Hasta el año pasado Microsoft OneDrive permitía personalizar el código generado para insertar un archivo Excel en un blog o en una página web.

En la imagen de la izquierda había un enlace ¡que ha desaparecido! para:

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

Haciendo clic en ese enlace, se abría una ventana para personalizar la inserción de un archivo en un blog o en una Web.

La imagen de abajo es un ejemplo de la ventana con la que se podía personalizar la inserción del archivo, con la posibilidad de modificar lo siguiente:

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

Con la personalización seleccionada en la imagen anterior, se generaba ¡hasta el año pasado! el siguiente Código para insertar:

Este código ya no es posible generarlo en Microsoft OneDrive, como denuncié aquí:

A continuación explicaré cómo modificar el código para insertar un archivo, para que funcione de forma similar al anterior.


Cómo modificar el código para Insertar

Usaré como ejemplo el archivo con mi bingo iterativo, al que puedes jugar desde mi blog, pues lo inserté en este artículo:

El código que genera mi OneDrive para insertar este archivo es el siguiente:

Como el código anterior no permite la interacción con el archivo insertado, le he añadido algunos cambios para poder interactuar con el archivo y modificar su apariencia.

El código resultante es el siguiente, que no se puede personalizar desde Microsoft OneDrive, sino que hay que modificarlo manualmente antes de insertarlo en un blog o en una página web:  

Los cambios realizados en el código generado son los siguientes:

  • Interacción
    • Permitir que los usuarios escriban en las celdas: AllowTyping=True
    • Comenzar siempre con esta celda seleccionada: ActiveCell=BINGO!Q2
  • Apariencia
    • Ocultar líneas de cuadrícula: wdHideGridlines=True
    • Ocultar encabezados de fila y columna: wdHideHeaders=True
    • Incluir el vínculo de descarga: wdDownloadButton=True
  • Dimensiones
    • Ancho aumentado: width="640"
    • Alto aumentado: height="580"
  • Personalización
    • Sin borde: frameborder="0"
    • Sin desplazamiento vertical: scrolling="no"

Si estás acostumbrado a modificar código HTML, serás capaz de adaptarlo modificando los parámetros comentados.

Si no usas habitualmente código HTML, es fácil copiar el código anterior y cambiar el valor de los parámetros a True o a False, o a "yes" o "no".


Vídeo con los códigos para Insertar

Vídeo en el que explico cómo insertar archivos Excel en blogs o páginas Web.


Ejemplo de Excel insertado en mi blog

Un ejemplo notorio, por el número de visitas que recibe últimamente, es el del Tablero Kanban que publiqué aquí:

Puedes probarlo a continuación, pues lo he insertado aquí:

Para ajustar el zoom en la nube:

  • En el móvil o celular usa dos dedos en la pantalla, como haces para ampliar o reducir una foto.
  • En el PC sitúa el cursor dentro del buscador y presiona la tecla <Control> girando la ruleta del ratón.

AVISO: No se guardan los cambios que hagas en mi nube. Para guardar tus cambios tienes que hacer una copia en tu nube de OneDrive.


Conclusión

Con esta solución alternativa al problema de Microsoft OneDrive se puede insertar un archivo Excel, en un blog o en una página web, permitiendo cambiar su apariencia y hacerlo interactivo.

Solo me queda editar cada artículo del blog, en el que tengo un Excel insertado, y aplicar esta solución alternativa... 😤

Creo que no me llevará tanto tiempo como le va a costar a Microsoft hacer que OneDrive permita personalizar el código generado para insertar archivos Excel, como lo hacía hasta el pasado año...

Mi bingo iterativo

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


Este bingo se me ocurrió mientras estaba diseñando los bingos de los dos artículos anteriores.

Ninguno de los bingos anteriores funciona ya, debido a que Microsoft se ha esmerado en corregir demasiado pronto el excelente BUG que permitió, durante unos meses, que las funciones volátiles dejaran de ser volátiles, tanto en Excel para Microsoft 365 como en Excel para la Web.

Por lo que he tenido que recurrir al viejo truco de usar el cálculo iterativo para diseñar mi bingo iterativo, y poder jugar con las nuevas actualizaciones del canal actual de Excel para Microsoft 365 y en Excel para la Web.


Mi bingo iterativo

Este es el aspecto de mi bingo iterativo en Excel para Microsoft 365.


Este juego de bingo iterativo en Excel contiene 3 hojas:

  • BINGO: Es la hoja donde realmente se juega al bingo.
  • BOLAS: Es la hoja con las 90 bolas de un bingo, ordenadas aleatoriamente.
  • CARTONES: Es la hoja auxiliar donde se calculan los cartones y los premios del bingo.


Juega al bingo iterativo en la nube

Si aún no tienes una suscripción de pago a Microsoft 365, puedes probar gratuitamente mi bingo iterativo en la nube de Microsoft OneDrive.

Para marcar las casillas hay un desplegable para elegir entre VERDADERO (casilla marcada) y FALSO (casilla desmarcada).


Para ajustar el zoom en la nube:

  • En el PC sitúa dentro el cursor y presiona la tecla <Control> mientras giras la ruleta del ratón.
  • En el móvil o celular usa dos dedos en la pantalla, como haces para ampliar o reducir una foto.


Descarga mi bingo iterativo

Descarga este juego de bingo, probado en Excel para Microsoft 365, desde este enlace:

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

Las hojas están protegidas sin contraseña para que sea fácil analizar 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


Instrucciones del bingo iterativo

1) Marcar las casillas del cartón o de los cartones que quieras jugar

2) Marcar la casilla para Extraer las bolas

3) Extraer las bolas presionando:

  • En Excel para la Web con el botón de abajo: Actualizar todas las conexiones de datos
  • En Excel para Microsoft 365 con la tecla F9 repetidamente

4) Cantar línea, dos líneas o ¡Bingo!

5) Comenzar un nuevo juego, desmarcando la casilla: Extraer


Vídeo del bingo iterativo

En este vídeo explico cómo jugar a este bingo iterativo.


Cálculo iterativo del bingo

Para que no existan referencias circulares en las fórmulas de algunas celdas, que se llaman a sí mismas, hace falta tener habilitado el cálculo iterativo.

Aunque por defecto ya está habilitado el cálculo iterativo en el libro con este juego del bingo, no está de más saber cómo cambiar las opciones de cálculo.

Entrar en el menú: Archivo

Abajo hay un botón: Más...

con más opciones.

Seleccionar: Opciones

Y se abre la ventana: Opciones de Excel

Seleccionar: Fórmulas

En Opciones de cálculo:

Cálculo del libro: Automático

Está marcado: Habilitar cálculo iterativo

Iteraciones máximas: 1

Cambio máximo: 1

Con lo que cada recálculo de fórmulas iterativas se hará una vez y se cambiará en una unidad.


Nombres definidos en el bingo

En el menú: Fórmulas > Administrador de nombres, hay 5 nombres definidos:

BolaExtraer: =BINGO!$S$2

BolaNúmero: =BINGO!$Q$2

BolaValor: =BINGO!$P$6

misBolas: =SI(BolaNúmero=0;"";BOLAS!$A$2:INDICE(BOLAS!$A$2#;BolaNúmero))

misCartones: =CARTONES!$AB$6:$AJ$23



Hoja BOLAS

La hoja 'BOLAS' solamente contiene una fórmula matricial iterativa en la celda A2:

=SI(BolaExtraer;$A$2#;ORDENARPOR(SECUENCIA(90);MATRIZALEAT(90)))

Si el valor de la celda BolaExtraer es:

  • FALSO, obtiene una nueva matriz dinámica desbordada de 90 números de bola aleatorios distintos, del 1 al 90. Son los números que se van extrayendo durante el juego del bingo.


Hoja CARTONES

La hoja 'CARTONES' genera los números de bolas de 6 cartones, que es un límite que me he impuesto por necesidades didácticas, y que se puede ampliar si se tiene un nivel intermedio de Excel.

En el bingo de 90 bolas, cada uno de los cartones tiene 3 líneas de 5 bolas cada una, con 4 espacios sin números en cada fila.

AVISO: En cualquiera de los bingos que he diseñado las bolas no se repiten en ninguno de los 6 cartones generados en cada juego.


Los números de bola mínimos de cada columna de cada cartón, están escritos en el rango B5:J5.

Los números de bola aleatorios de cada columna de cada cartón, están en el rango B6:J6 con unas fórmulas iterativas matriciales dinámicas, que se desbordan en las siguientes filas. Por ejemplo, para generar números aleatorios únicos del 1 al 9, la fórmula de la celda B6 es:

=SI(BolaExtraer;B$6#;ORDENARPOR(SECUENCIA(9;1;B$5);MATRIZALEAT(9)))

Para cambiar aleatoriamente el orden de los cartones en cada juego, se hace con la fórmula en la celda M6:

=SI(BolaExtraer;$M$6#;ORDENARPOR(SECUENCIA(6);MATRIZALEAT(6)))

Las filas de cada cartón se calculan en el rango N6:N11 con la fórmula en N6 arrastrada hacia abajo:

=3*(M6-1)

Los patrones de los 6 cartones, con un 1 si hay número de bola, y un 0 si no hay número de bola, están escritos en el rango Q6:Y23

Los 6 cartones con sus números de bola se generan en el rango AB6:AJ23. Por ejemplo, la primera columna de cada cartón se genera con la fórmula matricial desbordada de la celda AB6:

=SI(Q6:Q23=0;"";INDICE(B$6:B$16;Q6:Q23))

Para saber cuando se extrae la bola con la que cantar los premios, en el rango AS5:ED5 hay una secuencia del 1 al 90, con las 90 extracciones posibles de todas las bolas.

Para saber cuantos números han salido en cada fila de cada cartón, se copia en el rango AS6:ED23 la siguiente fórmula, con la que se obtiene un valor entre 0 y 5 aciertos:

=SUMA(SI(SI.ERROR(COINCIDIR($AB6:$AJ6;BOLAS!$A$2:INDICE(BOLAS!$A$2#;AS$5);0);0)>0;1;0))

Para saber el número de bola que haría cantar ¡LÍNEA!, en cada fila de cada cartón, se hace arrastrando hacia abajo la fórmula de AN6, en el rango AN6:AN23:

=COINCIDIR(5;$AS6:$ED6;0)

Para saber el número de bola que haría cantar ¡DOS LÍNEAS! en cada cartón, se copia en cada 3 filas del rango AO6:AO23, la siguiente fórmula de AO6:

=SUMA($AN6:$AN8)-MAX($AN6:$AN8)-MIN($AN6:$AN8)

Para saber el número de bola que haría cantar ¡BINGO! en cada cartón, se copia en cada 3 filas del rango AP6:AP23, la siguiente fórmula de AP6:

=MAX($AN6:$AN8)

Los números de extracción con alguno de los 3 premios se calculan en el rango AN5:AP5, con la fórmula de AN5 copiada hacia la derecha:

=MIN(AN6:AN23)

Los números de bola con alguno de los 3 premios se calculan en el rango AN4:AP4, con la fórmula de AN4 copiada hacia la derecha:

=INDICE(BOLAS!$A$2#;AN5)

Los números de fila de la matriz de cartones con alguno de los 3 premios se calculan en el rango AN3:AP3, con la fórmula de AN3 copiada hacia la derecha:

=MIN(SI(misCartones=AN4;FILA(misCartones)))

Los números de cartón que han sido premiados se calculan en el rango AN2:AP2, con la fórmula de AN2 copiada hacia la derecha:

=COINCIDIRX(AN3-6;$N$6:$N$11;-1;1)

La información del rango AN2:AP5 se mostrará en la hoja 'BINGO' según se vayan extrayendo las bolas...


Hoja BINGO

A este bingo iterativo se juega en la hoja 'BINGO'.

Con cálculo iterativo se obtiene la siguiente bola extraída en la celda Q2, con la fórmula:

=SI(BolaExtraer;MIN(CARTONES!$AP$5;BolaNúmero+1);0)

Siempre que sea VERDADERO la celda S2 con el nombre definido: BolaExtraer

Si ese nombre es FALSO, la celda S2 se pone a 0 y genera un nuevo juego de bolas y de cartones.

En el rango B3:J12 están las 90 bolas que, con un formato condicional, cambian de color si es la bola recién extraída o ya ha sido extraída. La fórmula matricial en B3 es:

=TRANSPONER(SECUENCIA(9;10))

Se indican las 3 bolas previas extraídas en el rango L5:L7, con la fórmula matricial en L5:

=SI(BolaNúmero<2;"";INDICE(misBolas;SI(BolaNúmero>3;BolaNúmero-3;SI(BolaNúmero>2;BolaNúmero-2;1))):INDICE(misBolas;SI(BolaNúmero>1;BolaNúmero-1;1)))

El último número de bola extraído se muestra en la celda combinada P6:R8, con la fórmula:

=SI(BolaNúmero=0;0;INDICE(BOLAS!$A$2#;BolaNúmero))

Los 3 premios aparecen en las siguientes celdas con sus fórmulas:

L13: =SI(BolaNúmero>=Q13;"¡LÍNEA!";"")

L14: =SI(BolaNúmero>=Q14;"¡DOS LÍNEAS!";"")

L15: =SI(BolaNúmero>=Q15;"¡BINGO!";"")

En la fila 16 hay 3 secuencias auxiliares del 1 al 9 para pintar los 6 cartones.

En la columna A hay 2 secuencias auxiliares del 1 al 3 para pintar los 6 cartones.

En 6 celdas concretas se indica qué cartón se pintará de los 6 cartones posibles:

A17: =CARTONES!$N$6

L17: =CARTONES!$N$7

W17: =CARTONES!$N$8

A22: =CARTONES!$N$9

L22: =CARTONES!$N$10

W22: =CARTONES!$N$11

Los números de bolas del cartón 1 se obtienen copiando en el rango B18:J20 la fórmula de la celda B18:

=INDICE(misCartones;$A$17+$A18;B$16)

Los números de bolas del cartón 2 se obtienen copiando en el rango M18:U20 la fórmula de la celda M18:

=INDICE(misCartones;$L$17+$A18;M$16)

Los números de bolas del cartón 3 se obtienen copiando en el rango X18:AF20 la fórmula de la celda X18:

=INDICE(misCartones;$W$17+$A18;X$16)

Los números de bolas del cartón 4 se obtienen copiando en el rango B23:J25 la fórmula de la celda B23:

=INDICE(misCartones;$A$22+$A23;B$16)

Los números de bolas del cartón 5 se obtienen copiando en el rango M23:U25 la fórmula de la celda M23:

=INDICE(misCartones;$L$22+$A23;M$16)

Los números de bolas del cartón 6 se obtienen copiando en el rango X23:AF25 la fórmula de la celda X23:

=INDICE(misCartones;$W$22+$A23;X$16)

¡Y eso es todo amigos!

¡Felices vacaciones de verano!

¡Hasta septiembre!

Mi bingo en la nube

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


ATENCIÓN: En Excel para la Web ¡ya está corregido el BUG!, que permitía jugar nuevas partidas de bingo con funciones volátiles que dejaban de serlo gracias al BUG, por lo que este artículo queda obsoleto en su mayor parte...


AVISO: Pero al final de este artículo encontrarás un bingo programado con cálculo iterativo, que funciona en la nube ¡con el BUG corregido!


Para quien no tenga una suscripción de pago a Excel para Microsoft 365, aún puede probar mi juego de bingo volátil en la nube de Microsoft OneDrive.



¡Pruébalo un poco más abajo!

¡AHORA!

¡Antes de que deje de funcionar el BUG de Excel, en el que se basa este juego!

Lee sobre el BUG aquí:


Prueba el bingo en la nube ¡mientras puedas!

Juega en la nube aquí mismo, aunque de momento no tengo resuelto cómo comenzar un nuevo juego de bingo.

¡Siempre se juegan las mismas bolas y cartones en este bingo!

Para marcar las casillas hay un desplegable para elegir entre VERDADERO (casilla marcada) y FALSO (casilla desmarcada).

TRUCO: Mantén presionada la tecla F9 y extraerás las bolas a toda velocidad.


Para ajustar el zoom en la nube:

  • En el PC sitúa dentro el cursor y presiona la tecla <Control> mientras giras la ruleta del ratón.
  • En el móvil o celular usa dos dedos en la pantalla, como haces para ampliar o reducir una foto.


Prueba el bingo en el móvil o celular

En el móvil o celular no hay tecla F9 para extraer las bolas.

El siguiente procedimiento para extraer las bolas sirve tanto para el móvil o celular como para cualquier navegador de un PC:

1) Selecciona una celda cualquiera de la hoja 'BINGO'.

2) Presiona el botón del menú de abajo, indicado con una flecha en color rojo en la imagen de la derecha. Cuando pasas el ratón por encima de ese botón muestra el texto: "Actualizar todas las conexiones de datos"

3) Extraerás la siguiente bola cada vez que pulses ese botón del menú, hasta que el primer cartón sea premiado con el BINGO, por contener todas las bolas extraídas hasta el momento.


Cuando salga este mensaje de aviso, ciérralo haciendo clic en la cruz de arriba a la derecha.


Juega al bingo iterativo en la nube

Juega en la nube a mi bingo iterativo aquí mismo.

Para marcar las casillas hay un desplegable para elegir entre VERDADERO (casilla marcada) y FALSO (casilla desmarcada).


Para ajustar el zoom en la nube:

  • En el PC sitúa dentro el cursor y presiona la tecla <Control> mientras giras la ruleta del ratón.
  • En el móvil o celular usa dos dedos en la pantalla, como haces para ampliar o reducir una foto.


En el siguiente artículo explico cómo he hecho este bingo iterativo:

Gracias por seguirme...

Mi bingo volátil en Excel

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


ATENCIÓN: En la última actualización de Excel para Microsoft 365 ¡ya está corregido el BUG que permitía jugar al bingo usando funciones volátiles!, por lo que este artículo queda obsoleto...


En verano me apetece estar con los amigos en la piscina o en la playa, por lo que bajo el ritmo de mis retos en Excel, aunque nunca me viene mal programar un nuevo juego, ¡sobre todo si se basa en un BUG del propio Excel!



La idea se me ocurrió mientras estaba escribiendo este artículo:

Y maduré la idea mientras escribía la continuación de dicho artículo:


Es un juego volátil

Como este juego del bingo está basado en un BUG de Excel para Microsoft 365, solamente funcionará mientras Microsoft no lo corrija, por lo que es un juego muy volátil. Hoy puede funcionar ¡y mañana no!

Ya me han avisado mis amigos del foro que en la próxima actualización dejará de funcionar... Por lo que hay prisa para publicarlo ¡y poder jugar a este bingo tan volátil!

En el enlace de arriba tienes la discusión en el foro sobre este BUG.


Mi bingo volátil

El juego es una variante del bingo con 90 bolas. Lee sus reglas aquí:

Este es el aspecto del Bingo antes de comenzar a jugar.



INSTRUCCIONES:

1) Marcar las casillas de los cartones a jugar.

2) Seleccionar el control de número en V6

3) Presionar la tecla de cursor hacia arriba.

4) Cantar línea, dos líneas o bingo de tu cartón.

5) Repetir la partida con las teclas: Control + Fin

6) Comenzar una nueva partida presionando las teclas: Control + Fin, la tecla Esc y las teclas: Control + Alt + F9


Descarga este bingo volátil ¡AHORA!

Descarga este juego de bingo, probado en Excel para Microsoft 365 (versión 2506 compilación 16.0.18925.20158), desde este enlace:

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

Las hojas no están protegidas para que sea fácil analizar 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


Mi vídeo volátil del bingo

En este vídeo explico cómo jugar volátilmente al bingo.


Juega a este bingo ¡mientras puedas!

¡¡¡ Disfruta del juego de este verano en Excel !!!

¡¡¡ Descárgalo ahora, pues en unos días dejará de funcionar con la próxima actualización de Excel para Microsoft 365 !!!

Cómo conservarnos como ahora - Parte 2

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


Esta es la continuación del anterior artículo que trataba de

Es mejor que lo leas AHORA antes de comenzar a leer éste.

En el artículo anterior comenté que la idea de conservar el AHORA me vino por un vídeo de Albert Cid, pero yo quería saber de dónde procedía la idea original y se lo pregunté directamente.

Este es el enlace al artículo en inglés que Albert, muy amablemente, me comunicó:

El que escribió esto fue Owen Price, un Excel MVP norteamericano, aunque todo el crédito de la idea de esta publicación corresponde a Lorimer Miller.

Lo primero que nos cuenta es para avisarnos que:

Un hombre de dentro me ha informado con fiabilidad que la capacidad descrita a continuación, por muy tentadora que parezca, ¡es en realidad el efecto secundario de un error! Y como muchos errores, pronto será aplastado. Aplanado. Desaparecido. ¡Así que estén advertidos!

Y yo digo que:

Mientras exista este efecto colateral indeseado, ¿por qué no usarlo a nuestro favor?

¡Y puede ser que este bug dure mucho tiempo, pues Microsoft suele tardar en resolver sus errores!

En esta imagen animada muestro la diferencia palpable entre usar una función volátil y usar el truco que permite conservar ahora las funciones volátiles:

La función volátil de la columna B cambia con solo pulsar la tecla F9, lo que no ocurre con el truco para conservar los valores de la función volátil de la columna C.


Nuevas fórmulas para conservarnos como ahora

El truco consiste en aprovechar el bug, que hace que las funciones volátiles se comporten como no volátiles, si se llaman en fórmulas como éstas:

=(@AHORA)()

=SI($B2;(@AHORA)();"")

Estas dos fórmulas ya las vimos en el artículo anterior, pero ahora vamos a ver nuevas fórmulas en las que actúa este truco, sacadas de un comentario del artículo de Owen Price.

NUEVO TRUCO: Las fórmulas no tienen por qué incorporar el operador @. Parece ser que cualquier cosa que permita tomar una forma eta-reducida, y convertirla en la abstracción de la función LAMBDA, realiza el truco de la desvolatilización.

Aquí hay ejemplos::

=LAMBDA(AHORA)()()

=SI(1=1;AHORA)()

=ELEGIR(1;AHORA)()

=LAMBDA(f; f)(AHORA)()

=LET(f; AHORA; f())

=AHORA_Fijo()

La fórmula final es la llamada a un nombre definido en el Administrador de nombres:

AHORA_Fijo: =AHORA

En este nombre definido la función AHORA() no están escritos los paréntesis () pues esta función no tiene argumentos.


En un par de fórmulas aparece la función LAMBDA, lo que induce a pensar que algo tiene que ver con este truco.

Observa que en el resto de fórmula aparece la función AHORA() sin los paréntesis (). que es una forma de simplificar la sintaxis de LAMBDA cuando simplemente pasamos el argumento a una función sin más operaciones. Se puede leer sobre esta nueva sintaxis en el siguiente enlace: 

Me quedo con la posibilidad de crear nombres definidos con la nueva sintaxis de LAMBDA: "eta-reducida" o "eta lambda".

En esta imagen muestro la hoja 'AHORA', con las fórmulas que generan el truco comentado, y que puedes descargar como ejemplo al final de este artículo.


Cómo conservar ahora números aleatorios

Las funciones con números aleatorios son volátiles en Excel. ¡Hasta AHORA!

En la hoja 'ALEATORIO' he escrito otra fórmula con una función volátil que conserva el valor de forma no volátil.

En la celda B2 he escrito la fórmula volátil:

=ORDENARPOR(SECUENCIA($A$1);MATRIZALEAT($A$1))

En la celda C2 he escrito la fórmula no volátil:

=ORDENARPOR(SECUENCIA($A$1);MATRIZALEATORIA_Fija($A$1))

Que se basa en el nombre definido: MATRIZALEATORIA_Fija =MATRIZALEAT

Es una forma de llamar a la función LAMBDA con la nueva sintaxis "eta-reducida".

Estas fórmulas devuelven valores únicos de manera aleatoria, como explica la IA:

En la siguiente imagen he capturado un momento con estas fórmulas, que calculan un número determinado de números distintos de manera aleatoria, con la función MATRIZALEAT:

La tecla F9 modifica solo la fórmula de la columna B, sin cambiar los valores de la columna C.

Al editar la celda A1 se recalculan las dos fórmulas, obteniendo dos listas de números aleatorios distintos.

Convertir la función volátil MATRIZALEAT en una función no volátil permite desarrollar juegos de azar usando únicamente fórmulas, sin necesidad de cálculo iterativo de las fórmulas y sin tener que programar macros en lenguaje VBA.


Cómo dejar de conservarnos como ahora

El truco para convertir una función volátil en no volátil funciona incluso si se presionan las teclas:

  • F9: que recalcula las fórmulas que Excel considera “pendientes” en todo el libro activo ahora, si está desactivado el cálculo automático.
  • Mayús + F9: que recalcula solamente la hoja activa ahora, si está desactivado el cálculo automático.

El truco deja de funcionar, perdiendo los valores anteriores y actualizando todos los valores ahora como funciones volátiles, en cualquiera de estos casos:

  • Control + Alt + F9: que fuerza un recálculo completo de todas las fórmulas en todo el libro.
  • Control + Alt + Mayús + F9: que reconstruye el árbol de dependencias de todas las fórmulas y, a continuación, calcula cada celda de todos los libros abiertos, incluidas aquellas que no estaban marcadas como pendientes de recálculo.
  • Al modificar la tabla con el truco, si se insertan o borran filas o columnas intermedias.
  • Al insertar o borrar una fila o columna de la hoja con las fórmulas del truco.

El último caso obliga a aislar cuidadosamente las fórmulas en hojas aparte, para que no se desvolatilice este truco.


Vídeo no volátil

En el vídeo explico las fórmulas con las que conseguir que pierdan la volatilidad algunas funciones volátiles.


Descarga los ejemplos ¡AHORA!

Descarga ahora los ejemplos de cómo conservar las funciones AHORA y MATRIZALEAT, probados en Excel para Microsoft 365, desde este enlace:

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

Las hojas no están protegidas para que sea fácil analizar 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


Cómo jugar con fórmulas volátiles

Los próximos días programaré un juego de azar.

¡Usando solamente fórmulas volátiles y no volátiles!

Cómo conservarnos como ahora - Parte 1

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


La vida es un viaje de aprendizaje continuo.

¡El mejor momento de actuar es ahora!

Caminante, no hay camino,

se hace camino al andar.

Antonio Machado (1912)


Cómo conservarnos como ahora

Para conservar el efímero ahora solemos hacer fotos o vídeos con la cámara, intentando capturar el presente, pero es una labor imposible, ya que son fotos o vídeos del pasado al cabo de unos segundos después de tomarlas. Lo mismo pasa con nuestro propio cuerpo, que no se conserva nunca como ahora, ni siquiera a nivel celular, pues las células se regeneran continuamente...

Pregunta lanzada a Microsoft Copilot:

Esa es una pregunta profunda, Pedro. Si te refieres a conservarnos tal como somos ahora —ya sea física, emocional o espiritualmente—, hay algo poético en querer atrapar un momento en el tiempo, ¿no?

A nivel personal, podríamos hablar de hábitos saludables: cuidar el cuerpo con ejercicio y buena alimentación, cultivar la mente con aprendizaje constante, y mantener relaciones significativas. Pero también está la parte intangible: la actitud, la curiosidad, la manera de ver la vida. Eso es lo que realmente nos mantiene “como ahora”, aunque el tiempo siga pasando.

¿Lo estás pensando desde un deseo de inmortalizar algo bonito que estás viviendo? Porque también podría ser eso: aprender a conservar el recuerdo, el espíritu del momento, sin necesidad de que todo se quede congelado. A veces, lo mejor que podemos hacer es atesorarlo y permitir que nos transforme suavemente.

¿Quieres que lo exploremos desde el punto de vista emocional, filosófico o más práctico?

¡¡¡ Más práctico !!!


El ahora es volátil

Cada vez que hacemos referencia al presente, se transforma en el ahora, perdiendo el valor del pasado.

Hasta ahora no se podía guardar la función AHORA() en Excel, pues es una función volátil.

Pero va a haber un antes y un después, pues desde ahora se pueden guardar marcas de tiempo no volátiles con la función AHORA(), sin tener que pegar el tiempo devuelto por la función, sin necesidad de usar macros VBA e incluso sin usar el viejo truco de conservar el ahora con la opción de cálculo iterativo.

Explicación de las funciones volátiles como AHORA():


Cómo congelar el ahora

Estos son ejemplos de capturas del tiempo devuelto por la función AHORA() dentro de una fórmula no volátil:

He creado 3 tablas, dos de ellas con marcas de tiempo:

  • En la hoja 'AHORA' hay una tabla de actividades, con un desplegable de actividades. Al seleccionar una actividad queda guardada la marca de tiempo, con lo que puedo conseguir los timestamps de todas las actividades que registre.
  • En la hoja 'MARCAS DE TIEMPO' hay una tabla con mi lista de deseos y una columna de casillas. Al marcar una casilla queda guardada la marca de tiempo, con lo que puedo saber cuándo he conseguido satisfacer cada uno de mis deseos.
  • La hoja 'Actividades' contiene una tabla personalizable de actividades.


Cómo congelar el ahora hasta ahora

Hasta ahora hay varias maneras de congelar la función AHORA(), que puedes leer aquí:

En este vídeo se explica cómo crear marcas de tiempo usando el cálculo iterativo:

Era la forma habitual de crear marcas de tiempo, sin usar macros VBA, que yo usaba antes de conocer el siguiente truco hecho sólo con fórmulas.


Fórmula para conservar el ahora

La siguiente fórmula es volátil, por lo que Excel la recalcula cuando recalcula la hoja o si se pulsa la tecla F9, cambiando su valor al momento del recálculo:

=AHORA()

TRUCO: La siguiente fórmula hace que la función AHORA() se recalcule una sola vez, aunque no lo ponga en la documentación de la función, dejando de ser volátil y devolviendo un valor estático fijo, que no cambia con el tiempo, por lo que sirve como marca de tiempo (timestamp en inglés):

=(@AHORA)()

Esta es la función usada en la celda B2 de la tabla de la hoja 'AHORA' del archivo de ejemplo que puedes descargar más adelante.


La siguiente función está escrita en la celda C2 de la tabla de la hoja 'MARCAS DE TIEMPO':

=SI($B2;(@AHORA)();"")

Cuando se marca una casilla de la columna B, se calcula la marca de tiempo de la columna C.

TRUCO: Lo que no se puede hacer es usar esta fórmula:

=SI([@Marca];(@AHORA)();"")

Pues añadiendo la referencia estructurada a la columna de la tabla se recalcula siempre el ahora...


Trucos para no recalcular ahora

Como no he encontrado ninguna documentación en el Soporte de Microsoft que explique cómo es que las fórmulas anteriores no recalculan la función AHORA(), le he preguntado a Microsoft Copilot:

Contestación de Microsoft Copilot:

La función AHORA() es volátil por definición; es decir, Excel la recalcula en cada ciclo de recálculo de la hoja para actualizar la fecha y hora actuales. Sin embargo, al escribir la fórmula de esta forma:

=(@AHORA)()

estamos usando dos “trucos” de la nueva sintaxis de Excel:

1. El operador de intersección implícita @: Esto indica a Excel que, aunque la función podría devolver un array, se debe tratar únicamente como un valor escalar. Si bien esto, por sí solo, no cambia la volatilidad, ayuda a que Excel interprete la fórmula dentro de un contexto de función que espera un único valor.

2. La invocación mediante paréntesis adicionales (()) al final: Al agregar estos paréntesis, Excel no trata simplemente a AHORA() como una llamada directa a una función volátil, sino que la evalúa como si fuera una función que está “envuelta” en una especie de función lambda implícita. Este cambio en la forma de invocación provoca que Excel capture el resultado en el momento de la llamada y no marque la celda como dependiente de una función volátil. En esencia, se “rompe” la conexión directa que existiría con el recálculo constante, y el motor de Excel entiende que el resultado ya no requiere actualizarse automáticamente en cada cambio de la hoja.

Esta optimización se alinea con algunas de las nuevas capacidades y mecanismos de evaluación introducidos en Excel recientemente (por ejemplo, con las funciones lambda y la gestión de arrays dinámicos). Aunque en teoría la función original es volátil, esta “envoltura” sintáctica hace que su resultado se trate de forma estática—al menos hasta que se fuerce un recálculo o cambie una dependencia. Es una estrategia interesante para reducir recálculos innecesarios en hojas muy complejas.

¿Te interesa profundizar en cómo Excel está incorporando estas nuevas estructuras tipo lambda o quizás en otras funciones optimizadas para mejorar el rendimiento?

La clave aquí es que AHORA no es la función nativa de Excel, sino un Nombre definido que internamente guarda un LAMBDA, como explica la IA de Microsoft en este enlace:

Por tanto, =(@AHORA)() significa literalmente:

  • Toma el objeto función AHORA con intersección implícita
  • Ejecuta esa función sin argumentos
  • Devuelve la hora actual


Descarga AHORA

Descarga un par de ejemplos de cómo conservar el AHORA, probados en Excel para Microsoft 365, desde este enlace:

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

Las hojas no están protegidas para que sea fácil analizar 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


Idea de ahora

Este artículo se me ocurrió cuando ví este vídeo corto de Albert Cid, MVP en la categoría de M365 Apps & Services, que lo grabó cuando un amigo suyo le recomendó un artículo con una nueva idea para que la función AHORA() sea estática.


De momento me resisto a dejar de ser como ahora, dedicado a mis aficiones en Excel, pero tengo mucha presión para que cambie, y para que ayude en casa. Sobre todo desde que me autojubilé.

Si me animas a seguir como hasta ahora, me ayudarás a resistir a las presiones familiares, que no comprenden mi vocación y no entienden mi estilo de vida.

Y si me lo pides, hasta grabaré a partir de ahora un vídeo explicando cómo he hecho el archivo para conservar el AHORA.


Mira ahora este vídeo


Te agradezco que seas uno de los quinientos mil visitanes de mi blog, y me hará ilusión saber que aquí has aprendido algo nuevo de Excel.

Si compartes AHORA este blog con tus contactos, igual no hace falta esperar otros 15 años para llegar al millón de visitantes.

Soporte Técnico de Microsoft OneDrive

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


Feedback de la Comunidad de OneDrive

Vota para que Microsoft corrija cuanto antes el error que genera OneDrive en el código para incrustar un archivo Excel de forma personalizada:

Este problema impide insertar archivos Excel en un blog o en una página Web, con las opciones de interactividad que se podían usar hasta hace dos meses. También impide ver o interactuar con los archivos insertados desde hace 15 años en mi blog...

No tengo mucha confianza en que se resuelva ASAP pues, por experiencia, el feedback de Microsoft es demasiado lento...


Solicitud de Soporte a Microsoft OneDrive

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

El segundo problema lo denuncié al Soporte Técnico de Microsoft OneDrive el viernes 14 de febrero de 2025, día de San Valentín, pues fue cuando me envalentoné después de dos meses sin recibir soporte a mi primera denuncia del problema...

Una hora después de rellenar el formulario del Soporte Técnico me mandaron un primer correo:

En el que incluía un enlace a su política de Declaración de privacidad.


Respuesta del Soporte Técnico de MS OneDrive

El domingo 16 de febrero de 2025, a la hora de la siesta española, recibí un correo del Soporte de OneDrive, indicando su horario de trabajo: 05:30 PM a 02:00 AM (UTC+5:30), hora oficial de la India.

Lo curioso es que estaba escrito en un idioma español más que correcto, por lo que supuse que estaba redactado por la IA de MS Copilot o por un traductor inteligente, ya que no me creo que en la India haya técnicos de soporte que sepan suficiente español. Lo que tengo claro es que saben más inglés que los españoles de mi generación...

Mensaje recibido del Soporte de OneDrive:

Hola Pedro,

Gracias por ponerse en contacto con el soporte técnico de Microsoft OneDrive. ¡Esperamos que estés bien!

Hemos revisado su mensaje y estamos listos para ayudarlo con el mejor curso de acción. Sin embargo, no pudimos entender el problema descrito en su mensaje y no se agregó ninguna captura de pantalla que especifique problemas.

Para comprender mejor el problema que está experimentando con OneDrive, le pedimos amablemente que proporcione más detalles.

Sírvanse explicar con más detalle el problema.

Comparta amablemente una captura de pantalla que resalte el problema o cualquier mensaje de error que esté encontrando.

Enlace útil: Usar Recortes para realizar capturas de pantalla - Soporte técnico de Microsoft

Esperamos su respuesta. ¡Te deseamos un gran día!

Gracias

Compatibilidad con OneDrive.

Mi horario de trabajo: 05:30 PM a 02:00 AM (UTC+5:30)


Información del problema al Soporte Técnico de MS OneDrive

A partir de ese momento tuve que mandar varios correos al Soporte de OneDrive, explicando cómo generar el problema paso a paso, adjuntando un vídeo con el problema reproducido, la forma en que he detectado el problema y las trazas de mi sesión mientras ocurre el problema.

En el cuerpo de mi primer mensaje explicaba cómo reproducir el problema en una sesión abierta en Microsoft OneDrive, con el usuario de mi suscripción a Microsoft 365.

He seguido estos pasos para reproducir el problema:

1 - En cualquier archivo Excel, abro el menú contextual y selecciono: </> Insertar

Lo que hace que se muestre esta ventana:

2 - Hago clic en el enlace de más abajo: Personalizar la forma en que este libro insertado se mostrará a otros usuarios

Lo que abre la ventana para personalizar la forma en que este libro insertado se mostrará a otros usuarios.

PROBLEMA: El Código para insertar es erróneo, pues no genera nada en: src="?

Este es el código generado:

Este código no sirve para insertar el archivo Excel en mi blog o en una Web...

Hace 15 años que inserto archivos Excel en mi blog sin problemas, pero desde hace más de un mes no puedo personalizar la inserción de archivos Excel.

¿Qué solución o workaround me propone?


Vídeo reproduciendo el problema con OneDrive

Esta es la réplica del Soporte Técnico de MS OneDrive:

Hemos leído su respuesta y le agradecemos la información. Aunque ha explicado bien el problema, le agradeceríamos mucho que grabara la pantalla mientras reproduce el problema y lo compartiera con nosotros para una mejor comprensión. Necesitamos aislar el problema para averiguar si se trata de un problema de OneDrive o de una aplicación en línea de Excel.

El lunes 17 de febrero de 2025 les envié el vídeo solicitado.

ATENCIÓN: Si sigues los pasos del vídeo, no te llevará más de 2 minutos reproducir el problema de OneDrive:


Solicitud de más evidencias

El lunes por la noche el Servicio Técnico de OneDrive me solicitó más evidencias.

Contesté el martes. Mis respuestas comienzan por Pedro Wave:

Hola Pedro,

Gracias por su pronta respuesta y por compartir la grabación de pantalla con nosotros. Agradecemos sus esfuerzos. 

¿Podría informarnos si está experimentando el problema con este archivo de Excel en particular o con otros archivos de Excel también? 

Pedro Wave: El problema ocurre con todos los archivos de Excel con los que he probado, en varias máquinas diferentes con Win7, Win10 y Win11.

Además, descargue amablemente el archivo de la web de OneDrive a su unidad local, luego vuelva a cargar el archivo y verifique si puede generar un nuevo código y usarlo.

Pedro Wave: He descargado varios archivos de la web de OneDrive a mi unidad local, luego he vuelto a cargar el archivo en OneDrive y se sigue generando el código erróneo con src="?  que sigue estando en blanco.

Pruebe con otro navegador: A veces, el navegador que está utilizando puede tener problemas de compatibilidad con nuestro sitio web. Los diferentes navegadores tienen diferentes formas de manejar el contenido web, y cambiar a otro navegador (como Chrome, Firefox o Edge) a menudo puede resolver estos problemas. Esto puede ayudar a garantizar que obtenga la mejor experiencia posible.

Pedro Wave: Lo he probado con Microsoft Edge y Google Chrome, con el mismo código generado erróneo.

Utilice una conexión a Internet diferente: El problema al que te enfrentas puede estar relacionado con tu conexión a Internet. A veces, la congestión de la red o una señal débil pueden causar problemas con la carga de páginas web. Probar una conexión a Internet diferente, como cambiar de Wi-Fi a una conexión por cable o usar un punto de acceso móvil, puede ayudar a determinar si el problema está relacionado con su red.

Pedro Wave: Lo he probado con varias conexiones Wifi con muy buena señal, y con los datos de mi teléfono móvil, con el mismo resultado erróneo.

Pruebe la navegación InPrivate/Incógnito: El uso del modo InPrivate o de incógnito en el explorador puede ayudar a eliminar los problemas causados por los datos almacenados en caché o las cookies. Este modo evita que el navegador almacene el historial de navegación, las cookies y otros datos del sitio, que a veces pueden interferir con el correcto funcionamiento de los sitios web. Para usar este modo, simplemente abra una nueva ventana de InPrivate o Incógnito desde el menú de su navegador.

Pedro Wave: También se genera erróneamente con una navegación InPrivate/Incógnito.

Artículo útil- https://support.microsoft.com/office/embed-files-directly-into-your-website-or-blog-ed07dd52-8bdb-431d-96a5-cbe8a80b7418

Pedro Wave: Este enlace no describe cómo generar un código para insertar archivos Excel directamente en tu sitio web o blog ¡de forma personalizada!

Gracias por su comprensión. Esperamos su respuesta.

¡Mantente a salvo y cuídate muy bien!

Pedro WaveEsta última frase la entendí como un aviso para curarnos en salud, apartándonos de las aplicaciones de las grandes tecnológicas, como Microsoft y compañías estadounidenses similares, ¡pero no se lo dije!

Esto fue lo que les dije:

Pedro Wave¿Qué más puedo hacer? ¿Esperar a que Microsoft OneDrive restituya la generación sin errores del código para insertar de forma personalizada? ¡Tal y como funcionaba hasta hace unos dos meses!


Solicitud de rendimiento de mi equipo

El mismo martes recibí un correo solicitándome más información:

Le pedimos que comparta los registros HAR y Double Trace Me

Un archivo .har es básicamente una forma de exportar los datos de las transacciones HTTP utilizadas por un navegador, que mide su rendimiento y cómo interactúa con la página web que carga. Lo más común es que usemos principalmente el archivo .har para el navegador Chrome.

¿Qué es un TraceMe? Se denomina seguimiento de almacenamiento porque es esencialmente un cliente que registra el seguimiento, el servicio OneDrive está rastreando el tráfico de red. A continuación, los seguimientos se almacenan de forma segura en los servidores de Microsoft durante un período de tiempo limitado y se purgan automáticamente. Las escalaciones le indicarán cuándo usar un rastreo Har, si no está seguro, pida ayuda a los equipos.

El miércoles 19 de febrero de 2025 les mandé los registros, grabados mientras reproducía el problema en Google Chrome. Más información aquí:

¡Qué curioso! ¡Que el Soporte de Microsoft me diga que registre los datos con Google Chrome!


Escalado del problema

El miércoles recibí el último correo del Soporte Técnico de OneDrive:

Hola Pedro,

Gracias por su respuesta. Agradecemos sus esfuerzos. Hemos recibido los registros actualizados. Gracias por compartirlos con nosotros.

Queríamos brindarle una actualización sobre su caso. Estamos escalando su caso, y nuestro equipo de escalamiento está trabajando diligentemente para resolver el problema que ha estado experimentando. Entendemos la importancia de este asunto y estamos comprometidos a brindarle la solución más efectiva.

Tenga la seguridad de que le comunicaremos los próximos pasos tan pronto como tengamos una actualización de nuestro equipo. Agradecemos su paciencia y cooperación durante este proceso.

Gracias una vez más por su comprensión y apoyo. Te deseo un maravilloso día por delante.

Saludos

Equipo de soporte técnico de OneDrive


Conclusiones

1) Ahora "la pelota está en su tejado", el del equipo de escalamiento que hace "un trabajo de altura", escalando las incidencias y problemas al equipo de desarrollo...

2) No se por qué se empeña la gente de Soporte en decir que me van a brindar una actualización sobre "mi caso", como si el problema denunciado solamente fuera mío, al haberlo detectado yo, y no fuera un problema global de OneDrive.

3) Tengo la seguridad de que tardarán en comunicarme los próximos pasos, y que tardará mucho más en llegar una actualización del equipo de desarrollo para el problema de OneDrive. ¡Habrá que armarse de paciencia!

4) Lo de desearme "un maravilloso día", es un eufemismo cuando los días pasan sin que Microsoft resuelva el problema con OneDrive, que detecté y denuncié hace más de dos meses...

5) Lo peor es que desde hace dos meses no funciona la interacción de ninguno de los archivos Excel insertados durante 15 años en mi blog.

6) Tampoco puedo generar código personalizado para seguir insertando archivos Excel interactivos en los próximos artículos de mi blog, ni siquiera añadiendo los argumentos interactivos al código que se genera sin ninguna personalización.


IMPORTANTE: Vota para que Microsoft corrija cuanto antes el error que genera OneDrive en el código para incrustar un archivo Excel de forma personalizada:

Continuará...

Mi lista de blogs