Répétitions code VBA

Résolu
Bonjour,

Je souhaite savoir s'il y a un moyen d'éviter les répétions de mon code, car je dois avoir une cinquantaine de "if...then" et si les conditions s'avèrent vraies, les 3 premières lignes de code doivent toujours s'inscrire. Je voudrais donc savoir si je peux faire référence aux lignes
Sheets(4).Range("A4").Value = Range("AE" & y)
Sheets(4).Range("B4").Value = Range("B" & y)
Sheets(4).Range("C4").Value = Range("C" & y)

une seule fois afin d'éviter de devoir les répéter constamment.

Voici un extrait de mon code :

For y = Sheets(2).Range("A1").End(xlDown).Row To 2 Step -1

If Round((Range("AF" & y).Value + Range("AG" & y).Value), 2) <> Round((Range("AH" & y).Value), 2) Then

Sheets(4).Range("A4").Value = Range("AE" & y)
Sheets(4).Range("B4").Value = Range("B" & y)
Sheets(4).Range("C4").Value = Range("C" & y)
Sheets(4).Range("D4").Value = "Rouge"

End If

If Range("E" & y) = "Soleil" Then
If Range("AG" & y).Value <> 0 Then

Sheets(4).Range("A4").Value = Range("AE" & y)
Sheets(4).Range("B4").Value = Range("B" & y)
Sheets(4).Range("C4").Value = Range("C" & y)
Sheets(4).Range("D4").Value = "Jaune"

End If
End If

If Range("E" & y) = "Ciel" Then
If Len(Range("AD" & y)) < 5 Then

Sheets(4).Range("A4").Value = Range("AE" & y)
Sheets(4).Range("B4").Value = Range("B" & y)
Sheets(4).Range("C4").Value = Range("C" & y)
Sheets(4).Range("D4").Value = "Bleu"
End If
End If

Merci!


--

3 réponses

  1. Il suffit de mettre la valeur de Y en paramètre de la sub.
    1. Bonsoir

      Tu peux mettre les trois lignes qui se répètent dans une sub et c'est elle que tu appelles
      1. Mais cela ne fonctionne pas, car il y a le "& y" dans : Sheets(4).Range("A4").Value = Range("AE" & y) .

        De ce fait, en changeant de "sub", la suite For...Next y se perd

        --