Filtrar datos en otra hoja 1 antes de cumpleaños

Dante Amor{ gracias por su atención.

En hoja1 de Excel 2013 tengo:

A                          B

nombre       fecha nac. 

juan              18/10/1989

luis                24/11/1985

ana                21/01/2000

En Userform1 tengo txthoy(con la fecha actual), txtcumple(now+1) y botón comando cmdreporte que me filtra en otra hoja2 (copia el nombre ) con 1 día de anticipación los cumpleañeros en 1 listbox1 (uso prop. Rowsource para mostrar los nombres de los cumpleañeros). Tengo otro botón para limpiar la hoja2 y así cada día puedo saber 1 día antes las personas que cumplen años.

Me falta completar la macro para buscar por el día y el mes que no logro hacerlo bien.

1 Respuesta

Respuesta
1

Te anexo el código para el userform

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h1 = Sheets("hoja1")        'hoja con nombres
    Set h2 = Sheets("hojacumple")   'hoja con resultados
    '
    Dim fec2 As Date
    If txthoy = "" Or Not IsDate(txthoy) Then
        MsgBox "Captura una fecha válida"
        Exit Sub
    End If
    fec2 = txthoy
    h2.Cells.Clear
    h1.Rows(1).Copy h2.Rows(1)
    j = 2
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        fec = h1.Cells(i, "B")
        If fec = DateSerial(Year(fec), Month(fec2), Day(fec2) + 1) Then
            h1.Rows(i).Copy h2.Rows(j)
            j = j + 1
        End If
    Next
    MsgBox "Fin"
End Sub

Cambiar los nombres de las hojas. En el textbox tienes que escribir la fecha que quieras consultar, por ejemplo, si pones 20/10/2016 (20 de octubre de 2016), la macro te escribirá en la hoja cumple el nombre de Jorge.

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas