domingo, enero 19, 2014

El extraño caso del cálculo manual persistente

Excel tiene una manera peculiar de manejar las opciones de cálculo. Estas pueden ser manual, automático o automático excepto en tablas de datos. En las Opciones de Excel, en Fórmulas podemos ver las posibilidades


Las opciones de cálculo son hereditarias (ya verán por qué) y siguen estas reglas:

• El primer documento abierto utiliza el modo de cálculo con la que se guardó. Documentos abiertos posteriormente utilizan el mismo modo.

• Al cambiar el modo de cálculo de un documento abierto se cambia el modo de todos los documentos abiertos.

• Si se cierran todos los documentos y crear un documento nuevo, el nuevo documento utiliza el mismo modo de cálculo como los documentos cerrados previamente.

• Si ha cambiado el modo de cálculo en un libro y se guarda el archivo, se guarda el modo de cálculo actual.


Si cerramos una sesión de Excel y el último cuaderno que guardamos estaba definido con cálculo automático, al abrir una nueva sesión esperamos que también el primer cuaderno que creamos esté definido con cálculo automático.

Sin embargo mi Excel insistía en abrir el primer cuaderno de cada sesión en estado de cálculo manual. Intenté todos los remedios conocidos (guardar un cuaderno en Automático y cerrar Excel, revisar si hay un WorkbookOpen event en algún Add-in, si el cuaderno en XLSTART está definido con cálculo manual). ¡Nada! Es más, no tengo ningún archivo en XLSTART, así que mi sesión se abre sin ningún "Libro1".

Al borde de la desesperación encontré el problema: de alguna manera que no logro entender, había guardado el cuaderno Personal.xlsb con la opción Manual.

Podemos solucionar este problema de dos maneras:

Por defecto, el cuaderno Personal está oculto. Este cuaderno tiene una hoja y para cambiar sus propiedades tenemos que volverlo visible



Una vez visible cambiamos la propiedad, guardamos y volvemos a ocultar.

Otra posibilidad, sin necesidad de mostrar el Personal, es abrir el editor de Vb (Alt+F11), nos aseguramos que el Personal sea el cuaderno activo y en la ventanilla Inmediato ponemos:

Workbooks("Personal.xlsb").Parent.Calculation = xlCalculationAutomatic: Workbooks("Personal.xlsb").Save







2 comentarios:

  1. Hola, Jorge.
    Cuando dices que está oculto (en el caso de no tener un libro como el que mencionas), ¿sabes el path o camino real en donde se alojaría dicho archivo, o es propio o dentro del sistema operativo o de excel y por lo cual no se ve?.
    Mencionas un "cuaderno" llamado Personal.Xlsb (que debería ser un libro binario), pero ¿donde estaba guardado?
    No me quedó claro esa parte.
    En mi caso windows 7 con Office 2003+2007+2010 (este ultimo en ingles), cuando trabajo con plantillas por ejemplo el propio sistema "intenta" guardar por defecto dichas plantillas en:
    C:\Users\Administrador\AppData\Roaming\Microsoft\Plantillas...
    No se si en tu caso, si borraras dicho libro.. ¿se solucionaría el problema o no?...
    Gracias por tu gran aporte Jorge.


    ResponderBorrar
  2. Alfredo, el Personal (xls en Excel 2003, xlsb en 2010), es ecuaderno donde guardas las macros que quieres que estén disponbibles para todos los cuadernos abiertos en la sesión. No es una plantilla. Este cuaderno se crea la primera vez que grabas una macro (fijate en esta nota).
    Para saber su ubicaci[on puedes poner esta sentencia en la ventana Inmediato del editor de Vb

    ?workbooks("Personal.xlsb").FullName

    En mi caso el resultado es

    C:\Users\JDunkel\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB

    Dado que el Personal es el cuaderno donde guardas las macros generales y las funciones UDF, lo último que querás hacer es borrarlo!

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.