Private Sub CommandButton1_Click()
With Hoja8
ultimaFila = .Cells(.Rows.Count, "B").End(xlUp).Row
For Each celda In .Range("B5:B" & ultimaFila)
If Not IsEmpty(celda.Value) Then
año = CInt(Mid(celda.Value, 1, 2))
mes = CInt(Mid(celda.Value, 3, 2))
día = CInt(Mid(celda.Value, 5, 2))
If año <= 21 Then
año = año + 2000
Else
año = año + 1900
End If
On Error Resume Next
fechaResultado = DateSerial(año, mes, día)
If Err.Number <> 0 Then
fechaResultado = "Fecha Inválida"
Err.Clear
End If
On Error GoTo 0
celda.Offset(0, 1).Value = fechaResultado
End If
Next celda
If IsDate(.Range("A2").Value) Then
fechaReferencia = .Range("A2").Value
Else
MsgBox "La celda A2 no contiene una fecha válida.", vbExclamation
Exit Sub
End If
For i = 5 To ultimaFila
If IsDate(.Cells(i, "C").Value) Then
.Cells(i, "K").Value = Year(fechaReferencia) - Year(.Cells(i, "C").Value)
Else
.Cells(i, "K").Value = "Fecha no válida"
End If
Next i
End With
End Sub
Cumpleaños Foro.xlsm