Function planning_chich(dJour As Date, rRaisons As Range, rPeriode As Range) As String
Dim tRaisons(), tPeriodes()
Dim i As Byte, j As Byte
'Enregistre les raisons dans un tableau virtuel.
tRaisons = rRaisons.Value
'Enregistre la période dans un tableau virtuel.
tPeriodes = rPeriode.Value
'Vérifie qu'il y a bien trois colonnes pour la période.
If UBound(tPeriodes, 2) Mod 3 > 0 Then planning_chich = "Erreur": Exit Function
'Compare le nombre de lignes entre les Raisons et Périodes.
If UBound(tPeriodes) <> UBound(tRaisons) Then planning_chich = "Erreur nombre de lignes": Exit Function
'Boucle le tableau des Périodes à la recherche de la date.
For j = 1 To UBound(tPeriodes, 2) - 2 Step 3
For i = LBound(tPeriodes) To UBound(tPeriodes)
If dJour >= tPeriodes(i, j) And dJour <= tPeriodes(i, j + 2) Then
planning_chich = tRaisons(i, 1)
Exit Function
End If
Next i, j
End Function