¿Como devolver información de una hoja según la información que meta en una celda fija?

Tengo una hoja con una columna con nombre de trabajadores seguidos de columnas con todos los días de año en el que se rellena las horas que trabaja cada trabajador cada día. En otra hoja quiero que según la fecha que introduzca en una celda determinada y fija me salga lo que en esa fecha ha trabajado cada trabajador. ¿Cómo puedo hacer esto?

1 respuesta

Respuesta
1

H o l a : Tendría que hacer una macro. Envíame tu archivo con ejemplos de la hoja donde tienes los trabajadores y los días; en otra hoja me pones un ejemplo de cómo quieres el resultado.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Sonia Castrillo” y el título de esta pregunta.

Gracias Dante. Ya te lo he enviado.

Saludos Sonia

Te anexo la macro

Sub Semana()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("HorComplem")
    Set h2 = Sheets("Semana")
    h2.Columns("C:Z").ClearContents
    h2.Range("C1") = "No."
    h2.Range("D1") = "NOMBRE"
    f = 2
    i = 6
    fec = h2.Range("A2")
    dias = h2.Range("A4") - h2.Range("A2") + 1
    Do While h1.Cells(i, "F") <> ""
        m = Columns("F").Column
        h2.Cells(f, "C") = h1.Cells(i, "E")
        h2.Cells(f, "D") = h1.Cells(i, "F")
        For k = Columns("M").Column To h1.Cells(5, Columns.Count).End(xlToLeft).Column
            If h1.Cells(5, k) = fec Then
                For n = 1 To dias
                    h2.Cells(1, m) = fec + n - 1
                    h2.Cells(f, m) = h1.Cells(i, k)
                    m = m + 1
                    k = k + 1
                Next
                Exit For
            End If
        Next
        f = f + 1
        i = i + 1
    Loop
    Application.ScreenUpdating = True
    MsgBox "Proceso terminado", vbInformation, "Semanal"
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas