ACTUALIZAR
¡El VBA está funcionando! Consulte el código a continuación. Solo necesito ayuda para modificarlo para que cuando cambie una celda en la Columna I guarde el valor en la Columna H.
Dim xRg como rango
Dim xChangeRg como rango
Dim xDependRg como rango
Dim xDic como nuevo diccionario
Sub hoja de trabajo privada_Cambio (según el rango de destino ByVal)
Dim I tan largo
Dim xCell como rango
Dim xDCell como rango
Dim xHeader como cadena
Dim xCommText como cadena
On Error Resume Next
Application.ScreenUpdating = False
Application.EnableEvents = False
xHeader = "Valor anterior:"
x = xDic.Teclas
Para I = 0 a UBound(xDic.Keys)
Establecer xCell = Rango (xDic.Keys (I))
Establecer xDCell = Cells(xCell.Row, 5)
xDCell.Valor = ""
xDCell.Value = xDic.Items(I)
NEXT
Si Target.Column = 6 Then
Application.EnableEvents = False
Celdas (Objetivo. Fila, 7). Valor = Fecha
Application.EnableEvents = True
Si terminar
Si Target.Column = 9 Then
Application.EnableEvents = False
Celdas (Objetivo. Fila, 10). Valor = Fecha
Application.EnableEvents = True
Si terminar
Application.EnableEvents = True
End Sub
Sub hoja de trabajo privada_Cambio de selección (rango de destino ByVal)
Dim I, J como siempre
Dim xRgArea como rango
En caso de error Ir a etiqueta1
Si Target.Count > 1, entonces salga de Sub
Application.EnableEvents = False
Establezca xDependRg = Target.Dependents
Si xDependRg no es nada, vaya a Label1
Si no xDependRg no es nada, entonces
Establecer xDependRg = Intersect(xDependRg, Range("F:F"))
Si terminar
Etiqueta1:
Establecer xRg = Intersecar(Objetivo, Rango("F:F"))
Si (No xRg no es nada) y (No xDependRg no es nada) Entonces
Establecer xChangeRg = Unión (xRg, xDependRg)
De lo contrario, si (xRg no es nada) y (no xDependRg no es nada), entonces
Establecer xChangeRg = xDependRg
ElseIf (No xRg no es nada) y (xDependRg no es nada) Entonces
Establecer xChangeRg = xRg
otro
Application.EnableEvents = True
Exit Sub
Si terminar
xDic.RemoveAll
Para I = 1 Para xChangeRg.Areas.Count
Establecer xRgArea = xChangeRg.Areas(I)
Para J = 1 Para xRgArea.Count
xDic.Add xRgArea(J).Dirección, xRgArea(J).Fórmula
NEXT
NEXT
Establecer xChangeRg = Nada
Establecer xRg = Nada
Establecer xDependRg = Nada
Application.EnableEvents = True
End Sub