¿Cómo elimino los datos cargados por importación al abrir un archivo en el Microsoft Excel?
Como hago para eliminar datos cargados en un archivo al abrirse, esos datos son producto de una importación de otro archivo. Yo quiero hacer algo con VBA para que cuando el archivo se abra desaparezcan esos datos y se cargen los datos nuevos, ya que el archivo de donde los extraigo lo utilizo de base de datos y la información cambia cada mes.
2 Respuestas
Respuesta de villaju
1
1
¿Cómo va todo? Efectivamente, se puede hacer con VBA, y casi todo el código se consigue con la grabadora de macros: vamos a suponer que Libro1 es el que contiene los datos, y Libro2 es donde se van volcar, y donde quieres que se actualicen cuando se abra:
Abre el libro2, pon en marcha la grabadora y sigue los siguientes pasos:
Selecciona toda la hoja, (por ejemplo dando a la esquina superior, o bien mediante Control+ barra espaciadora y luego Mayúsculas+Barra espaciadora)
Edición-Borrar-todo.
Abre el libro1, situate en él y ve a Edición-Ir a-Especial-Región actual.
Copia
Vuelve a libro2, pega los datos. Cierra libro1
Ya tienes el código que necesitas, para que se ejecute cuando abras el Libro2, sólo debes colocarlo en el código del evento "Abrir" (supongo que ésto sabes hacerlo, en caso contrario, dímelo)
Pero yo te propongo otra solución alternativa, sin código VBA: Excel puede importar datos de bases externas: Ve a libro1, y nombra el rango que quieres volcar en libro2, con cualquier nombre, por ejemplo "MisDatos". Cierra el libro1, y ahora haz lo siguiente en libro2:
Datos-Obtener datos externos-Nuva consulta base de datos:
Allí elige Excel Files*. En el cuadro que te aparece a continuación busca el libro1, y acepta. Si todo ha salido bien, tendrás un cuadro donde aparecerá "MisDatos" con un signo más al lado: si le das, aparecerá el encabezamiento de cada una de las columnas, vete volcando las que necesites al otro recuadro, luego dale a "siguiente", hasta que llegues a "Finalizar". Dale, y te aparecerá el último recuadro:"devolver datos externos a Microsoft Excel". Ve a "propiedades" y pincha "actualizar al abrir el archivo" . Acepta, y se te volcarán los datos.
Te he propuesto esta solución, porque es mucho más potente, y verás que te permite hacer filtros, y multitud de cosas más, que quizás en un futuro pudieras necesitar. Te aseguro que es una herramienta bastante potente de Excel, y merece la pena que la investigues un poco. Cuando cambies los datos del libro1, se actualizará en libro2. Lo único que me queda es advertirte que "MisDatos" se refiere al rango que tenías originariamente en Libro1, pero si aumentan el número de filas, ya no se incluirán: por supuesto que ésto tiene diversas soluciones, te dejo a ti que investigues, por no seguir alargando la pregunta, de todas formas si no supieras cómo solucionarlo, preguntame y con gusto te respondo.
Abre el libro2, pon en marcha la grabadora y sigue los siguientes pasos:
Selecciona toda la hoja, (por ejemplo dando a la esquina superior, o bien mediante Control+ barra espaciadora y luego Mayúsculas+Barra espaciadora)
Edición-Borrar-todo.
Abre el libro1, situate en él y ve a Edición-Ir a-Especial-Región actual.
Copia
Vuelve a libro2, pega los datos. Cierra libro1
Ya tienes el código que necesitas, para que se ejecute cuando abras el Libro2, sólo debes colocarlo en el código del evento "Abrir" (supongo que ésto sabes hacerlo, en caso contrario, dímelo)
Pero yo te propongo otra solución alternativa, sin código VBA: Excel puede importar datos de bases externas: Ve a libro1, y nombra el rango que quieres volcar en libro2, con cualquier nombre, por ejemplo "MisDatos". Cierra el libro1, y ahora haz lo siguiente en libro2:
Datos-Obtener datos externos-Nuva consulta base de datos:
Allí elige Excel Files*. En el cuadro que te aparece a continuación busca el libro1, y acepta. Si todo ha salido bien, tendrás un cuadro donde aparecerá "MisDatos" con un signo más al lado: si le das, aparecerá el encabezamiento de cada una de las columnas, vete volcando las que necesites al otro recuadro, luego dale a "siguiente", hasta que llegues a "Finalizar". Dale, y te aparecerá el último recuadro:"devolver datos externos a Microsoft Excel". Ve a "propiedades" y pincha "actualizar al abrir el archivo" . Acepta, y se te volcarán los datos.
Te he propuesto esta solución, porque es mucho más potente, y verás que te permite hacer filtros, y multitud de cosas más, que quizás en un futuro pudieras necesitar. Te aseguro que es una herramienta bastante potente de Excel, y merece la pena que la investigues un poco. Cuando cambies los datos del libro1, se actualizará en libro2. Lo único que me queda es advertirte que "MisDatos" se refiere al rango que tenías originariamente en Libro1, pero si aumentan el número de filas, ya no se incluirán: por supuesto que ésto tiene diversas soluciones, te dejo a ti que investigues, por no seguir alargando la pregunta, de todas formas si no supieras cómo solucionarlo, preguntame y con gusto te respondo.
- Compartir respuesta
- Anónimo
ahora mismo
Respuesta de nanncas
1
1
nanncas, soy reconocido como un mason libre de buenas costumbres y...
Primeramente podemos hacerlo de forma manual al eliminar las columnas o las filas en las que se encuentran los datos no deseados, caso contrario podemos crear una macro para cada vez que tenemos el archivo con la aplicación de la macro podamos eliminarlo.
Las macros son muy sencillas de realizar, sólo necesitas tener 1% de lógica, 2% de conocer excel y un 97% de querer hacerlo.
Las macros son muy sencillas de realizar, sólo necesitas tener 1% de lógica, 2% de conocer excel y un 97% de querer hacerlo.
Yo deseo hacerlo con VBA para que se active automáticamente al abrir el archivo y se cargue la nueva data
Nuevamente la explicación es muy grande, por favor envía un correo para enviarte algunos artículos de visual basic que e escrito, trataré de indicarte es estar cortas líneas
Primeramente debes tener nociones de lo que Visual Basic para lograr programar...
Una de las capacidades menos explotadas es la referente a la automatización de operaciones o procesos repetitivos, ¿qué se realiza mediante una? ¿Macro instrucción? O macro, a secas.
Una macro es una serie de comandos y funciones que se almacenan en el Visual Basic para Aplicaciones y que cada vez que es invocada, ejecuta dichos pasos en la secuencia definida. Estas macro instrucciones pueden ser tan complejas como el usuario lo necesite, aunque es posible que requiera cierto conocimiento de Visual Basic para complementarlas.
Antes de continuar debemos comentarles que no nos referimos al Visual Basic que se vende como parte de los productos de Microsoft para el que se necesitaría una licencia y demás requerimientos, sino a un módulo implícito en Office 95 y superiores que es donde se programan todas estas rutinas.
Hagamos un pequeño ejercicio para que se entienda como trabaja una macro, para lo cual vamos a crear una que copie el contenido de la celda A1 a la celda A2 y después imprima el trabajo.
Preparativos.
Primero debemos salvar y cerrar todos los libros de trabajo que tengamos activos. Acto seguido creamos un libro nuevo donde grabaremos la macro, ¿pongámosle? ¿Libro de macros?, sólo por dar un nombre significativo.
¿En la celda A1 tecleamos el texto? ¿Prueba?.
Damos un click en la celda A2.
Grabando la macro.
¿En el menú? ¿Herramientas? ¿Activamos la opción? ¿Macro? Y pulsamos el botón que activa la grabación de estas.
¿Tecleamos? Primera_Macro? Cuando solicite un nombre para ésta y marcamos para que cree un tecla rápida o shortcut. Cuando pregunte en que libro de trabajo se grabará la macro, indicamos que en el que se encuentra activo. Después de todos estos pasos, pulsamos OK.
Nota: El nombre de la macro no puede contener espacios.
En este momento debe aparecer un menú flotante con el botón para detener la grabación de la macro. Cuando lo solicite, hay que marcar con un click Referencia Relativa o Relative Reference (se comentará esto más adelante). Seguimos estos pasos:
¿Damos un click en la celda A1 y pulsamos? ¿Copiar? En el menú Edición.
Damos un click en la celda A2 y pegamos el contenido de la primera.
¿Desde el menú? ¿Archivo? Mandamos imprimir nuestro documento.
Pulsamos el botón del menú flotante para detener la grabación.
A efectos de identificar el ejercicio original, ¿borramos el contenido de las celdas A1 y A2 y en la primera escribimos? ¿Prueba1?.
Salvamos nuestro documento, que en este momento ya tiene la macro.
Ejecutando la macro.
A. Desde el menú.
¿En el menú? ¿Herramientas? ¿Pulsar la opción? ¿Macros? ¿Y activar el comando? ¿Macros?.
¿En el cuadro de diálogo activar con un click la denominada? Primera_Macro? ¿Y activarla con el botón? ¿Correr?.
¿Veremos qué el texto? ¿Prueba1? Se copia a la celda A2 y se imprime el documento.
B. Utilizando teclas rápidas o shortcut.
Borramos el contenido de las celdas A1 y A2. ¿En A1 escribimos? ¿Prueba2? Y damos un click en la celda A2.
Presionamos las teclas Control+A simultáneamente para ejecutar la macro.
¿Veremos qué el texto? ¿Prueba2? Se copia a la celda A2 y se imprime el documento.
Asignando las macros a controles.
Para evitar tener que acordanos de las combinaciones de letras, podemos asignar las macros a controles para que aparezcan en nuestra hoja de cálculo.
¿En el menú? ¿Ver? ¿Se activa? ¿Barras de Herramientas? ¿Y se pulsa? ¿Formas?.
Aparece una barra de herramientas y se dibuja un botón en la hoja de trabajo. ¿Automáticamente aparecerá el cuadro de diálogo de? ¿Asignar Macro?.
¿Se da un click a? Primera_Macro? ¿De la lista que aparezca y se pulsa? ¿Aceptar?.
Con el botón seleccionado, ¿se pulsa la opción? ¿Control? ¿Del menú? ¿Formato?. Aquí se puede seleccionar las características de la fuente, como darle otro color o tipo.
Todavía con el botón seleccionado se debe dar un click en él para activar el modo de edición del texto, ¿sustituyendo el contenido por? ¿Macro 1?.
Seleccionar cualquier celda de la hoja para deseleccionar el botón y borrar el contenido de las celdas A1 y A2.
¿Escribir en A1? ¿Prueba3?, seleccionar A2 y pulsar el botón de la macro, se deberá ejecutar como las veces anteriores.
Referencias a celdas relativas.
El ejercicio anterior fue creado en base a una operación que sólo puede ejecutarse de una celda específica a otra, por lo que es posible que necesitemos hacer la rutina más flexible para ampliar sus posibilidades, por lo que haremos una nueva macro pero con celdas relativas.
En vez de trabajar en las celdas A1 y A2, utilizaremos las celdas A3 y A4. ¿En la Celda A3 escribimos? ¿Prueba4? Para diferenciar el ejercicio y seleccionamos la celda A4.
¿En el menú? ¿Herramientas? ¿Activamos la opción? ¿Macro?, ¿Elegimos Nueva Macro y le damos el nombre? Macro_Relativa?, definiendo el lugar de aplicación la hoja activa.
Al iniciar la grabación definimos Referencia Relativa en la barra y seleccionamos la celda A3, copiando su contenido a la celda A4, mandando imprimir el trabajo posteriormente. Entonces detenemos la grabación.
En este momento hemos creado una macro que copiará el contenido de una celda en la inmediata inferior, sin importar su posición en la hoja de trabajo. Sólo nos resta salvar el documento para que tengamos la nueva macro en nuestra hoja de cálculo.
Este es sólo el principio, en próximas publicaciones veremos más a fondo todas estas aplicaciones.
Para obtener una copia completa del documento en que se basa este artículo, visiten http://support.microsoft.com/support/excel/content/vba101/default.asp
Como recordaremos de nuestra anterior edición, comenzamos a ver los fundamentos para crear macros en nuestras hojas de cálculo; ahora llega el momento de hacer otros procesos un poco más sofisticados, por lo que es necesario que se tengan nociones de Visual Basic para trabajar algunos de estos apartados, no se preocupen, de cualquier forma siempre tendremos los menús de ayuda si nos atoramos un poco.
Antes de empezar les recomendamos que lean y tengan a la mano el artículo anterior, de manera que les sea más fácil retomar estas lecciones.
Como único recordatorio, les avisamos que la hoja de cálculo donde salvamos nuestra macro instrucción se llamó "Libro de Macros" y el programa tuvo por nombre "Primera_Macro".
Manejando una Macro para todas las hojas de cálculo.
Tal vez lo primero que se preguntaron, en el caso de haber hecho la tarea, es ¿cómo le hago para tener disponible una macro en todos mis libros de trabajo?, la respuesta es muy sencilla, lo hacemos mediante la modificación del archivo Personal.xls.
Personal.xls es un libro de trabajo general, el cual es cargado siempre que Excel inicia, sólo que no lo vemos porque tiene el atributo de Escondido (Hidden), por lo que si necesitamos modificarlo lo debemos de mostrar a través del comando "Mostrar" del menú "Ventana". En caso que no exista lo podemos crear con un libro de trabajo nuevo, salvarlo con este nombre y dejarlo en la carpeta "InicioXL" (XLStart), que se encuentra en la carpeta "Office" del directorio donde esta instalado MSOffice. Para efectos prácticos, cada vez que dejamos de trabajar con este archivo, lo debemos salvar y luego activar el comando "Ocultar" del menú "Ventana", para que no se vea cuando iniciamos la aplicación.
Para no hacerles más de emoción esta parte, repitan la operación del artículo anterior para que tengan una macro que copia el contenido de una celda en otra y luego lo manda imprimir. Recuerden asignar una combinación de teclas o "Shortcut" al procedimiento, de manera que cada vez que opriman las teclas, se pueda ejecutar.
El editor de Visual Basic.
Retomando elementos anteriores, ya les habíamos informado que estas rutinas se graban en un módulo de Visual Basic, nativo de la suite y que es compartido tanto por la hoja de cálculo, como Word y Power Point, por lo que el proceso de modificación en todos es similar al que veremos aquí. Por cierto, el módulo es compartido pero los procedimientos que generemos en cada aplicación no lo son, por lo que no por definir una rutina en Word la podemos utilizar en Excel, es necesario que volvamos a definirla.
Iniciando el editor de VB.
Cerramos todas los libros de trabajo activos y abrimos el que contiene las primeras macros que hicimos, llamado Libro de Macros o como le hayamos puesto. Para esto, también debe estar activo el Personal.xls, recuerden que se inicia junto con la aplicación y que ya lo debemos de haber modificado.
Presionar las teclas ALT+F11 para iniciar el editor de VB.
La pantalla que aparecerá será similar a Visual Basic 4.0, cuyo objetivo es facilitar el uso de esta aplicación tanto a usuarios novatos como avanzados.
En este caso (y como consecuencia de lo anterior), cada archivo será llamado "Proyecto". La ventana en cuestión nos presentará, según lo solicitemos, el libro de trabajo (incluyendo hojas de trabajo, gráficas y objetos), módulos de VB y formas del usuario.
En la ventana que nos aparezca encontraremos un signo de más (+) junto a cada proyecto, que incluye las hojas de trabajo y los módulos donde se hayan grabado las macros, con un click en dichos símbolos nos los desplegarán. Ahora debemos dar un doble click al módulo de nuestra hoja de trabajo, que es propiamente la macro que creamos anteriormente.
Al activar el módulo se desplegará una ventana con el código de la macro que hayamos creado. A continuación les presentamos el primer ejercicio, en el que no utilizamos celdas relativas para la copia del contenido de las celdas:
Sub Mi_Primera_Macro ()
'
' Mi_Primera_Macro Macro
'Macro recorded 07/15/99 by <tu nombre>
'
'Keyboard Shortcut: Ctrl+a
'
Range("A1").Select
Selection.Copy
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWindow.SelectedSheet.PrintOut Copies:=1, Collate:=True
End Sub
Nota: Las líneas con comilla o apostrofe son comentarios, no se ejecutan como parte del programa.
Este código siempre es escrito, grabado y almacenado en módulos, pudiendo existir más de una macro por módulo y más de un módulo por hoja de trabajo; siempre que grabamos una macro, ésta se almacena en el mismo módulo, pero si cerramos y abrimos nuestro proyecto (hoja de cálculo) y grabamos una macro nueva, esta se almacena en un módulo distinto.
Modificando el código.
Esto se hace a través de la pantalla que presenta el código, es posible cortar, copiar y pegar código dentro de los módulos, entre módulos separados y módulos de diferentes proyectos igual que si fuera un procesador de texto, a continuación modificaremos en código que comentamos en el apartado anterior.
Con el siguiente código le ordenaremos a la macro copiar el contenido de la selección en múltiples celdas y posteriormente imprimir toda la hoja de cálculo, no sólo lo seleccionado.
Sub Mi_Primera_Macro ()
'Mi_Primera_Macro Macro
'Macro recorded 07/15/99 by <tu nombre>
'Keyboard Shortcut: Ctrl+a
'
Range("A5").Select
Selection.Copy
Range("A10").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.PrintOut Copies:=1, Collate:=True
End Sub
Como se lo han de imaginar, el contenido de la celda A5 se copiará a A10 y todo el libro de trabajo se imprimirá.
En el menú "Ver", activar el comando Microsoft Excel, lo que dejará al Editor de Macros corriendo en segundo plano y nos mandará a la hoja de cálculo.
Teclear"Macro modificada" en la celda A5 y activar la rutina, de manera que el contenido de la celda se copie a A10 y se imprima el libro de trabajo. Estamos en el supuesto que esta hoja de trabajo es la misma en que originalmente se creó el ejercicio del artículo anterior.
Esperamos que esta breve guía les ayude a adentrarse en la utilización de VB en Office, recuerden que siempre pueden obtener ayuda mediante la tecla F1 de su teclado para aspectos específicos de la aplicación.
P.D. Estos módulos de VB son los que se utilizan para crear Macro Virus, lo interesante aquí es conocer como funcionan estas rutinas y podamos defendernos mejor de este tipo de invasores.
Pueden revisar el ejercicio completo en http://support.microsoft.com/support/excel/content/vba101/defaul.asp
Primeramente debes tener nociones de lo que Visual Basic para lograr programar...
Una de las capacidades menos explotadas es la referente a la automatización de operaciones o procesos repetitivos, ¿qué se realiza mediante una? ¿Macro instrucción? O macro, a secas.
Una macro es una serie de comandos y funciones que se almacenan en el Visual Basic para Aplicaciones y que cada vez que es invocada, ejecuta dichos pasos en la secuencia definida. Estas macro instrucciones pueden ser tan complejas como el usuario lo necesite, aunque es posible que requiera cierto conocimiento de Visual Basic para complementarlas.
Antes de continuar debemos comentarles que no nos referimos al Visual Basic que se vende como parte de los productos de Microsoft para el que se necesitaría una licencia y demás requerimientos, sino a un módulo implícito en Office 95 y superiores que es donde se programan todas estas rutinas.
Hagamos un pequeño ejercicio para que se entienda como trabaja una macro, para lo cual vamos a crear una que copie el contenido de la celda A1 a la celda A2 y después imprima el trabajo.
Preparativos.
Primero debemos salvar y cerrar todos los libros de trabajo que tengamos activos. Acto seguido creamos un libro nuevo donde grabaremos la macro, ¿pongámosle? ¿Libro de macros?, sólo por dar un nombre significativo.
¿En la celda A1 tecleamos el texto? ¿Prueba?.
Damos un click en la celda A2.
Grabando la macro.
¿En el menú? ¿Herramientas? ¿Activamos la opción? ¿Macro? Y pulsamos el botón que activa la grabación de estas.
¿Tecleamos? Primera_Macro? Cuando solicite un nombre para ésta y marcamos para que cree un tecla rápida o shortcut. Cuando pregunte en que libro de trabajo se grabará la macro, indicamos que en el que se encuentra activo. Después de todos estos pasos, pulsamos OK.
Nota: El nombre de la macro no puede contener espacios.
En este momento debe aparecer un menú flotante con el botón para detener la grabación de la macro. Cuando lo solicite, hay que marcar con un click Referencia Relativa o Relative Reference (se comentará esto más adelante). Seguimos estos pasos:
¿Damos un click en la celda A1 y pulsamos? ¿Copiar? En el menú Edición.
Damos un click en la celda A2 y pegamos el contenido de la primera.
¿Desde el menú? ¿Archivo? Mandamos imprimir nuestro documento.
Pulsamos el botón del menú flotante para detener la grabación.
A efectos de identificar el ejercicio original, ¿borramos el contenido de las celdas A1 y A2 y en la primera escribimos? ¿Prueba1?.
Salvamos nuestro documento, que en este momento ya tiene la macro.
Ejecutando la macro.
A. Desde el menú.
¿En el menú? ¿Herramientas? ¿Pulsar la opción? ¿Macros? ¿Y activar el comando? ¿Macros?.
¿En el cuadro de diálogo activar con un click la denominada? Primera_Macro? ¿Y activarla con el botón? ¿Correr?.
¿Veremos qué el texto? ¿Prueba1? Se copia a la celda A2 y se imprime el documento.
B. Utilizando teclas rápidas o shortcut.
Borramos el contenido de las celdas A1 y A2. ¿En A1 escribimos? ¿Prueba2? Y damos un click en la celda A2.
Presionamos las teclas Control+A simultáneamente para ejecutar la macro.
¿Veremos qué el texto? ¿Prueba2? Se copia a la celda A2 y se imprime el documento.
Asignando las macros a controles.
Para evitar tener que acordanos de las combinaciones de letras, podemos asignar las macros a controles para que aparezcan en nuestra hoja de cálculo.
¿En el menú? ¿Ver? ¿Se activa? ¿Barras de Herramientas? ¿Y se pulsa? ¿Formas?.
Aparece una barra de herramientas y se dibuja un botón en la hoja de trabajo. ¿Automáticamente aparecerá el cuadro de diálogo de? ¿Asignar Macro?.
¿Se da un click a? Primera_Macro? ¿De la lista que aparezca y se pulsa? ¿Aceptar?.
Con el botón seleccionado, ¿se pulsa la opción? ¿Control? ¿Del menú? ¿Formato?. Aquí se puede seleccionar las características de la fuente, como darle otro color o tipo.
Todavía con el botón seleccionado se debe dar un click en él para activar el modo de edición del texto, ¿sustituyendo el contenido por? ¿Macro 1?.
Seleccionar cualquier celda de la hoja para deseleccionar el botón y borrar el contenido de las celdas A1 y A2.
¿Escribir en A1? ¿Prueba3?, seleccionar A2 y pulsar el botón de la macro, se deberá ejecutar como las veces anteriores.
Referencias a celdas relativas.
El ejercicio anterior fue creado en base a una operación que sólo puede ejecutarse de una celda específica a otra, por lo que es posible que necesitemos hacer la rutina más flexible para ampliar sus posibilidades, por lo que haremos una nueva macro pero con celdas relativas.
En vez de trabajar en las celdas A1 y A2, utilizaremos las celdas A3 y A4. ¿En la Celda A3 escribimos? ¿Prueba4? Para diferenciar el ejercicio y seleccionamos la celda A4.
¿En el menú? ¿Herramientas? ¿Activamos la opción? ¿Macro?, ¿Elegimos Nueva Macro y le damos el nombre? Macro_Relativa?, definiendo el lugar de aplicación la hoja activa.
Al iniciar la grabación definimos Referencia Relativa en la barra y seleccionamos la celda A3, copiando su contenido a la celda A4, mandando imprimir el trabajo posteriormente. Entonces detenemos la grabación.
En este momento hemos creado una macro que copiará el contenido de una celda en la inmediata inferior, sin importar su posición en la hoja de trabajo. Sólo nos resta salvar el documento para que tengamos la nueva macro en nuestra hoja de cálculo.
Este es sólo el principio, en próximas publicaciones veremos más a fondo todas estas aplicaciones.
Para obtener una copia completa del documento en que se basa este artículo, visiten http://support.microsoft.com/support/excel/content/vba101/default.asp
Como recordaremos de nuestra anterior edición, comenzamos a ver los fundamentos para crear macros en nuestras hojas de cálculo; ahora llega el momento de hacer otros procesos un poco más sofisticados, por lo que es necesario que se tengan nociones de Visual Basic para trabajar algunos de estos apartados, no se preocupen, de cualquier forma siempre tendremos los menús de ayuda si nos atoramos un poco.
Antes de empezar les recomendamos que lean y tengan a la mano el artículo anterior, de manera que les sea más fácil retomar estas lecciones.
Como único recordatorio, les avisamos que la hoja de cálculo donde salvamos nuestra macro instrucción se llamó "Libro de Macros" y el programa tuvo por nombre "Primera_Macro".
Manejando una Macro para todas las hojas de cálculo.
Tal vez lo primero que se preguntaron, en el caso de haber hecho la tarea, es ¿cómo le hago para tener disponible una macro en todos mis libros de trabajo?, la respuesta es muy sencilla, lo hacemos mediante la modificación del archivo Personal.xls.
Personal.xls es un libro de trabajo general, el cual es cargado siempre que Excel inicia, sólo que no lo vemos porque tiene el atributo de Escondido (Hidden), por lo que si necesitamos modificarlo lo debemos de mostrar a través del comando "Mostrar" del menú "Ventana". En caso que no exista lo podemos crear con un libro de trabajo nuevo, salvarlo con este nombre y dejarlo en la carpeta "InicioXL" (XLStart), que se encuentra en la carpeta "Office" del directorio donde esta instalado MSOffice. Para efectos prácticos, cada vez que dejamos de trabajar con este archivo, lo debemos salvar y luego activar el comando "Ocultar" del menú "Ventana", para que no se vea cuando iniciamos la aplicación.
Para no hacerles más de emoción esta parte, repitan la operación del artículo anterior para que tengan una macro que copia el contenido de una celda en otra y luego lo manda imprimir. Recuerden asignar una combinación de teclas o "Shortcut" al procedimiento, de manera que cada vez que opriman las teclas, se pueda ejecutar.
El editor de Visual Basic.
Retomando elementos anteriores, ya les habíamos informado que estas rutinas se graban en un módulo de Visual Basic, nativo de la suite y que es compartido tanto por la hoja de cálculo, como Word y Power Point, por lo que el proceso de modificación en todos es similar al que veremos aquí. Por cierto, el módulo es compartido pero los procedimientos que generemos en cada aplicación no lo son, por lo que no por definir una rutina en Word la podemos utilizar en Excel, es necesario que volvamos a definirla.
Iniciando el editor de VB.
Cerramos todas los libros de trabajo activos y abrimos el que contiene las primeras macros que hicimos, llamado Libro de Macros o como le hayamos puesto. Para esto, también debe estar activo el Personal.xls, recuerden que se inicia junto con la aplicación y que ya lo debemos de haber modificado.
Presionar las teclas ALT+F11 para iniciar el editor de VB.
La pantalla que aparecerá será similar a Visual Basic 4.0, cuyo objetivo es facilitar el uso de esta aplicación tanto a usuarios novatos como avanzados.
En este caso (y como consecuencia de lo anterior), cada archivo será llamado "Proyecto". La ventana en cuestión nos presentará, según lo solicitemos, el libro de trabajo (incluyendo hojas de trabajo, gráficas y objetos), módulos de VB y formas del usuario.
En la ventana que nos aparezca encontraremos un signo de más (+) junto a cada proyecto, que incluye las hojas de trabajo y los módulos donde se hayan grabado las macros, con un click en dichos símbolos nos los desplegarán. Ahora debemos dar un doble click al módulo de nuestra hoja de trabajo, que es propiamente la macro que creamos anteriormente.
Al activar el módulo se desplegará una ventana con el código de la macro que hayamos creado. A continuación les presentamos el primer ejercicio, en el que no utilizamos celdas relativas para la copia del contenido de las celdas:
Sub Mi_Primera_Macro ()
'
' Mi_Primera_Macro Macro
'Macro recorded 07/15/99 by <tu nombre>
'
'Keyboard Shortcut: Ctrl+a
'
Range("A1").Select
Selection.Copy
Range("A2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWindow.SelectedSheet.PrintOut Copies:=1, Collate:=True
End Sub
Nota: Las líneas con comilla o apostrofe son comentarios, no se ejecutan como parte del programa.
Este código siempre es escrito, grabado y almacenado en módulos, pudiendo existir más de una macro por módulo y más de un módulo por hoja de trabajo; siempre que grabamos una macro, ésta se almacena en el mismo módulo, pero si cerramos y abrimos nuestro proyecto (hoja de cálculo) y grabamos una macro nueva, esta se almacena en un módulo distinto.
Modificando el código.
Esto se hace a través de la pantalla que presenta el código, es posible cortar, copiar y pegar código dentro de los módulos, entre módulos separados y módulos de diferentes proyectos igual que si fuera un procesador de texto, a continuación modificaremos en código que comentamos en el apartado anterior.
Con el siguiente código le ordenaremos a la macro copiar el contenido de la selección en múltiples celdas y posteriormente imprimir toda la hoja de cálculo, no sólo lo seleccionado.
Sub Mi_Primera_Macro ()
'Mi_Primera_Macro Macro
'Macro recorded 07/15/99 by <tu nombre>
'Keyboard Shortcut: Ctrl+a
'
Range("A5").Select
Selection.Copy
Range("A10").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.PrintOut Copies:=1, Collate:=True
End Sub
Como se lo han de imaginar, el contenido de la celda A5 se copiará a A10 y todo el libro de trabajo se imprimirá.
En el menú "Ver", activar el comando Microsoft Excel, lo que dejará al Editor de Macros corriendo en segundo plano y nos mandará a la hoja de cálculo.
Teclear"Macro modificada" en la celda A5 y activar la rutina, de manera que el contenido de la celda se copie a A10 y se imprima el libro de trabajo. Estamos en el supuesto que esta hoja de trabajo es la misma en que originalmente se creó el ejercicio del artículo anterior.
Esperamos que esta breve guía les ayude a adentrarse en la utilización de VB en Office, recuerden que siempre pueden obtener ayuda mediante la tecla F1 de su teclado para aspectos específicos de la aplicación.
P.D. Estos módulos de VB son los que se utilizan para crear Macro Virus, lo interesante aquí es conocer como funcionan estas rutinas y podamos defendernos mejor de este tipo de invasores.
Pueden revisar el ejercicio completo en http://support.microsoft.com/support/excel/content/vba101/defaul.asp
- Compartir respuesta
- Anónimo
ahora mismo