Aide réduction formule

Fermé
lordkro1 Messages postés 2 Date d'inscription mercredi 18 mai 2016 Statut Membre Dernière intervention 18 mai 2016 - 18 mai 2016 à 11:22
lordkro1 Messages postés 2 Date d'inscription mercredi 18 mai 2016 Statut Membre Dernière intervention 18 mai 2016 - 18 mai 2016 à 20:46
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 !

A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
18 mai 2016 à 12:02
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
lordkro1 Messages postés 2 Date d'inscription mercredi 18 mai 2016 Statut Membre Dernière intervention 18 mai 2016
18 mai 2016 à 20:46
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