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

  1. 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
    1. Dror
       
      ¡Vaya! ¡Totalmente!

      ¿Y dónde está dernlign?
      ¿Para qué sirve la msgbox?
      0
  2. 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
  3. 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
    1. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
       
      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
      1. 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
      2. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773 > 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