lunes, 17 de octubre de 2011

Código VBA (acciones con rangos de Excel)






Presentamos una selección de ejemplos de código en VBA listo para ejecutar mediante cualquier macro o por medio de un evento de algún objeto (Excel, un libro, una hoja o un rango).

En este artículo, ofrecemos líneas de código ejecutable para realizar acciones con rangos en Excel. Concretamente veremos formas de SELECCIONAR, BORRAR y ESCRIBIR EN CELDAS con VBA.


El texto en verde que a veces se puede ver entre el código, es el que debe personalizar el usuario, si procede.


SELECCIONAR RANGOS EN EXCEL CON VBA

1) Seleccionar una celda.

Sub SeleccionarCeldaA1()
   Range("A1").Select
End Sub

2) Selecionar una celda que está 2 filas más arriba y una columna más a la derecha que la celda actualmente seleccionada.

Sub CambiarSeleccionCelda()
   ActiveCell.Offset(-2, 1).Select
End Sub

3) Selecionar toda la columna A.

Sub SeleccionarColumnaA()
   Range("A:A").Select
End Sub

4) Selecionar toda la fila 1.


Sub SeleccionarFila1()
   Range("1:1").Select
End Sub

5) Selecionar rangos distintos.

Sub SeleccionarRangosDistintos()
   Range("A1:A4,B5,C4:D4").Select
End Sub


EDICIÓN DE RANGOS EN EXCEL CON VBA

6) Borrar contenido de un rango.

Sub BorrarContenidoRango()
   Selection.ClearContents
End Sub

7) Borrar fila seleccionada.

Sub BorrarFila()
   Selection.EntireRow.Delete
End Sub

8) Borrar columna seleccionada.

Sub BorrarFila()
   Selection.EntireColumn.Delete
End Sub

9) Introducir el valor 1000 en la celda A1 de la hoja activa (si lo que se introduce es texto, debe ir entre comillas y si lo que se introduce es un número seguido de un texto, deben ir separados por el símbolo &).

Sub IntroducirValor()
   Range("A1") = 1000
End Sub



10) Introducir el valor 1000 en la celda A1 de la hoja2 (si lo que se introduce es texto, debe ir entre comillas y si lo que se introduce es un número seguido de un texto, deben ir separados por el símbolo &).

Sub IntroducirValor()
   Sheets("Hoja2").Range("A1") = 1000
End Sub




  José Manuel Pomares Medrano


6 comentarios:

  1. como seleccionar una rango de filas con una estrcutura diferente a la de comillas Rows("2:45").select ya que yo tengo es el numero de la fila donde inicio y donde termino pero no asi con comillas.

    ResponderEliminar
  2. Hola,

    Estoy desesperado buscando el código para poder meter en mi macro. Quiero hacer la selección de un rango al que se le van a ir pegando datos y cada vez puede tener longitud diferente.
    Siempre empezara en B3: pero una veces puede que termine en :S100 o en S4000.
    En la primera columna (A) tengo las fechas en las que dispongo de datos. Esto el lo que me indicara si tengo 100 o 4000 datos. Se me ha ocurrido que en una celda cualquiera podría utilizar la función CONTAR y de esa manera obtendria el numero de fila en la que termina.
    El problema es que he intentado hacer una selección de este tipo:
    Range("A1:S&("B5").Select
    Entendiendo que es en la celda B5 donde esta la funcion CONTAR, y no hay manera.
    He buscado mucho y me parece una cuestión relativamente sencilla, pero no he conseguido dar con un codigo que me permita hacer una selección de arriba a bajo hasta la fila que a mi me interesa.

    Muchas gracias de antemano!

    ResponderEliminar
    Respuestas
    1. Esta es la solución:

      1) Haz que la primera celda de la columna sea un titulo... por ejemplo FECHAS.

      2) Convierte ese rango de datos en una Tabla de Excel (Situate en cualquier celda de ese rango/Ficha Inicio/Dar formato como tabla).

      3) Teniendo seleccionada cualquier celda de la recién creada Tabla de Excel, ir a la ficha Diseño y a la izquierda, cambiar el nombre TablaX que da Excel por defecto por el que deseamos... por ejemplo TABLAFECHAS).

      3) Con estas condiciones, el código VBA para que los datos de la columna queden seleccionados (independientemente de las filas que tenga la columna) sería:

      Range ("TABLAFECHAS [FECHAS]").Select

      Saludos.

      Eliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar