Llamar datos de una hoja cuyo nombre esta en la celda de otra hoja

En mi libro tengo la hoja "lista", en ella hay un macro que crea otras hojas con el nombre ingresado en la celda (1,1). El cual luego cambia, hasta ahí todo bien, pero necesito tomar datos de la hoja nueva, pero no se como hacer que me traiga el dato.

Hice este código pero se detiene cuando llega a Sheets(dato) , ¿cómo llamo los datos de una hoja cuyo nombre debo sacar de una celda?

Dato= cells(1,1) 'aquí guardo el nombre de la hoja

Sheets("lista").Cells(5, 5).Value = Sheets(dato).Cells(6, 3).Value   ' quiero que en la celda (5,5) de la hoja lista, se guarde el valor de la celda (6,3) de la hoja cuyo nombre esta en la celda (1,1) y que guarde en la constante : dato.

1 respuesta

Respuesta
1

Tal vez te falta poner la hoja, puede ser así:

dato = Sheets("lista"). Cells(1, 1) 'aquí guardo el nombre de la hoja

Para hacerlo más eficiente:

Sub Obtener_Dato()
    '
    dato = Sheets("lista").Cells(1, 1) 'aquí guardo el nombre de la hoja
    existe = False
    For Each h In Sheets
        If LCase(h.Name) = LCase(dato) Then
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        MsgBox "No existe la hoja con el nombre : " & dato
        Exit Sub
    End If
    '
    Sheets("lista").Cells(5, 5).Value = Sheets(dato).Cells(6, 3).Value
End Sub

Para darle más claridad, también puedes manejar la letra de la columna en la instrucción Cells, por ejemplo:

    Sheets("lista").Cells(5, "E").Value = Sheets(dato).Cells(6, "C").Value

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Gracias por tu información, me sirvió, pero encontré el error en mi código, no había definido la variable dato como string, fue hacer eso y listo corrió perfecto.

Es común cometer errores al no declarar correctamente las variables, en VBA no es necesario declarar variables:

Según su función ¿Cómo declarar variables?

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas