Seleccionar un rango en una columna según el contenido de la primera y última celda.

Hola,

Deseo seleccionar un rango de celdas de una columna desde una celda que tenga un valor concreto hasta otra con otro valor concreto.

La columna tiene texto y entre esos datos quiero buscar la celda con el valor "[chiefs]" y copiar todas las siguientes hasta encontrar una celda que contenga el valor "chiefs_road" en su interior.

He intentado guardar la intentar de esas celdas en variables y luego seleccionar el rango definiendolo con esas variables:

..

vPosChief_i = ActiveCell.Address

..

vPosChief_f = ActiveCell.Address

ActiveSheet.Range(vPosChief_i:vPosChief_f).Select

El problema es que no estoy usando bien la sintaxis

1 Respuesta

Respuesta
1

Ya lo tengo, mando este anticipo para saber si está disponible la pregunta.

Pues aquí tienes una macro que te enseñara como hacerlo, tal vez tengas que adaptar alguna cosa para poder usarla. He supuesto que la columna es la A de la Hoja 1. He usado una variable Rango para cálculos intermedios y para dar el resultado final. Para comprobar quien ha funcionado bien selecciono el rango y asi queda visible.

Sub CrearRango()
Dim rango As Range
Set rango = Worksheets("Hoja1").Range("A:A").Find("[chiefs]")
If Not rango Is Nothing Then
     vPosChief_i = rango.Row
    Set rango = Worksheets("Hoja1").Range("A:A").Find("chiefs_road")
     If Not rango Is Nothing Then
         vPosChief_f = rango.Row
        Set rango = Range("A" & vPosChief_i & ":A" & vPosChief_f)
        rango.Select
     Else
         MsgBox ("Falta chiefs_road")
     End If
Else
     MsgBox ("Falta [chiefs]")
End If
End Sub

Copia esta macro en un módulo de VisalBasic y ejecútala.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas