lunes, marzo 08, 2010

Imprimir páginas pares e impares en Excel

En estos tiempos que corren donde tiene que ser verde, es curioso que Excel no ofrezca la posibilidad de imprimir páginas pares o impares como existe en Word. Esta funcionalidad nos permite ahorrar papel imprimiendo en ambas caras de las hojas.

Podemos superar esta carencia con esta macro que Ron de Bruin publica en su página, quien a su vez cita a Gord Dibben


Sub Print_Odd_Even()
    Dim Totalpages As Long
    Dim StartPage As Long
    Dim Page As Integer
  
    On Error GoTo errHandler

    StartPage = 1  '1 = Odd and 2 = Even

    StartPage = InputBox("Ingrese 1 para impares, 2 para pares")

    Totalpages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
    For Page = StartPage To Totalpages Step 2
        ActiveSheet.PrintOut from:=Page, To:=Page, _
                             Copies:=1, Collate:=True
    Next
  
    Exit Sub
  
errHandler:
Exit Sub

End Sub



El mejor lugar para guardar esta macro es el cuaderno de macros Personal de manera que la macro siempre esté disponible. También podemos crear un icono o un atajo de teclado para lanzar la macro con facilidad.

El corazón de esta macro es la macrofunción XLM GET.DOCUMENT(50), así que agregaremos algunas palabras sobre el tema.

Como ya he publicado en el pasado las funciones macro del lenguaje XLM, que fue usado hasta la versión 5 de Excel, siguen vigentes por motivos de compatibilidad. Estas funciones nos permiten hacer tareas como por ejemplo determinar cuántas páginas a imprimir hay en un cuaderno de Excel.

viernes, marzo 05, 2010

Consolidar datos de varios cuadernos Excel con MS Query

Ya hemos tratado anteriormente el tema de consolidación de datos de varios cuadernos u hojas Excel usando MS Query. Sin embargo el uso de esta herramienta presenta ciertos problemas y la ayuda en línea del MS Query es muy pobre.

En esta nota veremos cómo lograr esta consolidación para lo cual tendremos que editar y modificar la consulta SQL que genera el MS Query. Aclaremos que esta tarea es sencilla y no requiere conocimientos del lenguaje SQL.

En nuestro ejemplo suponemos que tenemos los datos de ventas de tres sucursales de una empresa en tres cuadernos distintos: ventasNorte.xls, ventasSur.xls y ventasOeste.xls. Las tablas de datos de cada cuaderno tienen la misma estructura, es decir, los mismos campos (columnas) en las mismas posiciones.

Empezamos por incluir cada tabla en un nombre. Por ejemplo, en ventasNorte.xls incluimos la tabla de datos en el nombre consNorte


También podemos crear el nombre usando el cuadro de nombres




El próximo paso es abrir un cuaderno en blanco donde consolidaremos los datos. En el nuevo cuaderno activamos la pestaña Datos y en Obtener Datos Externos usamos la opción Desde Microsoft Query




En Excel 2003 usamos




En Elegir origen de datos seleccionamos Excel Files




En el paso Select Workbook (seleccione cuaderno), seleccionamos uno de los cuaderno, por ejemplo, ventasNorte.xls




En el próximo paso seleccionamos el nombre del rango y pasamos todas las columnas a la consulta




Seguimos adelante en el proceso hasta llegar al último paso donde seleccionamos la opción Ver datos o modificar en Ms Query




Lo que veremos en la interfaz del MS Query que se abre es esto




Apretamos el botón SQL, lo que nos permite acceder a la sintaxis de la consulta.




En lugar de

SELECT rngNorte.Sucursal, rngNorte.Mes, rngNorte.Ventas, rngNorte.Clientes
FROM `D:\Ventas\ventasNorte`.rngNorte rngNorte

ponemos

SELECT * FROM `D:\Ventas\ventasNorte`.rngNorte
UNION ALL
SELECT * FROM `D:\Ventas\ventasSur`.rngSur
UNION ALL
SELECT * FROM `D:\Ventas\ventasOeste`.rngOeste




Al apretar Aceptar veremos




Apretamos Aceptar y todos los datos serán consolidados en la tabla del MS Query




En el menú del Query elegimos Archivo-Devolver los datos a Excel lo que abre el diálogo de Importar datos en Excel, donde podemos elegir la forma de ver los datos en Excel. Por lo general usaremos la opción Informe de tabla dinámica




En Excel 2003 la interfaz es algo distinta



lunes, marzo 01, 2010

Activar Macros y controles ActiveX en Excel 2010

Quien haya descargado e instalado Excel 2010 descubrirá, como en Excel 2007, que por defecto la pestaña de Programador no aparece en la cinta. Esto se debe a que por defecto las macros no están habilitadas en Excel 2010. Tampoco tenemos acceso a los controles (formulario y ActiveX).

Si están buscando una solución al problema "No se puede insertar el objeto", debido a la actualización de Microsoft del 9 de diciembre, lean esta nota.

Para poder usar las macros y los controles en Excel 2010 tenemos que seguir los siguientes pasos:
Activamos la pestaña Archivo y apretamos el botón Opciones



Activamos el Centro de Confianza y apretamos el botón Configuración del centro de confianza



En el centro e confianza activamos la opción Configuración de macros y habilitamos la opción Habilitar todas las macros



Apretamos Aceptar con lo que habremos habilitado las macros en nuestra copia de Excel 2010.
Sin embargo la pestaña de Programador no aparecerá. Para hacerla aparecer usamos nuevamente el menú Opciones de Archivo y en Personalizar la cinta de opciones marcamos Programador




A partir de ese momento podemos grabar, editar y crear macros y también usar controles en nuestros cuadernos.