Aide réduction formule

lordkro1 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
lordkro1 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai un gros soucis qui me bloque, je sais que lors de la compilation on ne peut excéder les 64 ko cependant là j'ai pas d'idée pour alleger mon problème.

J'ai 273 Label dans un Userform qui changent de couleurs en fonctions de données (0,1 ou 2) contenues dans des cellules de tableau Excel. Chacun de ces Labels on trois couleurs possibles.

Voici mon code pour un seul Label :
""""
Dim lignetaxosec As Integer
lignetaxosec = 92 * ComboBox100.ListIndex

If Worksheets("saisie Acquisitions").Cells(lignetaxosec + 10, 26).Value = "0" Then
Label99.BackColor = RGB(255, 0, 0)
ElseIf Worksheets("saisie Acquisitions").Cells(lignetaxosec + 10, 26).Value = "1" Then
Label99.BackColor = RGB(255, 206, 0)
ElseIf Worksheets("saisie Acquisitions").Cells(lignetaxosec + 10, 26).Value = "2" Then
Label99.BackColor = RGB(0, 255, 0)
End If

""""""""
Voilà, et je dois répéter ça pour 273 Label ! Chacun des ces labels ne prenants pas les donnée dans la même cellule évidement....

Forcément je dépasse !

Voilà pour le deuxième Label :

If Worksheets("saisie Acquisitions").Cells(lignetaxosec + 11, 26).Value = "0" Then
Label100.BackColor = RGB(255, 0, 0)
ElseIf Worksheets("saisie Acquisitions").Cells(lignetaxosec + 11, 26).Value = "1" Then
Label100.BackColor = RGB(255, 206, 0)
ElseIf Worksheets("saisie Acquisitions").Cells(lignetaxosec + 11, 26).Value = "2" Then
Label100.BackColor = RGB(0, 255, 0)
End If

J'incrémente de 1 le numéro du label et de 1 l'indexage de ligne pour trouver la bonne cellule... et ça 273 fois

Je ne sais pas si quelqu'un peut m'aider mais ça serait vraiment cool

Je pense qu'il faudrait passer par un tableau, mais je ne maitrise pas bien la chose et je ne sais pas comment lancer une routine d'incrémentation du numéro de label !

Merci beaucoup à tous !

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Dans qu'elle procédure de l'userform se trouve ton code pour les 273 labels?
    Userform_Initialize?
    UserForm_Activvate?
    CommandButton1_Click?
    autre?
    Comment calcules-tu ta variable lignetaxosec selon les Label?

    Sinon, si tous les labels concernés et seulement les labels concernés sont nommés : Label1, Label2, Label3, ..., Label272, Label273, voici un exemple (j'ai juste ajouté 1 à lignetaxosec à chaque Label) :

    Private Sub Userform_Initialize()
    Dim i As integer
    Dim lignetaxosec As Integer 
       lignetaxosec = 92 * ComboBox100.ListIndex 
       For i = 1 To 273
          'ICI place TA méthode de calcul de la ligne
          lignetaxosec = lignetaxosec + 1
          Call Colorie(Me.Controls("Label" & i), lignetaxosec)
       Next i
    End Sub
    Sub Colorie(Lab As Control, Lign As Integer)
       If Worksheets("saisie Acquisitions").Cells(lign, 26).Value = "0" Then 
          Lab.BackColor = RGB(255, 0, 0) 
       ElseIf Worksheets("saisie Acquisitions").Cells(lign, 26).Value = "1" Then 
          Lab.BackColor = RGB(255, 206, 0) 
       ElseIf Worksheets("saisie Acquisitions").Cells(lign, 26).Value = "2" Then 
          Lab.BackColor = RGB(0, 255, 0) 
       End If 
    End Sub
    0
  2. lordkro1 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
     
    Désolé pour la réponse longue, Je vis à l'autre bout du monde et c'est le petit matin ici !

    J'essaie ça ce soir et je reviens vers vous !

    Merci beaucoup !
    0