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 :
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).
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
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 :
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.
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
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...
Partager