Signaler

Répétitions code VBA [Résolu]

Posez votre question flyersgoaler 27Messages postés jeudi 13 novembre 2008Date d'inscription 13 septembre 2016 Dernière intervention - Dernière réponse le 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!
--
Afficher la suite 
Utile
+1
moins plus
Il suffit de mettre la valeur de Y en paramètre de la sub.
Ajouter un commentaire
Utile
+0
moins plus
Bonsoir

Tu peux mettre les trois lignes qui se répètent dans une sub et c'est elle que tu appelles
Ajouter un commentaire
Utile
+0
moins plus
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

--
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !