bonjour,
j'ai du mal à comprendre la logique de ce que tu essaies de faire.
D'un point de vue programmation en VBA (sans comprendre ce que tu essaies de faire), on ne modifie pas les variables de gestion d'une boucle for (ici tu modifies n et m et la valeur de m dépasse le nombre de valeurs dans ton tableau, d'où l'erreur VBA). Ces variables sont incrémentées automatiquement lors de l'instruction next. Donc pour moi il y a une erreur de conception à ce niveau-là, pour la correction peux-tu expliquer ce que tu cherches à faire dans ce bout de code ?
list1 = Array("jpr2", "jpr3", "jpr4", "jpr5")
list2 = Array("jo2", "jo3", "jo4", "jo5")
m = 0
n = 0
For i = deb + 1 To fin - 1
For m = 0 To UBound(list1)
For n = 0 To UBound(list2)
'si jour de début période2 <> fin période1 + 1
If Day(tb4.DataBodyRange(i + k, 5).Value) + 1 <> tb4.DataBodyRange(i + k - 1, 4).Value Then
jrD = Day(tb4.DataBodyRange(i + k - 1, 5).Value)
jrF = Day(tb4.DataBodyRange(i + k, 4).Value)
MsgBox jrD & " " & jrF
list1(m) = jrF - jrD - 1
'recherche jrs we
we = 0
For j = 0 To jpr2
If Weekday(CDate(tb4.DataBodyRange(i + k - 1, 4).Value) + j) = 7 Or _
Weekday(CDate(tb4.DataBodyRange(i + k - 1, 4).Value) + j) = 1 Then
we = we + 1
End If
Next j
k = k + 1
'jous ouvrables 2eme période
list2(n) = dict1(list1(n)) - we
m = m + 1
n = n + 1
End If
Next n
Next m
Next i