Buscar fecha de cumpleaños y mostrar mensaje

Necesito buscar y mostrar mensaje de cumpleaños para los trabajadores de una empresa, tengo un código que busca la fecha actual en un rango de celdas, el problema es que hacerlo con la opción XlPart, me muestra las coincidencias de días y no necesariamente de día y mes, y la función XlWhole necesita coincidir toda la celda y obviamente no coincidirá el año entre la fecha actual y la de nacimiento.

Set resultado = Sheets("personal").Range("c2:c" & Sheets("personal").Range("c" & Rows.Count).End(xlUp).row).Find(Date, lookat:=xlPart)

1 Respuesta

Respuesta
1

H o l a:

Te recomiendo hacer un ciclo, ya que con find no vas a encontrar la coincidencia de día y de mes.

Para encontrar una coincidencia de día y de mes tendrías que utilizar una fórmula matricial, pero aún así, si dos o más personas cumplen años el mismo día, no podrías mostrar los 2 mensajes con una sola fórmula matricial.

Entonces con un ciclo, puedes verificar todas las fechas y poner en un mensaje todos los que cumplen años en el día.

Sub FechaCumple()
'Por.Dante Amor
    For i = 2 To Range("C" & Rows.Count).End(xlUp).Row
        If Day(Cells(i, "C")) = Day(Date) And _
           Month(Cells(i, "C")) = Month(Date) Then
            cad = cad & Cells(i, "B") & ", "
        End If
    Next
    If cad <> "" Then
        cad = Left(cad, Len(cad) - 2)
        MsgBox "Cumpleaños de: " & cad
    Else
        MsgBox "No hay cumpleaños"
    End If
End Sub

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas