Cambio de hoja de trabajo

1

Estoy tratando de armar una macro que pondrá una marca de tiempo.

Tengo 2 hojas input y dashboard

Cuando la celda A2 en input cambios Quiero que la función AHORA se use en la celda M8 en dashboard

Presioné alt + F11 en el input Hoja para abrir el editor vba y se utiliza:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$2" Then

        Sheets("Dashboard").Select
        Range("M8").Select
        ActiveCell.FormulaR1C1 = "=NOW()"
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False

    End If

End Sub

Falla en la línea:

Range("M8").Select

¿Qué hay de malo con el código?

PeterH
fuente

Respuestas:

2

Esto se debe a que en el código de la hoja de trabajo, si no especifica el padre en el rango, asume la hoja en la que reside el código, no la hoja activa como un módulo. Asi que input si ya no está activo, no puede seleccionar la celda en esa hoja.

Puede reemplazar todo lo que haya en su FI con esta única línea:

Worksheets("Dashboard").Range("M8").Value2 = Now()

Pegará la fecha / hora actual como un valor, no como una fórmula y sin la necesidad de seleccionar o activar nada.

Scott Craner
fuente