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

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
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

2 Respuestas

Respuesta
1

Antes de empezar a hacerte macros, explica:

Si tienes varias hojas y cambias el valor de A10 de cualquier hoja, ¿quieres qué se actualice B13 de forma automática o con una macro?

Mejor explica cuál sería la secuencia qué debería ocurrir, por ejemplo:

Vas a la hoja1, actualizas la celda A10, vas a la hoja2, actualizas la celda A10, vas a la hoja3 actualizas la celda X20, vas a la hoja1 actualizas la celda B3, vas a la hoja4, actualizas las celda A10, vas a la hoja5, no haces nada, vas a la hoja "LISTADO GENERAL"

¿Cuál valor quieres en la en la hoja "LISTADO GENERAL"?

En qué momento quieres que se actualice, ¿cuándo llegas a la hoja "LISTADO GENERAL"?

O cada que modifiques un valor A10 de cualquier hoja, en automático que se actualice "LISTADO GENERAL"

¿O lo quieres manual con una macro?

Muchísimas gracias Dante por tu tiempo y respuesta!

Los pasos que voy a llevar a cabo son los siguientes:

1_ Cambio el valor de A10 de una hoja determinada ( el libro va a tener muchas hojas)

2_ Voy a la hoja LISTADO GRAL

3_ Cargo datos varios...

4_ Ejecuto una macro que hace lo siguiente: en B13=A10 de la hoja de donde vengo, es decir, de la ultima hoja activa

Pero eso ya hace la última macro que te envié.

En la celda B12 se almacena la hoja de donde vienes. En el momento en que ejecutes la macro tomará el valor de la hoja de donde vienes.

Gracias Dante por responder! Y perdón por la demora...

La celda B13 toma el valor de A10 de la hoja de donde vengo al ejecutar la macro... hasta ahí perfecto!

Pero si luego el valor de A10 de esa hoja cambia... necesito que también cambie en B13 automáticamente.

Y que tienes en A10 de todas las hojas, ¿es un valor o una fórmula?

Hola Dante, es una fórmula en algunos casos y un valor en otros

Cambia la macro de Thisworkbook por estas:

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    hoja = Sh.Name
    If Sh.Name = Sheets("LISTADO GRAL").Range("B12").Value And _
        Sheets("LISTADO GRAL").Range("B13").Value <> Sh.Range("A10").Value Then
        Sheets("LISTADO GRAL").Range("B13").Value = Sh.Range("A10").Value
    End If
End Sub
'
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address = Range("A10").Address Then
        If Sh.Name = Sheets("LISTADO GRAL").Range("B12").Value And _
            Target.Value <> Sheets("LISTADO GRAL").Range("B13").Value Then
            Sheets("LISTADO GRAL").Range("B13").Value = Target.Value
        End If
    End If
End Sub
'
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
        Sheets("LISTADO GRAL").Range("B13").Value = valor
    End If
End Sub

La macro del módulo sigue igual

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

[sal u dos

Respuesta
1

Si quieres algo sencillo selecciona la celda B13, de la hoja que sea, y le colocas el signo = seguidamente seleccionas la celda A10, de la hoja que sea, y le das a Enter. A partir de ahí, todo lo que ingreses en la celda A10 se copia a la celda B13.

Si no te sirve y quieres una macro, tienes que aportar más datos

Salu2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas