Selección de un rango variable

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

        ¿Y dónde está dernlign?
        ¿Para qué sirve la msgbox?
        0
    2. 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. Moderador
        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
      2. Colaborador
        @pijakuhola 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
      3. Moderador
        @michel_mHola 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