ACTUALIZACIÓN DE DATOS DE MANERA AUTOMÁTICA DESDE OTRA HOJA
publicado
Hola amigos de AE, estoy tratando de unificar dos macros en una sola ya que tienen los mismos eventos pero no logro hacerlo. A ver si me pueden dar una mano.
La macro fue creada por Haplox y funciona a la perfección, pero me he dado cuenta que la finalidad de la macro también debe aplicarse a las columnas E y F de la hoja LISTADO GENERAL en función de los datos reflejados en la columna D (DATO 4) de la hoja COLORES. Es decir, por ejemplo, el valor reflejado en D5 correspondiente a SUB AMARILLO de la hoja COLORES, debe actualizarse de manera automática cada vez que este valor cambie. Cabe señalar, que D5 y siguientes se actualiza automáticamente de la hoja AMARILLO y demás hojas, según su nombre.
En el ejemplo anexo, las celdas en verde ya se actualizan automaticamente, Las amarillas es la que no logro conseguirlo.
Logré adaptar la macro de manera separada solo para la actualización de las columnas E y F y funciona a la perfección y es la siguiente.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t As Range
Dim color$, ufo&, ufd&
ufo = Range("D" & Rows.Count).End(xlUp).Row
If Not Intersect(Target, Range("D5:D" & ufo)) Is Nothing Then
Hola amigos de AE, estoy tratando de unificar dos macros en una sola ya que tienen los mismos eventos pero no logro hacerlo. A ver si me pueden dar una mano.
La macro fue creada por Haplox y funciona a la perfección, pero me he dado cuenta que la finalidad de la macro también debe aplicarse a las columnas E y F de la hoja LISTADO GENERAL en función de los datos reflejados en la columna D (DATO 4) de la hoja COLORES. Es decir, por ejemplo, el valor reflejado en D5 correspondiente a SUB AMARILLO de la hoja COLORES, debe actualizarse de manera automática cada vez que este valor cambie. Cabe señalar, que D5 y siguientes se actualiza automáticamente de la hoja AMARILLO y demás hojas, según su nombre.
En el ejemplo anexo, las celdas en verde ya se actualizan automaticamente, Las amarillas es la que no logro conseguirlo.
Logré adaptar la macro de manera separada solo para la actualización de las columnas E y F y funciona a la perfección y es la siguiente.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t As Range
Dim color$, ufo&, ufd&
ufo = Range("D" & Rows.Count).End(xlUp).Row
If Not Intersect(Target, Range("D5:D" & ufo)) Is Nothing Then
Application.EnableEvents = False
On Error GoTo salir
color = Target.Offset(, -3).Value
ufd = Sheets("LISTADO GENERAL").Range("A" & Rows.Count).End(xlUp).Row
Set col = Sheets("LISTADO GENERAL").Range("A5:A" & ufd).Find(color)
If Not col Is Nothing Then
Sheets("LISTADO GENERAL").Range(col.Address).Offset(, 5) = Target
Sheets("LISTADO GENERAL").Range(col.Address).Offset(, 4) = Target
Else
MsgBox "El color no se encuentra en el Listado General", vbInformation, "Error de Color"
End If
End If
salir:
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Calculate()
Static valores As Variant
Dim f As Long, uf As Long, t As Range
If ThisWorkbook.Name <> Application.ActiveWorkbook.Name Then Exit Sub
uf = Range("D5:D" & Rows.Count).End(xlDown).Row
If Not Intersect(Sheets("COLORES").Cells(ActiveCell.Row, ActiveCell.Column), Range("A1:A" & uf + 1)) Is Nothing Then Exit Sub
If IsEmpty(valores) Then
valores = Range("D5:D" & uf).Value2
For f = 1 To (uf - 4)
If IsError(valores(f, 1)) Then valores(f, 1) = vbNullString
Next f
Else
For f = 5 To uf
If Not IsError(Cells(f, "D")) Then
If valores(f - 4, 1) <> Cells(f, "D").Value2 Then
If Not t Is Nothing Then
Set t = Union(t, Cells(f, "D"))
Else
Set t = Cells(f, "D")
End If
valores(f - 4, 1) = Cells(f, "D").Value2
End If
End If
Next f
If Not t Is Nothing Then
Worksheet_Change t
End If
End If
End Sub
Pero cuando trato de integrarlas en una sola, no logro que funcione como debe ser.
Agradecido de antemano
BUSCAR DATO EN OTRA HOJA 2021.xlsm