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)

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
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
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
Ces 2 codes sont reproduits à 107 exemplaires en changeant à chaque fois les adresses

Avez-vous une solution pour alléger mes macros