hola tambien por aqui, Mikel (aunque realmente da igual, puedes llamarme Ivan a secas, lo de ivanart es imperativo de nobre cogido en el foro)
lo 1º, y espero que no te moleste, creo que suele ser mas conveniente continuar la consulta en el mismo hilo que abrir uno nuevo sobre el mismo tema. Aparte de ser mas facil seguir el desarrollo de la consulta, si alguien desea buscar una duda similar en un futuro, siempre sera mas facil si encuentra hilos en los que se [intente al menos] llegue a una solucion que tener que saltar de uno a otro porque esten inconclusos.
bueno, esto aparte, y unificando un poco tus mensajes lo que parece que quieres es seleccionar un rango variable
lo 1º reiterarte lo que te comentaba en otro hilo:
no suele ser necesario ni, en muchas ocasiones conveniente, seleccionar rangos para realizar acciones con o sobre ellos.
para que te hagas una idea todas estas acciones se pueden realizar sin seleccionar ninguna celda, hoja ni nada:
- copiar rangos, celdas y/o hojas
- arrastrar el contenido de celdas (autorrellenar)
- filtrar rangos
- dar/cambiar formatos
-ordenar rangos
-insertar filas, columnas y/o hojas. Eliminarlas, ocultarlas/mostrarlas
-crear tablas dinamicas
-insertar formulas, cambiar contenidos, modificarlas/los, borrarlas/los
-poner formatos condicionales
-realizar operaciones con el contenido
-etc, etc, etc ...........
la verdad es que creo que ahora mismo no se me ocurre nada para lo que sea necesario activar/seleccionar hojas, rangos, etc, si no es para aprovechar determinados eventos de hoja, o similar
volviendo a tu consulta [seleccionar rangos], aparte de lo obvio (range("a1:a25").select),en el ej. que expones te valdria simplemente =>
Cells(fila,columna).Select
esta otra forma que comentas=>
Range(Cells(fila, columna), Cells(fila, columna)).Select
tendria sentido (y aunque sea larga eso no quiere decir que fuese lenta) si te refieres a un rango de mas de una celda, en el que por supuesto deberias, o bien conocer alguna de las filas/columnas del rango o bien pasarle variable s diferentes a cada una que asi lo sea
Pej. si tenemos estas variables: fila, columna1 y columna2, a las que les asignamos los siguientes valores:
fila = 1
columna1 = 5
columna2 = 8
la siguiente expresion:
Range(Cells(fila, columna1), Cells(fila, columna2)).Select
nos seleccinonaria el rango (de la hoja activa =>OJO) "E1:H1"
si cambiamos los valores a:
fila = 5
columna1 = 2
columna2 = 3
la seleccion pasaria a ser : "B5:C5"
tambien podria ser que conozcas alguno de los valores y lo pases literalmente =>
Range(Cells(1, columna1), Cells(fila, columna2)).Select
para los valores del ultimo ej. la seleccion pasaria a ser "B1:C5"
bueno, no se si te aclara algo, pero como te comento en la otra respuesta, si aportas algun dato mas(rangos concretos, que es lo que quieres hacer, codigo utilizado, y lo que se te ocurra pueda ayudar) la ayuda podra ser mas concreta
un saludo
Ivan