En effet, c'est ce dont je viens de m'apercevoir ... je vais regarder cela.
Pour les réservations multi chambres, j'ai une solution assez simple par fonction personnalisée
Function Reservation(quand As Range, chambre As Range) As Variant
Dim ligne As Integer
Application.Volatile
Reservation = ""
If chambre.Value = "" Then Exit Function
With Sheets("Réservation")
For ligne = 2 To .Cells(Application.Rows.Count, 1).End(xlUp).Row
If .Cells(ligne, "I").Value = chambre.Value Or .Cells(ligne, "J").Value = chambre.Value Or .Cells(ligne, "K").Value = chambre.Value Or .Cells(ligne, "L").Value = chambre.Value Then
If .Cells(ligne, "D").Value <= quand.Value And .Cells(ligne, "E").Value > quand.Value Then
If .Cells(ligne, "D").Value = quand.Value Then
Reservation = .Cells(ligne, "B").Value
Else
Reservation = 0
End If
End If
End If
Next
End With
End Function