¿Cómo generar un reporte de datos a partir de los datos de otra planilla Excel?

Tengo la siguiente situación que no logro resolver de manera rápida y simple en Excel:

En una planilla X, esta el historial de trabajos realizados en un taller mecánico, con los Campos:

Cliente | Marca Vehículo | Modelo Vehículo | Fecha Inicio Trabajo | Fecha Fin Trabajo | Mecánico | Tipo Trabajo Realizado | HH Empleadas

Necesito extraer algunos datos y dejarlos en la planilla Z, los datos a extraer son:

Cliente | Fecha ingreso Solicitud | Fecha Inicio Trabajo | Fecha Fin Trabajo | HH Empleadas

Al momento de extraer los datos, se debe aplicar como criterio un determinado mes, de manera de poder disponer del reporte de trabajos realizados en dicho mes, ordenados por Fecha Inicio Trabajo.

La idea es que en la planilla Z, exista un campo para ingresar el criterio para que se ejecute la extracción de los datos:

¿Existe alguna formula(s) o macro que deba usar y de que manera?

Respuesta
1

Me puedes enviar tu archivo con algunos ejemplos. Creo la macro y la adapto a tus hojas.

Mi correo [email protected]

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

Solo dispongo de la planilla con los datos, no tiene fórmulas ni macros. Actualmente todo se trabaja a mano. ¿Igual la necesitas para crear la macro?

Sí, envíame una muestra de tus datos

planillas enviadas!!

gracias!!

Te anexo la macro para colocar en los eventos de worksheet

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    Set l2 = Workbooks("TrabajoTaller")
    Set h2 = l2.Sheets("Hoja1")
    If Not Intersect(Target, Range("E1")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        Application.ScreenUpdating = False
        u = h1.Range("A" & Rows.Count).End(xlUp).Row
        If u < 4 Then u = 4
        h1.Range("A4:E" & u).ClearContents
        Select Case UCase([E1])
            Case "ENERO": mes = 1
            Case "FEBRERO": mes = 2
            Case "MARZO": mes = 3
            Case "ABRIL": mes = 4
            Case "MAYO": mes = 5
            Case "JUNIO": mes = 6
            Case "JULIO": mes = 7
            Case "AGOSTO": mes = 8
            Case "SEPTIEMBRE": mes = 9
            Case "OCTUBRE": mes = 10
            Case "NOVIEMBRE": mes = 11
            Case "DICIEMBRE": mes = 12
        End Select
        '
        j = 4
        For i = 2 To h2.Range("A" & Rows.Count).End(xlUp).Row
            m2 = Month(h2.Cells(i, "D"))
            If Month(h2.Cells(i, "D")) = mes Then
                h1.Cells(j, "A") = h2.Cells(i, "A")
                h1.Cells(j, "B") = h2.Cells(i, "B")
                h1.Cells(j, "C") = h2.Cells(i, "D")
                h1.Cells(j, "D") = h2.Cells(i, "E")
                h1.Cells(j, "E") = h2.Cells(i, "H")
                j = j + 1
            End If
        Next
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas