Boucles
mcno
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Tessel75 -
Tessel75 -
Bonjour,
Est-ce que quelqu'un pourrait m'expliquer comment simplifier les instructions ci-dessous:
' Format conditionnel des champs tâches"
Select Case Me.Lundi.Column(1)
Case "désin": Me![Lundi].ForeColor = vbRed
Case "Désin*": Me![Lundi].ForeColor = vbRed
Case "Balay": Me![Lundi].ForeColor = vbBlack
Case "Lava": Me![Lundi].ForeColor = vbBlue
Case "Aspi": Me![Lundi].ForeColor = vbGreen
End Select
Select Case Me.Mardi.Column(1)
Case "désin": Me![Mardi].ForeColor = vbRed
Case "Désin*": Me![Mardi].ForeColor = vbRed
Case "Balay": Me![Mardi].ForeColor = vbBlack
Case "Lava": Me![Mardi].ForeColor = vbBlue
Case "Aspi": Me![Mardi].ForeColor = vbGreen
End Select
Select Case Me.Mercredi.Column(1)
Case "désin": Me![Mercredi].ForeColor = vbRed
Case "Désin*": Me![Mercredi].ForeColor = vbRed
Case "Balay": Me![Mercredi].ForeColor = vbBlack
Case "Lava": Me![Mercredi].ForeColor = vbBlue
Case "Aspi": Me![Mercredi].ForeColor = vbGreen
End Select
Select Case Me.Jeudi.Column(1)
Case "désin": Me![Jeudi].ForeColor = vbRed
Case "Désin*": Me![Jeudi].ForeColor = vbRed
Case "Balay": Me![Jeudi].ForeColor = vbBlack
Case "Lava": Me![Jeudi].ForeColor = vbBlue
Case "Aspi": Me![Jeudi].ForeColor = vbGreen
End Select
Select Case Me.Vendredi.Column(1)
Case "désin": Me![Vendredi].ForeColor = vbRed
Case "Désin*": Me![Vendredi].ForeColor = vbRed
Case "Balay": Me![Vendredi].ForeColor = vbBlack
Case "Lava": Me![Vendredi].ForeColor = vbBlue
Case "Aspi": Me![Vendredi].ForeColor = vbGreen
End Select
Merci d'avance.
Est-ce que quelqu'un pourrait m'expliquer comment simplifier les instructions ci-dessous:
' Format conditionnel des champs tâches"
Select Case Me.Lundi.Column(1)
Case "désin": Me![Lundi].ForeColor = vbRed
Case "Désin*": Me![Lundi].ForeColor = vbRed
Case "Balay": Me![Lundi].ForeColor = vbBlack
Case "Lava": Me![Lundi].ForeColor = vbBlue
Case "Aspi": Me![Lundi].ForeColor = vbGreen
End Select
Select Case Me.Mardi.Column(1)
Case "désin": Me![Mardi].ForeColor = vbRed
Case "Désin*": Me![Mardi].ForeColor = vbRed
Case "Balay": Me![Mardi].ForeColor = vbBlack
Case "Lava": Me![Mardi].ForeColor = vbBlue
Case "Aspi": Me![Mardi].ForeColor = vbGreen
End Select
Select Case Me.Mercredi.Column(1)
Case "désin": Me![Mercredi].ForeColor = vbRed
Case "Désin*": Me![Mercredi].ForeColor = vbRed
Case "Balay": Me![Mercredi].ForeColor = vbBlack
Case "Lava": Me![Mercredi].ForeColor = vbBlue
Case "Aspi": Me![Mercredi].ForeColor = vbGreen
End Select
Select Case Me.Jeudi.Column(1)
Case "désin": Me![Jeudi].ForeColor = vbRed
Case "Désin*": Me![Jeudi].ForeColor = vbRed
Case "Balay": Me![Jeudi].ForeColor = vbBlack
Case "Lava": Me![Jeudi].ForeColor = vbBlue
Case "Aspi": Me![Jeudi].ForeColor = vbGreen
End Select
Select Case Me.Vendredi.Column(1)
Case "désin": Me![Vendredi].ForeColor = vbRed
Case "Désin*": Me![Vendredi].ForeColor = vbRed
Case "Balay": Me![Vendredi].ForeColor = vbBlack
Case "Lava": Me![Vendredi].ForeColor = vbBlue
Case "Aspi": Me![Vendredi].ForeColor = vbGreen
End Select
Merci d'avance.
1 réponse
Bonjour,
Il n'y a pas beaucoup de simplification à apporter à ton code.
Attention : En principe, sauf s'il y a eu des changements dans les nouvelles versions du VBA, tu ne peux pas utiliser l'expression "like "ABC*"" avec Select Case. A moins que ton "*" soit à prendre comme un caractère propre.
Par contre, tu peux regrouper plusieurs conditions sous un même "Case":
Case "ABC", "DEF", "GHJ", etc ... : XYZ
Et puis, tu peux utiliser l'écriture With ... End With pour alléger l'écriture.
A l'arrivée, tu auras une écriture du genre:
With Me![Lundi]
Select case .Column(1)
Case "désin","Désin*": .ForeColor = vbRed
Case "Balay": .ForeColor = vbBlack
etc
End select
End with
Et ainsi de suite
Il n'y a pas beaucoup de simplification à apporter à ton code.
Attention : En principe, sauf s'il y a eu des changements dans les nouvelles versions du VBA, tu ne peux pas utiliser l'expression "like "ABC*"" avec Select Case. A moins que ton "*" soit à prendre comme un caractère propre.
Par contre, tu peux regrouper plusieurs conditions sous un même "Case":
Case "ABC", "DEF", "GHJ", etc ... : XYZ
Et puis, tu peux utiliser l'écriture With ... End With pour alléger l'écriture.
A l'arrivée, tu auras une écriture du genre:
With Me![Lundi]
Select case .Column(1)
Case "désin","Désin*": .ForeColor = vbRed
Case "Balay": .ForeColor = vbBlack
etc
End select
End with
Et ainsi de suite
Merci pour ta réponse rapide.
En effet l'* est un caractère que nous utilisons dans la désignation du travail effectué et est donc un caractère propre. Ce que je pensais était plutôt d'utiliser une fonction du genre "for each" pour ne pas répéter les actions pour chaque jour de la semaine, un peu comme une sous-routine.
Bonne suite.