Searching...
miércoles, 5 de junio de 2013

SELECCIONAR CELDAS A DISTANCIA DE LA ACTIVA

Supongamos que nos encontramos en la celda, Range(“A1”) o Cells(1,1) o en la celda activa: ActiveCell.



Range("A1").Offset(1,2).Select
Selecciona 1 filas hacia abajo y 3 col a derecha de A1 = C2
Cells(1,1) .Offset(1,2).Select
ActiveCell.Offset(3,-2).Select
Selecciona la celda que esta 3 filas abajo y 2 a la izquierda
ActiveCell.Offset(-2,1).Select
Selecciona la celda que esta 2 filas arriba y 1 a la derecha

Hay que recordar que si asignamos o nos tratamos de desplazar a una rango inexistente nos mostrara ERROR.

Por supuesto podemos jugar con las variables como vimos en el Artículo "Seleccionar Celdas"

En este caso partimos de la celda B1 y nos moveremos una fila hacia abajo y tantas columnas como en la celda A1 se indiquen.

Sub selecionar ()
i = Cells(1, 1)
Cells(1, 2).Offset(1, i).Select
End Sub

En la selección de celdas es interesante saber cuál es la última celda con datos o la primera celda vacía, ya que esto es interesante en, por ejemplo, una base de datos de clientes.

Si nos encontramos en A1 y queremos ir hasta la última celda con datos,  puede ser hacia abajo o hacia la derecha:




Range("A1").End(xlDown).Select
Buscará la última celda con datos hacia abajo. Selecciona PLATANO
Range("A1").End(xlToRight).Select
Buscará la última celda usada hacia la derecha.  Selecciona LIMÓN
Range("A65536").End(xlUp).Select
Buscara la última celda usada independientemente de los espacios en blanco. Selecciona MELÓN


Para seleccionar las celdas en color:

COLOR
INSTRUCCIÓN
ROJO
Range("A65536").End(xlUp).Offset(1, 0).Select
VERDE
Range("a1").End(xlDown).Offset(1, 0).Select
AMARILLO
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Select

Existen otras formas, como algunas que he encontrado por internet para seleccionar estas celdas, como por ejemplo:

Para seleccionar la celda ROJA:
Sub ROJA()
Dim fila1 As Integer
fila1 = Range("A65536").End(xlUp).Row + 1
ActiveSheet.Range("A" & fila1).Select
End Sub
‘Crea una variable (fila1), que encuentra la primera fila (ROW) con datos, añade una fila mas y esta fila va ser la que luego sirva para indicar el Range("A" & fila1).Select


En el siguiente código, no solo encuentra la primera celda vacía, sino que también nos da la opción de pegarnos el resultado en una celda, a través de la opción .Address o de ofrecernos un mensaje con la celda en cuestión.

Sub ROJA2()
Dim intUltimaFila As Range
If WorksheetFunction.CountA(Columns(1)) > 0 Then
Set intUltimaFila = Range("A65536").End(xlUp)

'que lo escriba en una celda
Range("G1") = intUltimaFila.Address

'que te lo diga en un mensaje
'MsgBox intUltimaFila.Address
End If

End Sub

0 comentarios:

Publicar un comentario

 
Back to top!