Selección de un rango variable

Dror -  
pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   -
Hola a todos,

Configuración: Windows XP / Internet Explorer 8.0

Por favor, ayúdenme, me gustaría seleccionar un rango hacia abajo, partiendo de la celda activa, hasta una fila que he memorizado en "dernlign".

No me las arreglo.

Tengo esto

Range(Selection, Selection.End(xlDown)).Select

pero quiero que se detenga en dernlign.

Gracias.

3 respuestas

michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
 
hola

Dim plage As Range, debut As String, fin As String

debut = ActiveCell.Address
fin = Columns(ActiveCell.Column).Find(what:="*", searchdirection:=xlPrevious).Address
Set plage = Range(debut & ":" & fin)
MsgBox plage.Address 'verificación

--
 Michel
0
Dror
 
¡Vaya! ¡Totalmente!

¿Y dónde está dernlign?
¿Para qué sirve la msgbox?
0
Theo.R Mensajes publicados 585 Estado Miembro 31
 
Hola,

No estoy muy seguro de haber entendido: ¿desea seleccionar el rango entre la celda activa yendo hacia abajo hasta la celda en "dernlign"?

Si es así, solo necesita un simple Range(...).. ¿puede darnos su código completo para identificar de la manera más sencilla la celda activa, por favor?
-1
Dror
 
Primero, para identificar la última línea de la tabla, hago:

Range("B5").Select
Selection.End(xlDown).Select
dernlign = Selection.Row

Luego, más tarde, me encuentro en una celda cualquiera, y necesito seleccionar un rango empezando desde esa celda, bajando hasta la línea memorizada.

Normalmente, hago:

Range("G6:G" & dernlign).Select

Pero allí, no estoy necesariamente en G.

Entonces hice:

Range(Selection, Selection.End(xlDown)).Select

Pero va hasta abajo.
-2
pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 772
 
Prueba este test, te mostrará lo que es un MsgBox...
Sub test() MsgBox Selection.Address MsgBox Split(Selection.Address, "$")(1) Dim Lettre As String, dernLign As Long, PremLign As Integer PremLign = 6 dernLign = Range("B5").End(xlDown).Row Lettre = Split(Selection.Address, "$")(1) MsgBox Range(Lettre & PremLign & ":" & Lettre & dernLign).Address End Sub
0
michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320 > pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención  
 
hola Frank

dernLign = Rango("B5").Fin(xlAbajo).Fila

hilo extraño porque aparentemente no es fiable:
si hay una celda vacía antes de la última fila, la fila devuelta será la fila de esa celda
- según AV, MVP*Excel, la única fiable es la que utilizo según sus consejos.
Te envío el libro (uso de la función "evaluate") por MP

En cuanto a Dror, le agradezco su amabilidad y su mente particularmente abierta...
  • MVP: Professional más valioso, título otorgado por la casa matriz de Microsoft y otorgado anualmente
0
pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 772 > michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención  
 
Hola Michel,

Sí, sé que este código no es fiable, he hecho una ficha práctica sobre este tema...
Solo he repetido lo que dice el solicitante.
Sin embargo, mi respuesta aquí solo tiene un objetivo pedagógico.

Pero, en cambio, tienes razón sobre el método find: es el único fiable.

¡Hasta luego!
0