Répétitions code VBA

Résolu/Fermé
flyersgoaler Messages postés 29 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 4 octobre 2016 - 13 sept. 2016 à 17:16
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 13 sept. 2016 à 23:50
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!


--
A voir également:

3 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
13 sept. 2016 à 23:50
Il suffit de mettre la valeur de Y en paramètre de la sub.
1
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
13 sept. 2016 à 17:57
Bonsoir

Tu peux mettre les trois lignes qui se répètent dans une sub et c'est elle que tu appelles
0
flyersgoaler Messages postés 29 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 4 octobre 2016
13 sept. 2016 à 19:19
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

--
0