Seleccionar rangos definidos o no

Dada una hoja activa, podemos seleccionar rangos determinados que podemos ingresar por teclado.

Podemos seleccionar también "a ciegas"; es decir, desde la primera fila, celda A1 hasta la última fila de datos Ax, en la misma columna o en un rango A1:Zx. Si la masa de datos no empieza en la primera fila o A1, entonces se deberá leer dicha celda desde el teclado.

En la segunda forma se requiere que las filas y columnas a ser recorridas, no estén vacías pues, apenas el indicador encuentra una celda vacía (fila o columna), allí se queda; en este caso la última celda encontrada será aquella no vacía.

El archivo que vamos a usar para ello se llama Pedidos.xls, para abrirlo, haga clic aquí

Observe que los datos empiezan en A1 y son compactos. La última fila vacía es la 831 y la última columna es M; de modo que el rango de la masa de datos es A1:M831.

Si quisiéramos seleccionar el rango de la clumna A; es decir, el rango A1:A831, la instrucción es:


Range("A1").Select
Range(Selection,Selection.End(xlToRight)).Select

El siguiente MsgBox nos permite ver el resultado en la hoja:
MsgBox "Haga clic en [Aceptar] para continual

Abra su libro MisMacros03.xlsm haciendo clic aquí y vaya al Editor.

Inserte un nuevo módulo y cambie su Name por "SelecRangos".

Luego ingrese el siguiente procedimiento el cual lleva su propia explicación en los comentarios:


Sub SelRangos()

Dim xR As String
'
' Activamos al hoja pedidos
Sheets("Pedidos").Select
'
' Vamos a seleccionar el rango A1:A831, ingresado por teclado
xR = InputBox("Ingrese el rango a ser seleccionado")
Range(xR).Select
MsgBox "Clic en [Aceptar] para continuar ..."
'
' De esta manera se puede seleccionar cualquier rango
' pero éste debe ser ingresado por teclado
'
' Ahora seleccionemos desde A1 hasta antes de una fila vacía en A
' Nos ubicamos en la celda A1
Range("A1").Select
'
' Desde la celda seleccionada, nos vamos hasta la última celda ocupada
' de la columna A
Range(Selection, Selection.End(xlDown)).Select
MsgBox "Clic en [Aceptar] para continuar ..."
'
' Claro que también podemos seleccionar el rango de manera directa
Range("A1", Selection.End(xlToRight)).Select
MsgBox "Clic en [Aceptar] para continuar ..."
'
' Finalmente, si solo sabe el número de fila pero no la columna
nF = InputBox("Nro de fila inicial en la columna A")
' Observe que nF no es número
Celda = "A" + Trim(nF)
Range(Celda).Select
Range(Selection, Selection.End(xlToRight)).Select
MsgBox "Clic en [Aceptar] para continuar ..."

End Sub

En la siguiente imagen se tiene una parte de este procedimiento.

Guarde su libro MisMacros03.xlsm. En la siguiente sesión haremos uso de otros ejemplos con el objeto RANGO

haga clic aquí