Bonjour,
dans la boucle if then else, la valeur "x" ne change pas et a pris la valeur 5 du dernier next précédent.
si tu veux tester les différentes bornes de prem(x) et deux(x), il faut imbriquer les 2 boucles for:
Sub trouverdate()
Dim nb As Variant, prem(5) As String, deux(5) As String, i As Byte
Dim x As Byte
effacertout
nb = Range("a1")
For i = 1 To 30
for x= 1 to 5
prem(x) = Cells(2 + x, 1)
deux(x) = Cells(2 + x, 2)
If nb + 7 * (i - 1) <= prem(x) Or nb + 7 * (i - 1) >= deux(x) _
Then Range("c" & Range("c30").End(xlUp).Row + 1) = nb + 7 * (i - 1) Else
If nb + 7 * (i - 1) >= prem(x) And nb + 7 * (i - 1) <= deux(x) Then Range("c1") = ""
Next x
next i
end sub