
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