Obtener nombre de Libro y Hoja a partir deRFEDIT. Ctrl

Referente a la pregunta anterior : lo que haría seria guardarlo en una variable a "celda_1"

Celda_1.Select = "$C$9".select

Es valido esto?:

Val_Cel = Celda_1

Respuesta
1

Celda_1 es una variable, ya no es necesario pasar ese dato a otra variable.

No podrías seleccionar la celda "$C$9", ya que se encuentra en otro libro y en otra hoja.

Solamente como ejemplo, para seleccionar la celda tendrías que hacer esto:

    Workbooks(libro_1).Activate
    Sheets(hojas_1).Select
    Range(celda_1).Select

Pero, eso es precisamente lo que te comenté que NO hay que hacer. Se hace más complejo el entendimiento y la ejecución de la macro.

Ya tienes en las variables la ubicación del libro, la hoja y la celda, de ahí puedes partir para continuar con la macro.

Sin embargo, puedes programar como quieras, solamente te estoy poniendo mis recomendaciones.

Hola Dante

No se por que.. pero para mi creo que es más fácil entender el código, como el de arriba.. me comentas que es lo que No se debe de HAcer...

    Workbooks(libro_1).Activate
    Sheets(hojas_1).Select

    Range(celda_1).Select

A lo mejor sera por que apenas estoy aprendiendo y aunque es más largo el código

si le entiendo..

Una duda: ¿Tu cómo seleccionarías esa celda? (Celda_1)?

Saludos Dante!..

Como ya te expliqué para seleccionarla, esa sería la forma.

Normalmente, o casi nunca, selecciono una celda para luego tomar el valor. Lo que hago es ocupar los objetos.

Por ejemplo, si quisieras recorrer la celda desde ese punto hacia abajo, sería algo así:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set r1 = Range(RefEdit1)
    Set l1 = Workbooks(r1.Worksheet.Parent.Name)
    Set h1 = l1.Sheets(r1.Worksheet.Name)
    '
    f = r1.Cells(1, 1).Row                      'primera fila
    c = r1.Cells(1, 1).Column                   'columna
    u = h1.Cells(Rows.Count, c).End(xlUp).Row   'última fila con datos
    '
    For i = f To u
        MsgBox h1.Cells(i, c)
    Next
End Sub

Lo que hace es establecer en los objetos l1 = al libro, en h1 la hoja de l1.

Luego en variables obtengo la fila (f) y la columna (c)

Y en la variable u = a la última fila con datos.

En el ciclo empiezo a leer desde la primera fila hasta la última fila. Todo sin cambiarme de libro, ni seleccionar la hoja, ni seleccionar una celda.

Sé que al principio, es difícil entender el comportamiento de los objetos, pero una vez que los entiendes es más fácil programar y la macro es más rápida.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas