Macro para formato en excel lista de pendientes

Me puede apoyar en realizar una macro para llevar control de actividades de pendientes anexo imagen

Como se observa en la imagen tengo 4 pestañas formato, pendiente, realizado y seguimiento, en todas las pestañas tiene el mismo contenido de formato. En la pestaña formato voy a capturar manual de la columna A a la columna E G y H al igual captura manual. Solo en la columna F necesito me salga mensaje de cuantos días falta o ya se desfaso.

Necesito una macro que al ejecutarla los envié a cada pestaña de acuerdo al status que tenga en la columna G ( ya sea pendiente, realizado o seguimiento). Y desaparezca de formato.

Y cada vez que valla yo capturando en la pestaña formato y ejecute la macro los valla colocando en la pestaña correspondiente debajo de cada celdas que este en blanco.

Espero darme a entender o si tiene algún otro formato se lo agradecería si me apoya en compartirlo

1 respuesta

Respuesta
2

H   o l a: Te anexo la macro

Sub Clasificar()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("formato")
    '
    u1 = h1.Range("G" & Rows.Count).End(xlUp).Row
    With h1.Sort
        .SortFields.Clear
        .SortFields.Add Key:=h1.Range("A3:A" & u1), SortOn:=xlSortOnValues, Order:=xlDescending
        .SetRange h1.Range("A2:H" & u1): .Header = xlYes: .MatchCase = False
        .Orientation = xlTopToBottom: .SortMethod = xlPinYin: .Apply
    End With
    '
    For i = u1 To 3 Step -1
        hoja = h1.Cells(i, "G")
        If hoja <> "" Then
            existe = False
            For Each h In Sheets
                If LCase(h.Name) = LCase(hoja) Then
                    existe = True
                    Exit For
                End If
            Next
            If existe Then
                u = h.Range("G" & Rows.Count).End(xlUp).Row + 1
                h1.Rows(i).Copy h.Rows(u)
                h1.Rows(i).Delete
            Else
                h1.Cells(i, "H") = "NO EXISTE EL NOMBRE DE HOJA" & " " & h1.Cells(i, "H")
            End If
        Else
            h1.Cells(i, "H") = "SIN NOMBRE DE HOJA" & " " & h1.Cells(i, "H")
        End If
    Next
    '
    u1 = h1.Range("A" & Rows.Count).End(xlUp).Row
    With h1.Sort
        .SortFields.Clear
        .SortFields.Add Key:=h1.Range("A3:A" & u1), SortOn:=xlSortOnValues, Order:=xlAscending
        .SetRange h1.Range("A2:H" & u1): .Header = xlYes: .MatchCase = False
        .Orientation = xlTopToBottom: .SortMethod = xlPinYin: .Apply
    End With
    Application.ScreenUpdating = True
    MsgBox "Registros procesados"
End Sub

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

buenas noches...

Lic. excelente solución, nada mas un pequeño detallito que en días no calcula de una fecha a otra, de cuantos días quedan, pero de ahí excelente.

¡Gracias! 

No entendí muy bien a qué te refieres con lo de los días. Podrías crear una nueva pregunta y me explicas con detalle y con varios ejemplos lo que tienes y lo que esperas de resultado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas