Pasar datos de una hoja para acumular en otra hoja

Tengo una hoja de calculo de Nomina que esta funcionando bien, pero se modifico una ley y ahora me exige mostrar en cada recibo de pago un dato adicional.

Tengo esta rutina;

'IMPRECIBO Macro
Set h1 = Sheets("Recibos")
Set h2 = Sheets("SUMATORIA")
Set h3 = Sheets("TOTALSEMANA")
'
nombre = h1.[A8]
wtotal = h1.[H46]
utilid = h1.[D53]
colsem = h1.[h2] + 1
'
Set b = h2.Range("A:A").Find(nombre, LookIn:=xlValues, lookat:=xlWhole)
'si encuentra, coloca el valor de "Total utilidades en la semana"
If Not b Is Nothing Then
h2.Cells(b.Row, colsem) = utilid
End If
u = h3.Range("A" & Rows.Count).End(xlUp).Row + 1
If u < 7 Then u = 7
h3.Cells(u, "A") = nombre
h3.Cells(u, "I") = wtotal
',,,, etc

Bien, de mi hoja RECIBOS ella me esta tomando el valor de la celda D53 y me lo coloca en la hoja SUMATORIA entre las columnas B:BB en la semana correspondiente, en el nombre del trabajador que corresponde, hasta allí todo bien

Ahora requiero que me tome el valor de la celda RECIBOS! D54 y me la lleve a la hoja SUMATORIA entre las columnas BF:DF de cada trabajador

1 respuesta

Respuesta
2

Estos serían los cambios

En la celda h1.[h2] supongo, tienes un número de columna y lo almacenas en la variable colsem

Ahora bien en esta línea de la macro, estoy suponiendo que el valor debe ir 4 columnas a la derecha del número que tienes en la variable colsem, si son más o menos columnas, solamente ajusta el número 4 al número que necesitas.

        h2.Cells(b.Row, colsem + 4) = valor2

Estos son los cambios:

    'IMPRECIBO Macro
    Set h1 = Sheets("Recibos")
    Set h2 = Sheets("SUMATORIA")
    Set h3 = Sheets("TOTALSEMANA")
    '
    nombre = h1.[A8]
    wtotal = h1.[H46]
    utilid = h1.[D53]
    valor2 = h1.[D54]
    colsem = h1.[h2] + 1
    '
    Set b = h2.Range("A:A").Find(nombre, LookIn:=xlValues, lookat:=xlWhole)
    'si encuentra, coloca el valor de "Total utilidades en la semana"
    If Not b Is Nothing Then
        h2.Cells(b.Row, colsem) = utilid
        h2.Cells(b.Row, colsem + 4) = valor2
    End If
    u = h3.Range("A" & Rows.Count).End(xlUp).Row + 1
    If u < 7 Then u = 7
    h3.Cells(u, "A") = nombre
    h3.Cells(u, "I") = wtotal
    ',,,, etc


'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda
La pregunta no admite más respuestas

Más respuestas relacionadas