Bonjour à tous,
Je viens de travailler comme un goret, les macros tournent, mais cela représente 3200 lignes de codes.
Vous l'avez compris je ne suis pas un expert.
Dans une Multipage, j'ai inséré 108 Textbox, divisées en 4 ilots de respectivement 60, 24, 18 et 6 textbox.
La macro va chercher un texte sur une cellule, par exemple de F3 à F62 pour le premier ilot, et l'affiche dans la Textbox correspondante.
Puis une autre macro, qui est appelée par la précédente, va chercher un autre texte dans une autre cellule, par exemple de H3 à H62, afin de coloriser la textbox correspondante.
Par exemple la Textbox nommée SMP_1_01 va chercher le texte "XXX" dans la cellule F3, puis le contenu de la cellule H3 colorise la Textbox selon la valeur trouvée ; vert pour V, magenta pour M, jaune pour J et enfin rouge pour R.
Pour la première macro j'ai le code suivant:
(TMa2 est le nom de l'userform)
Pour le seconde macro j'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sheets("SMP").Select Range("F3").Select If Selection.Text <> "" Then TMa2.SMP_1_01 = ActiveCell.Text Else: TMa2.SMP_1_01.Visible = False End If
Ces 2 codes sont reproduits à 107 exemplaires en changeant à chaque fois les adresses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Sheets("SMP").Select Range("H3").Select If Selection.Value = "V" Then TMa2.SMP_1_01.BackColor = vbGreen Else If Selection.Value = "J" Then TMa2.SMP_1_01.BackColor = vbYellow Else If Selection.Value = "M" Then TMa2.SMP_1_01.BackColor = vbMagenta Else If Selection.Value = "R" Then TMa2.SMP_1_01.BackColor = vbRed Else If Selection.Value = "/" Then TMa2.SMP_1_01.BackColor = vbWhite End If End If End If End If End If
Avez-vous une solution pour alléger mes macros![]()
Partager