¿Alguna vez habéis datos teniendo un filtro aplicado?
Quizá penséis que lo habéis hecho mal y se han pegado solo algunos de los datos.
Realidad lo que sucede es que solo habéis cenado algunas celdas y Microsoft Excel las pegará como un rango continuo.
A modo de ejemplo, en este listado voy a seleccionar todas las palabras que contienen "al".
Una vez aplicado el filtro solo quedan visibles 13 líneas, en lugar de las 56 originales.
Si copio esas 13 líneas y las pego en la columna F, aparentemente solo me ha pegado 4 datos.
Si nos fijamos un poco más, veremos que los cuatro datos pegados, no se responden con los cuatro primeros que hemos copiado.
Debido a que realmente Microsoft Excel ha pegado los 13 datos que hemos copiado de forma continua en las 13 primeras filas de la columna F.
Como se puede apreciar fácilmente si quitamos el filtro.
Cómo solución para poder pegar los datos exactamente en las mismas filas lo más fácil es pegar todos los datos, aplicando el filtro con lógica inversa y eliminar los datos sobrantes.
Que levante la mano al que Microsoft Excel no le haya impreso hojas de más.
La mayoría de los usuarios de Excel usan siempre la vista normal.
En esta vista es imposible saber cuentas páginas de papel va a necesitar nuestra hoja de cálculo para ser impresa. Y ello suele provocar desagradables sorpresas.
En la inferior derecha de la ventana de Excel, al lado de la barra de zoom, se encuentran tres botones que nos permiten cambiar rápidamente entre las tres formas de visualizar nuestra hoja de cálculo.
La izquierda es la que usamos habitualmente la vista normal.
El segundo botón es la vista de página.
Esta es una vista que pretende simular la forma de ver los documentos de Microsoft Word, sin llegar a conseguirlo del todo.
Árbol recomendable antes de imprimir acceder a esta vista para saber qué partes del documento nos entran en cada página.
Recordar que siguen funcionando los anchos de las columnas de forma que si en cogemos una columna podemos conseguir que entren más datos en la misma página impresa.
Aún así, resulta difícil saber cuántas páginas se van a necesitar para imprimir la hoja de cálculo.
Importante tener en cuenta que, por defecto, Microsoft Excel imprimirá todas las celdas hasta la última que tenga datos, lo que puede generar una enorme cantidad de hojas en blanco en nuestra impresora.
A partir de Excel 2007 solo está limitado por los recursos del ordenador (disco duro y memoria RAM).
Como ejemplo un fichero de Microsoft Excel con más de 400 hojas.
Extrañamente al guardar este fichero en formato xls se han mantenido todas las hojas, incluso abriéndolo con Libreoffice Calc.
Esto es cierto para la versión de 64 bits de Microsoft Office, ya que la versión de 32 bits solo permite gestionar 2 GB de memoria RAM, por lo que esto supondrá la limitación, ya que a día de hoy la mayoría de ocs tiene mucha más memoria disponible.
Consejo, si tenéis instalada la versión de 32 bits de Microsoft Office, sustituirla por la de 64 bits, notaréis una enorme mejora.
Hoy os muestro cómo automatizarlo mediante una sencilla Macro en Visual Basic for ApplicationsVBA.
La forma más sencilla de comenzar a programar en VBA, es usando el grabador de macros para generar la macro y luego modificar el código.
En el ejemplo uso ese método.
Podéis ver qué activé la grabación de macros, para luego realizar el proceso que expliqué ayer para reemplazar la letra a acentuada por su equivalente sin acento.
El resultado, generado por el grabador de macros, es este código:
En este caso, modificar la macro, es tan sencillo como copiar y pegar estas líneas tantas veces como caracteres distintos deseemos sustituir. En el código de ejemplo los he marcado en negrita.
En el vídeo sustituyo la vocales mayúsculas y minúsculas con los acentos grave, agudo y circunflejo, presentes en idiomas como el francés o el catalán, y la ñ y la ç, presentes en castellano o portugués.
Este ejemplo se podría realizar con un bucle, pero como introducción a la modificación de macros, creo que es más instructivo de esta manera.
Toda instrucción que comience por apóstrofe en VBA es un comentario y no es tenido en cuenta por el programa.
El aspecto final de la macro es el de la imagen.
Aquí os dejo una animación con un ejemplo de la apertura y ejecución de la macro.
NOTA2:
Si observáis el vídeo, veréis que eliminó la primera instrucción, en la cual se seleccionaba la columna A, esto lo hago para que la macro se ejecute sobre las celdas seleccionadas, pudiendo aplicarla de esta forma a distintos rangos de celdas.
Espero que os resulte útil, esta es una de mis macros de almohada.