Simplifier un code à lignes répétitives

  • Initiateur de la discussion Initiateur de la discussion guy72
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

guy72

XLDnaute Impliqué
Bonjour,
Est-il possible de simplifier ce morceau de code ?

If [B22] = 1 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 6 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 11 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 16 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 21 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 21 Then
Label5.ForeColor = RGB(0, 255, 0)
End If


J'ai essayé :

If [B22] = 1,6,11,16,21,26 Then
Label5.ForeColor = RGB(0, 255, 0)
End If

If [B22] = 1 And 6 And 11 And 16 And 21 And 26 Then
Label5.ForeColor = RGB(0, 255, 0)
End If

avec des ; etc....

Je ne sais pas si c'est possible ?
Merci de votre aide
Gordialement
Guy
 
Re : Simplifier un code à lignes répétitives

Bonjour Guy, Pierrer-Jean


A tester:


Code:
if [B22] = 1 or [B22] = 6 .... Then

Avec le code de Pierrejean , cela doit être plus simple, mais la je ne maîtrise pas 😕, mais je note, car l'dée est intéressante 🙂.
 
Dernière édition:
Re : Simplifier un code à lignes répétitives

Bonjour Pierre-Jean
Merci de ton aide,
Cela fonctionne pour Label5

Mais, je regarde ça, car je me demande si cela ne va pas poser de problème pour la suite du code, car je pensais que cela resterai entre "If et End If" de chaque résultat.

Voilà le code en entier valeurs = "1,6,11,16,21,26,"
If InStr(valeurs, [B22] & ",") <> 0 Then Label5.ForeColor = RGB(0, 255, 0)

If [B22] = 2 Then
Label6.ForeColor = RGB(0, 255, 0)
End If

If [B22] = 3 Then
Label7.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 4 Then
Label8.ForeColor = RGB(0, 255, 0)
End If
et
If [B22] = 5 Then
Label9.ForeColor = RGB(0, 255, 0)
End If

Cordialement
Guy
 
Re : Simplifier un code à lignes répétitives

Re

pour la suite: A tester

VB:
valeurs = "1,6,11,16,21,26,"
If InStr(valeurs, [B22] & ",") <> 0 Then Label5.ForeColor = RGB(0, 255, 0)
ldeb=4
for n=2 to 5
If [B22] =n then
ME.controls("Label" & ldeb+n).ForeColor = RGB(0, 255, 0)
end if
next n
 
Dernière édition:
Re : Simplifier un code à lignes répétitives

Bonjour à tous
(...)
Est-il possible de simplifier ce morceau de code ?

If [B22] = 1 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 6 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 11 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 16 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 21 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 21 Then
Label5.ForeColor = RGB(0, 255, 0)
End If

(...)
Oui.
Code:
[B][COLOR=DarkSlateGray]Select Case [B22].Value
Case 1, 6, 11, 16, 21
  Label5.ForeColor = RGB(0, 255, 0)
End Select[/COLOR][/B]
ROGER2327
#4448


Lundi 2 As 138 (Sainte RroSainte Sélavy, héroine, SQ)
14 Brumaire An CCXIX
2010-W44-4T14:36:52Z
 
Re : Simplifier un code à lignes répétitives

Bonjour à tous,

Une autre solution :

Remplacer
If [B22] = 1 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 6 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 11 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 16 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 21 Then
Label5.ForeColor = RGB(0, 255, 0)
End If
If [B22] = 26 Then
Label5.ForeColor = RGB(0, 255, 0)
End If

essaye :
Code:
If [B22] mod 5 = 1 and [B22] < 27 Then Label5.ForeColor = RGB(0, 255, 0)

ce qui donne pour les autres labels :
Code:
If [B22] < 27 Then ME.controls("Label" & 4 + Iif([B22] mod 5=0, 5, [B22] mod 5)).ForeColor = RGB(0, 255, 0)
 
Dernière édition:
Re : Simplifier un code à lignes répétitives

Bonjour à tous,
Après des essais très poussés, le résulat, est que les 3 solutions fonctionnent.
Pour Pierre-Jean, finalement la 1ère solution fonctionne, tu avais bien compris.
Eh bien, je n'ai que chose à vous dire :
Merci de votre aide.
Je vais essayer d'adapter ces formules pour autres chose, je vais faire des essais, et peut être aurais-je encore besoin de vous.
A tout à l'heure.
Cordialement
Guy
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
907
Réponses
4
Affichages
280
Réponses
4
Affichages
729
Retour