¿Puedo ejecutar una macro automáticamente en una edición, en lugar de tener que volver a abrir una aplicación?

¿Puedo ejecutar una macro automáticamente en una edición, en lugar de tener que volver a abrir una aplicación?

Tengo dos hojas de cálculo, quiero que la segunda hoja de cálculo se actualice una vez que una persona cambie la primera hoja de cálculo. Puedo hacer esto con una simple declaración if, pero no se actualizará hasta que la persona que trabaja en la primera hoja la cierre y la vuelva a abrir.

¿Es posible hacer esto automáticamente?

Respuesta1

Veo por el comentario de una respuesta eliminada que las hojas de cálculo que se actualizarán están en otras computadoras. En mi opinión, esta actualización no es posible a menos que uno escriba una macro para las hojas de cálculo remotas que verifique periódicamente la fecha de modificación en la hoja de cálculo fuente y se actualice si es necesario. En este caso, el documento debe estar compartido en una red pública y el trabajo no es nada fácil.

Su otra opción, si todos los usuarios tienen acceso a Internet, es utilizar una hoja de cálculo en línea para colaborar solo enunohoja de cálculo. Existen varios productos online, incluso gratuitos, que pueden servir para este propósito.

Debe proporcionarnos más detalles sobre su entorno y lo que se desea o es posible en él.

Respuesta2

Puede configurar una macro worksheet_change en la primera hoja de cálculo que actualizará la segunda hoja de cálculo. El código sería algo como esto:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim wbk2 As Workbook, wbk1 As Workbook, sht1 As Worksheet, sht2 As Worksheet

Set wbk1 = ActiveWorkbook
Set sht1 = ActiveSheet

on error resume next 
set wkb2=workbooks("myfile.xlsx")
if err<>0 then
    err.clear
    Set wbk2 = Workbooks.Open("\\remotecomputer\folder\myfile.xlsx")
end if
on error goto 0

Set sht2 = wbk2.Sheets("mySheet2")

sht2.Cells(1, 1) = "I have updated range " & Target.Address & " in sheet " & sht1.Name & " to value " & Target.Value

wbk2.Close True

End Sub

información relacionada