Manual de MAcros con Excel
Buenas,
Intento poner aquí un manual de macros con excel que he encontrado muy interesante.
Formándonos es un "todo cabe" de informaciones relacionadas con las NTIC.
Buenas,
El problema viene cuando estamos trabajando con una tabla que puede crecer. Muchas veces acaba pasando que el Rango no está haciendo referencia a todas las celdas que debería. Hay varias formas de solucionarlo, por ejemplo hay quien hace el rango mucho más grande, dejando filas en blanco por debajo, pero eso puede dar problemas al trabajar con Tablas dinámicas o con fórmulas 3D, pues lo que estamos haciendo es inflar lo que acabará ocupando ese archivo.
La opción que suelo utilizar es poner un pequeño botón que ejecute una macro que actualice el nombre de rango.
El código de la macro es el siguiente (la celda A10 haria referencia a la primera celda del rango):
Abrimos el archivo de excel y añadimos los datos importados de la manera como lo hagáis normalmente.
Antes de empezar a grabar la macro nos situamos en una celda que tenga un hipervínculo y vamos al menú Herramientas, Macro, Grabar nueva macro.
Ponemos el nombre que queramos a la macro, pero hemos de vigilar dónde guardamos la macro. Si queremos poder utilizarla contra cualquier archivo de Excel con el que estemos trabajando la guardaremos en el Libro de Macros personal. Esto hará que se cree un libro llamado personal.xls dentro de la carpeta XLSTART.
Por tanto, cada vez que abramos Excel se abrirá el libro, aunque debería hacerlo de forma oculta, es decir, que no lo veremos si no vamos al menú Ventana, Mostrar.
En la Descripción podemos ponerle un resumen de lo que hace la macro (no hace falta poner nada).
Pulsamos en Aceptar.
ATENTOS!!!! Todo lo que hagáis a partir de ahora lo grabará la macro, por tanto, debéis hacer sólo los pasos necesarios, ninguno más. En el caso de que cometáis un pequeño error no pasa nada, normalmente es fácil borrarlo de la macro.
Los pasos que debéis seguir para grabar la macro son:
Abre el Editor de Visual Basic desde el menú Herramientas, Macro, Editor de Visual Basic o apretando la combinación de teclado Alt+F11.
Como puedes ver, la macro lo único que ha grabado ha sido las instrucciones:
Selection.Hyperlinks.Delete
ActiveCell.Offset(1, 0).Range("A1").Select
encuentre una celda en blanco.
Modifica la macro para que tenga el código siguiente:
While ActiveCell.Value <> ""
Selection.Hyperlinks(1).Delete
ActiveCell.Offset(1, 0).Range("A1").Select
Wend
La instrucción While – Wend nos permite hacer una bucle en el que se repitan una serie de acciones mientras se cumpla la condición, en este caso ActiveCell.Value <> ""
Ya tenemos la macro hecha. Si la pruebas ahora verás que te quita todos los hipervínculos de una columna hasta encontrar una celda vacía.
Recuerda que puedes ejecutar la macro desde Herramientas, Macro, Macros.
Esta macro sólo funciona si la celda que tienes seleccionada tiene un hipervínculo. Te has de acordar de hacer clic en el primer hipervínculo antes de ejecutarla. La instrucción que vamos a añadir a la macro nos va recordar este hecho, de manera que si no estamos en el primer hipervínculo podremos salir sin que la macro dé un mensaje de error.
El código final quedaría así:
Dim mensaje As String
mensaje = MsgBox("La celda activa tiene que ser la primera celda con hipervínculo",
vbOKCancel, "Atención!")
If mensaje = vbOK Then
While ActiveCell.Value <> ""
Selection.Hyperlinks(1).Delete
ActiveCell.Offset(1, 0).Range("A1").Select
Wend
Else
End If
End Sub
Hasta pronto!!!