Como corregir un código que relaciona 2 hojas de un mismo libro?

Dante, buenas noches. Vuelvo a consultar sobre un código que me enviaste en su momento y quisiera adaptarlo para una acción adicional

Tengo 2 hojas de un mismo libro y este código actualiza la fecha de un pedido de un cliente (hoja2), en la hoja1 (mismo cliente y pedido pero con explosión de artículos)

Private Sub CommandButton1_Click()
  Dim a As Variant, b As Variant, c As Variant
  Dim dic As Object, h1 As Worksheet, h2 As Worksheet, h3 As Worksheet
  Dim i As Long, j As Long, k As Long
   Application.ScreenUpdating = False
  Set h1 = Sheets("Hoja1")
  Set h2 = Sheets("Hoja2")
   '--------------------------------------------------------------------------------------------------------
  a = h1.Range("A2:O" & h1.Range("C" & Rows.Count).End(3).Row).Value2
  Set dic = CreateObject("Scripting.Dictionary")
  For i = 1 To UBound(a)
    dic(a(i, 3) & "|" & a(i, 15)) = a(i, 2)
  Next
`------------------------------------------------------------------------------------------------------------
  b = h2.Range("K3", h2.Range("K" & Rows.Count).End(3)).Value2
  ReDim c(1 To UBound(b), 1 To 1)
  For i = 1 To UBound(b)
    c(i, 1) = dic(b(i, 1) & "|" & "1100")
  Next i
  h2.Range("J3").Resize(UBound(c)).Value = c
Sheets("Hoja1").Select
Application.ScreenUpdating = True
End Sub

Hasta el momento, este código hace lo que mostraré con un ejemplo puntual

De (Hoja1) para el "cliente 1/1" que corresponde al dep 1100, lee la fecha en B3 y luego la actualiza en Hoja 2, tal como se muestra, en el rango (J14:J18) que corresponde al mismo "cliente 1/1"

Pues bien, quisiera además agregarle una sentencia que haga lo siguiente:

1. Leer celda I3 de Hoja1

2. Multiplique cada valor del rango (D14:D18) que se corresponde con el "cliente 1/1" por el cociente entre ... valor celda I3 Hoja1 (230) / valor celda H14 Hoja2 (500) y lo sobrescriba en el mismo rango

3. Luego valor celda H14 Hoja 2 (230) debe ser = al valor de la celda I3 Hoja1 (230)

4. Luego valor celda I14 Hoja 2 debe ser = SUMAPRODUCTO(D14:D18;(E14:E18) /1000 (7,69)

5. Finalmente valor celda N3 Hoja 1 (7,69) debe ser = valor celda I14 Hoja 2 (7,69)

Realmente deseo que este ejemplo paso a paso pueda ayudarte a comprender lo que estoy necesitando.

1 respuesta

Respuesta
2

Esperando la respuesta que nunca llegó de quien lidera en puntaje este foro pero que lamentablemente esta muy ofendido por haber recibido un pulgar arriba en vez de un EXCELENTE, como tanto deseaba!, pude resolver la cuestión con un código sencillo de vinculación entre 2 hojas, es decir, BUSCARV, etc., colocando mediante código las sentencias a medida que fueron necesarias y cambiando la hoja cuando correspondía. Así llegue a lograr lo el objetivo y definitivamente solo demora 2 segundos contra el instantáneo de este gran señor!.

No es grave y además funciona!

Para quien necesite mayor explicación, solo tiene que solicitármelo y le enviare por este medio el código.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas