Ahora que sabemos grabar macros, empecemos con los ejemplos útiles. También incluiré como modificar algunas cosas “a mano”, para darle funcionalidad extra; serán todos ejemplos muy sencillos.... si comienzo por lo difícil, lo mas probable es que muchos caigan en el desaliento y abandonen, lo cual sería un verdadera pena.
[+/-] Ver el resto / Ocultar
Una consulta muy frecuente: eliminar una fila mediante macros. Quizás no sea algo determinante en nuestro trabajo, pero servirá de ejemplo y aprovecharemos para modificar código manualmente.
Veamos los pasos:
1) Seleccionamos una celda cualquiera
2) Vamos a menú/herramientas/macro/grabar nueva macro, le ingresamos un nombre descriptivo, junto a alguna tecla de acceso directo (K, por ejemplo) y presionamos Aceptar. Ojo, ya está grabando.
3) Nos dirigimos a la celda seleccionada, le damos clic con el botón derecho del mouse en donde se encuentra el numero de fila, elegimos “eliminar”
De ahora en mas, cada vez que presionemos “Ctrol + K”, se eliminará toda la fila cuya celda se encuentre seleccionada por el cursor.
Ahora ingresaremos al Editor de Visual Basic, o VBA (VBA=Visual Basic for Applications= Visual Basic para Aplicaciones), desde menú/herramientas/macro/editor de visual basic. No olvidemos que estamos ingresando a otro programa, con una interfaz bastante distinta a la que estamos acostumbrados. Por ahora, solo vayamos a lo que nos interesa: Cada vez que grabamos una macro, Excel escribe el respectivo código, el cual se guarda dentro de Módulos. Sobre la parte izquierda del navegador encontrarán dichos módulos; hacemos doble clic sobre él y en la ventana principal veremos lo siguiente:
Borramos lo que está de mas, para limpiar el panorama, y tenemos:
Ahora bien, echemos mano para agregar una funcionalidad: que la macro borre la fila, si la celda seleccionada está vacía. Para esto nos valemos de la estructura lógica “Si” (If..)
Lleguemos un poco mas lejos:
Sub EliminarFila()
' Acceso directo: CTRL+k
If (Selection.Value = "") Then
Selection.EntireRow.Delete
Else
MsgBox "La fila no se eliminrá por que la celda seleccionada posee datos"
Range(“A1”).Select
End If
End Sub
Primero, traduzcamos el código de arriba:
Si (la selección no posee ningun valor) entonces
Borrá toda la fila
De lo contrario
Avisá con un cartel por qué no la borrás
Seleccioná el rango A1
Fin si
Segundo... no creo que falten explicaciones. Es muy sencillo, solo hay que familiarizarse con el código, y tenemos la GRAN ventaja de que VBA lo graba y lo deja disponible para que lo analicemos y modifiquemos a gusto.
Si aclaro lo siguiente: la palabra “Range” hace referencia a una celda o conjunto de las mismas, como podrían ser Range(“B120”) o Range(“A2:C40”). En este último caso tendríamos un rango compuesto, ya que abarcamos todas las celdas incluidas desde A2 a C40. Veremos mas detenidamente las palabras claves a tener en cuenta, en mis próximos posts.
[+/-] Ver el resto / Ocultar
Una consulta muy frecuente: eliminar una fila mediante macros. Quizás no sea algo determinante en nuestro trabajo, pero servirá de ejemplo y aprovecharemos para modificar código manualmente.
Veamos los pasos:
1) Seleccionamos una celda cualquiera
2) Vamos a menú/herramientas/macro/grabar nueva macro, le ingresamos un nombre descriptivo, junto a alguna tecla de acceso directo (K, por ejemplo) y presionamos Aceptar. Ojo, ya está grabando.
3) Nos dirigimos a la celda seleccionada, le damos clic con el botón derecho del mouse en donde se encuentra el numero de fila, elegimos “eliminar”
Ahora ingresaremos al Editor de Visual Basic, o VBA (VBA=Visual Basic for Applications= Visual Basic para Aplicaciones), desde menú/herramientas/macro/editor de visual basic. No olvidemos que estamos ingresando a otro programa, con una interfaz bastante distinta a la que estamos acostumbrados. Por ahora, solo vayamos a lo que nos interesa: Cada vez que grabamos una macro, Excel escribe el respectivo código, el cual se guarda dentro de Módulos. Sobre la parte izquierda del navegador encontrarán dichos módulos; hacemos doble clic sobre él y en la ventana principal veremos lo siguiente:
Sub EliminarFila()
' Acceso directo: CTRL+k
Selection.EntireRow.Delete
End Sub
El código que realiza la acción es: Selection.EntireRow.Delete. Con un poco de inglés básico, interpretamos la orden que le dimos a Excel: “borrá la fila entera de la selección”. Fácil. Lo que está en verde (precedido siempre por un ‘ ) son comentarios, que no influyen en la ejecución del código y sirven para ir anotando que es lo que estamos haciendo. Es mucho mas útil de lo que parece a simple vista.Ahora bien, echemos mano para agregar una funcionalidad: que la macro borre la fila, si la celda seleccionada está vacía. Para esto nos valemos de la estructura lógica “Si” (If..)
Sub EliminarFila()
' Acceso directo: CTRL+k
if (Selection.Value = “”) then
Selection.EntireRow.Delete
End if
End Sub
Volvamos a Excel y seleccionemos alguna celda que posea datos. Ejecutemos la macro y veremos como NO borra la fila. ¿Por qué? Gracias al condicional que le pusimos.Lleguemos un poco mas lejos:
Sub EliminarFila()
' Acceso directo: CTRL+k
If (Selection.Value = "") Then
Selection.EntireRow.Delete
Else
MsgBox "La fila no se eliminrá por que la celda seleccionada posee datos"
Range(“A1”).Select
End If
End Sub
Si (la selección no posee ningun valor) entonces
Borrá toda la fila
De lo contrario
Avisá con un cartel por qué no la borrás
Seleccioná el rango A1
Fin si
Segundo... no creo que falten explicaciones. Es muy sencillo, solo hay que familiarizarse con el código, y tenemos la GRAN ventaja de que VBA lo graba y lo deja disponible para que lo analicemos y modifiquemos a gusto.
Si aclaro lo siguiente: la palabra “Range” hace referencia a una celda o conjunto de las mismas, como podrían ser Range(“B120”) o Range(“A2:C40”). En este último caso tendríamos un rango compuesto, ya que abarcamos todas las celdas incluidas desde A2 a C40. Veremos mas detenidamente las palabras claves a tener en cuenta, en mis próximos posts.
- Obtener enlace
- Correo electrónico
- Otras aplicaciones
Etiquetas
Macros
Etiquetas:
Macros
- Obtener enlace
- Correo electrónico
- Otras aplicaciones
Comentarios
Publicar un comentario