Bonjour,

J'ai un petit problème concernant l'utilisation de variables définies à partir d'un formulaire.

Je m'explique. J'ai créé un formulaire qui contient un certain nombre de boutons proposant chacun une couleur différente. Lorsqu'on clique dessus j'enregistre les référence de la couleur choisie pour pouvoir l'utiliser par la suite. Voici le code simplifié du formulaire avec deux couleurs :

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
Dim Couleur_RGB As String
Dim R_Interior, G_Interior, B_Interior As Integer
 
Private Sub Orange1_Click()
    Couleur_RGB = "R207 G077 B018"
    Call Charte
End Sub
 
Private Sub Violet1_Click()
    Couleur_RGB = "R106 G029 B088"
    Call Charte
End Sub
 
Sub Charte()
 
    ' Décode des valeurs RGB
    R_Interior = Mid(Couleur_RGB, 2, 3)
    G_Interior = Mid(Couleur_RGB, 7, 3)
    B_Interior = Mid(Couleur_RGB, 12, 3)
 
End Sub
N'étant pas du tout familier de l'utilisation des formulaires ou des "private sub" je ne sais pas comment sont gérées les variables enregistrées... (je mets toujours toutes les macros dans un seul module).

Le but est d'utiliser ces variables pour mettre le fond de nombreux en-tête avec la couleur définie initialement par l'utilisateur quand il a cliqué sur le formulaire. En l'occurrence je fais un appel du formulaire dans le module contenant toutes mes macros :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Sub Charte_Open()
 
    Charte_Graphique_Formulaire.Show
    Range("B2").Interior.Color = RGB(R_Interior, G_Interior, B_Interior)
 
End Sub
Mais mes variables définies en dehors de ma macro dans le code du formulaire ne sont apparemment pas enregistrées. J'ai tenté de mettre le "Dim... As" au niveau du module mais ce n'est manifestement pas le problème.

Ma macro générale est assez longue et va chercher plusieurs fichiers .csv pour les enregistrer en tant qu'onglet etc. tout le traitement (en tout cas la mise en forme de ces onglets) doit utiliser la couleur déterminée initialement.

Je suppose que la réponse doit être très simple...