Celda igual a otra celda de ultima hoja activa

Quería saber si me pueden orientar... Tengo un libro con muchas hojas y necesito que en la hoja LISTADO GRAL en la celda A10 poner la fórmula =B13 de la ultima hoja activa

No encuentro manera de hacerlo funcionar.

Respuesta
2

No conozco alguna función que te permita saber cuál es el nombre de la última hoja de tu libro.

Lo que puedes hacer es ejecutar una macro.

Por ejemplo, con la siguiente macro te pone en la celda A10 el dato de B13 de la última hoja.

Sub Poner_Dato()
    Sheets("LISTADO GRAL").Range("A10").Value = Sheets(Sheets.Count).Range("B13").Value
End Sub

Revisa si es lo que necesitas y me comentas.

Hola Dante, muchísimas gracias por tu tiempo y respuesta! En realidad lo que necesito es que tome el valor de la celda B13 pero de la ÚLTIMA HOJA ACTIVA es decir la hoja que estuvo activa antes de LISTADO GRAL

Gracias!

¿Podrías describirlo paso a paso qué necesitas?

O a qué le llamas "la hoja que estuvo activa "

Gracias nuevamente. Si estoy en HOJA1 y voy a LISTADO GRAL necesito que B13 sea igual a A10 de HOJA1; si estoy en HOJA33 y voy a LISTADO GRAL necesito que B13 Sea igual a A10 de HOJA33 y así sucesivamente.....

Eso definitivamente tiene que ser código VBA.

Pon el siguiente código en los eventos de ThisWorkbook

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    If LCase(Sh.Name) <> LCase("LISTADO GRAL") Then
        valor = Sh.Range("A10").Value
        Sheets("LISTADO GRAL").Range("B13").Value = valor
    End If
End Sub


Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. En el panel del lado derecho copia la macro



'.[Sal u dos. Dante Amor. No olvides cambiar la valoración a la respuesta. 
'.[Avísame cualquier duda

Dante! sos un capo! Me funciona perfecto, lo único que necesito es activarlo desde una macro y no que se active automáticamente cuando cambio de hoja.

Infinitas gracias!

Necesitamos del evento deactivate, para saber en cuál hoja estuviste.

Si estoy en HOJA1 y voy a LISTADO GRAL necesito que B13 sea igual a A10 de HOJA1

En tu explicación, estabas en HOJA1, luego fuiste a la "LISTADO GRAL", entonces la última hoja fue la HOJA1.

Si no es en automático, tenemos que saber en cuál hoja estuviste.

Lo que se me ocurre es almacenar el nombre de la hoja HOJA1, en LISTADO GRAL, en alguna celda, para saber de cuál hoja vienes, después ejecutar una macro y que lea la celda con el nombre de la última hoja.

Entonces en B12 te voy a poner la última hoja. Pon lo siguiente en los eventos de Thisworkbook

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    If LCase(Sh.Name) <> LCase("LISTADO GRAL") Then
        valor = Sh.Range("A10").Value
        Sheets("LISTADO GRAL").Range("B12").Value = Sh.Name
    End If
End Sub

Ahora, pon lo siguiente en un módulo:

Sub ponervalor()
    Set h = Sheets("LISTADO GRAL")
    If h.Range("B12").Value <> "" Then
        On Error Resume Next
        h.Range("B13").Value = Sheets(h.Range("B12").Value).Range("A10").Value
    End If
End Sub

Ve a la hoja1, regresa a la hoja LISTADO GENERAL , ejecuta la macro ponervalor

Gracias Dante!!! ahora si, perfecto!!! ultima pregunta:

como tengo que hacer para que el valor de B13 cambie si cambia el valor de A10??

Con gusto te ayudo con todas tus peticiones, pero antes debes valorar esta respuesta; al final de mi respuesta hay un botón para valorar: votar o excelente.

Crea una nueva pregunta para cada petición.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas