Pas de souci, je ne connais pas totalement le règlement non plus, c'est plus des bonnes pratiques pour pouvoir nous aider à t'aider on va dire, c'est vrai que le titre parlait d'un bug sur if donc j'aurais pu trouver où c'était avec ça.
De ce que je vois sur ton code du if...
If .Cells(i, 7) <= 365 Then .Cells(i, 20) = .Cells(i, 19) Else .Cells(i, 7) = 0
La partie en orange est celle qui pourrait buguer d'après moi, est-ce que tu as une erreur qui te dit "incompatibilité de type"? l'affectation des valeurs sur la ligne me semble bonne, d'autant que si ton i est supérieur à 1, les Cells devraient être ok, il ne reste que le test qui pourrait ne pas marcher.
Par exemple si tu as:
Ce qui va créer un bug c'est le fait de tenter de comparer du texte non convertible en nombre à un nombre, quand tu rencontres l'erreur, quelle est la valeur de .Cells(i,7)? As-tu bien le même message d'erreur que moi? il donne généralement une bonne piste. Pour avoir la valeur de .Cells(i,7) tu peux passer la souris dessus ou rajouter un espion en mettant Sheets("Risque Client").Cells(i, 7) pour l'espion, si tu mets seulement .Cells(i,7) VBA ne comprendra pas le contexte.