Rapport de message :*
 

Boucler sur plusieurs labels

Titre du sujet : Boucler sur plusieurs labels
par criscris11 le 23/07/2012 21:17:55

Bonsoir,
J'utilise dans un USF plusieurs labels afin de récupérer des données provenant d'une feuille de calcul (petite base de données). Dans une partie de cet USF, je récupère certaines données identiques dans 6 labels nommés Label64 à Label69 avec ceci :

Me.Label64.Caption = Sheets("Base gestion MDR").Cells(NomOK(ligne), "BI")
   If Label64.Caption = "Oui" Then
   Label64.BackColor = RGB(0, 255, 0)
   ElseIf Label64.Caption = "Ajourné" Then
   Label64.BackColor = RGB(255, 102, 0)
   ElseIf Label64.Caption = "Abandon" Or Label64.Caption = "Echec" Then
   Label64.BackColor = RGB(255, 0, 0)
   Else
   Label64.BackColor = RGB(255, 255, 255)
   Label64.Caption = "Non"
   End If
   Me.Label65.Caption = Sheets("Base gestion MDR").Cells(NomOK(ligne), "BJ")
   If Label65.Caption = "Oui" Then
   Label65.BackColor = RGB(0, 255, 0)
   ElseIf Label65.Caption = "Ajourné" Then
   Label65.BackColor = RGB(255, 102, 0)
   ElseIf Label65.Caption = "Abandon" Or Label65.Caption = "Echec" Then
   Label65.BackColor = RGB(255, 0, 0)
   Else
   Label65.BackColor = RGB(255, 255, 255)
   Label65.Caption = "Non"
   End If
   Me.Label66.Caption = Sheets("Base gestion MDR").Cells(NomOK(ligne), "BK")
   If Label66.Caption = "Oui" Then
   Label66.BackColor = RGB(0, 255, 0)
   ElseIf Label66.Caption = "Ajourné" Then
   Label66.BackColor = RGB(255, 102, 0)
   ElseIf Label66.Caption = "Abandon" Or Label66.Caption = "Echec" Then
   Label66.BackColor = RGB(255, 0, 0)
   Else
   Label66.BackColor = RGB(255, 255, 255)
   Label66.Caption = "Non"
   End If
   Me.Label67.Caption = Sheets("Base gestion MDR").Cells(NomOK(ligne), "BL")
   If Label67.Caption = "Oui" Then
   Label67.BackColor = RGB(0, 255, 0)
   ElseIf Label67.Caption = "Ajourné" Then
   Label67.BackColor = RGB(255, 102, 0)
   ElseIf Label67.Caption = "Abandon" Or Label67.Caption = "Echec" Then
   Label67.BackColor = RGB(255, 0, 0)
   Else
   Label67.BackColor = RGB(255, 255, 255)
   Label67.Caption = "Non"
   End If
   Me.Label68.Caption = Sheets("Base gestion MDR").Cells(NomOK(ligne), "BM")
   If Label68.Caption = "Oui" Then
   Label68.BackColor = RGB(0, 255, 0)
   ElseIf Label68.Caption = "Ajourné" Then
   Label68.BackColor = RGB(255, 102, 0)
   ElseIf Label68.Caption = "Abandon" Or Label68.Caption = "Echec" Then
   Label68.BackColor = RGB(255, 0, 0)
   Else
   Label68.BackColor = RGB(255, 255, 255)
   Label68.Caption = "Non"
   End If
   Me.Label69.Caption = Sheets("Base gestion MDR").Cells(NomOK(ligne), "BN")
   If Label69.Caption = "Oui" Then
   Label69.BackColor = RGB(0, 255, 0)
   ElseIf Label69.Caption = "Ajourné" Then
   Label69.BackColor = RGB(255, 102, 0)
   ElseIf Label69.Caption = "Abandon" Or Label69.Caption = "Echec" Then
   Label69.BackColor = RGB(255, 0, 0)
   Else
   Label69.BackColor = RGB(255, 255, 255)
   Label69.Caption = "Non"
   End If
Je sais que je pourrais faire une boucle pour alléger le code et le rendre plus lisible mais je sèche un peu, j'avoue.
A noter qu'il faut déclarer les variables (Option Explicit), que ces 6 labels possèdent un tag nommé Lbl, qu'ils sont tous dans le même Frame mais avec d'autres labels.
J'espère avoir été assez explicite et merci par avance.
Bonne soirée.