bonsoir,
tu définis jrsmois comme entier > les valeurs qu'il peut contenir sont limitées à la plage -32768 à 32767. et cells(j,5) contient une date (qui au format interne excel correspond au nombre de jours depuis le 1/1/1900, qui peut être plus grand que 32767. tu reçois une msg dépassement quand c'est le cas). Une façon de corriger est de définir cette variable comme long.
mais plus loin tu utilises cette variable jrsmois dans la fonction dateserial(année, mois, jrsmois) dans ce cas jrsmois doit contenir une valeur de jour comprise entre 1 et 31 max. tu recevras également un dépassement de capacité sur cette instruction quand tu auras corrigé la première erreur.
j'en conclus que pour corriger ton problème tu peux laisser jrsmois comme integer mais changer l'instruction
jrsmois=cells(j,5)
par
jrsmois=day(cells(j,5))
après tu devras encore corriger cette ligne
If Sheets("cascade").Round(Range("G" & i)) <> Range("G" & i) Then
en
If Round(Sheets("cascade").Range("G" & i)) <> Range("G" & i) Then