Macro changement de couleur de texte

Fermé
dx0069 Messages postés 10 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011 - 27 févr. 2011 à 11:27
dx0069 Messages postés 10 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011 - 27 févr. 2011 à 19:14
Bonjour,



Je cherche à creer une macro sur access 2007 qui me permettrait de changer la couleur du texte d'une etiquette dans un formulaire X à l'aide d'un bouton se trouvant dans un formulaire Y.

Pouvez-vou m'aider ?

Je vous remerci d'avance.
A voir également:

12 réponses

ralag Messages postés 15 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011 2
27 févr. 2011 à 13:37
Salut,
Tu ne voudrait pas plutot le faire en VBA ?
Ce serait plus simple.
0
dx0069 Messages postés 10 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011
27 févr. 2011 à 13:45
Si c'est plus facile, je suis preneur car je n'y connait rien.

Merci.
0
ralag Messages postés 15 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011 2
27 févr. 2011 à 14:58
Dans le form F_Y j'ai un label dont le nom est FE_Etiquette1
Dans le form F_X j'ai mis un bouton de commande et j'ai quitter l'assistant immédiatement car je ne peux choisir ce qui est proposé.
Ensuite, je fais un clic droit sur le bouton et je choisit Créer code évenement et code.
en dessous Private Sub Commande1_Click() si le bouton se nomme commande1 je tape :
Forms!F_Y!FE_Etiquette1.ForeColor = vbRed
ou à la place de vbred RGB(0, 255, 0) pour Green etc...
Les 2 forms doivent être ouvert et le vba ne doit pas être bloqué dans cette base.
Quand tu la réouvre tu doit cliquer sur activer ce contenu. (je crois)
Dis moi si c'est good
0
dx0069 Messages postés 10 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011
27 févr. 2011 à 15:18
C'est bon, Nickel.

Je te remercie beaucoup.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dx0069 Messages postés 10 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011
27 févr. 2011 à 15:33
Si je peux abuser,

Que dois-je faire si je veux retrouver la couleur d'origine en recliquant ?

Merci
0
ralag Messages postés 15 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011 2
27 févr. 2011 à 15:42
Tu peux stocker la couleur d'origine dans la propiété Tag (remarque)
le code serait :

Private Sub Commande1_Click()

If Forms!F_Y!FE_Etiquette1.ForeColor <> RGB(0, 255, 0) Then
Forms!F_Y!FE_Etiquette1.Tag = Forms!F_Y!FE_Etiquette1.ForeColor
Forms!F_Y!FE_Etiquette1.ForeColor = RGB(0, 255, 0)
Else
Forms!F_Y!FE_Etiquette1.ForeColor = Forms!F_Y!FE_Etiquette1.Tag
End If


End Sub

Ce n'est pas terrible mais devrait être ok

Si c'est bon tu pourra clore la fiche, sinon je suis là
A+
0
dx0069 Messages postés 10 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011
27 févr. 2011 à 15:53
Un tres grand Merci
0
dx0069 Messages postés 10 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011
27 févr. 2011 à 18:01
C'est encore moi pour vous ennuyer.

N'y a t-il pas un moyen pour garder la derière couleur en mémoire car quand on ferme le formulaire puis qu'o le réouvre, la couleur de la police est revenu à son point de départ.

Cad, Si la dernière couleur est le vert, si je ferme et que je réouvre, les caractères seront revebus en noir.

Merci
0
ralag Messages postés 15 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011 2
27 févr. 2011 à 18:37
Dans ce cas il faut créer une table dans laquelle on stocke la valeur de la couleur
il faut une fonction
-pour le save de la couleur
-pour le load

cela se complique

ou bien passer le form en mode design et le sauver :

Private Sub Commande1_Click()

DoCmd.OpenForm "F_Y", acDesign

If Forms!F_Y!FE_Etiquette1.ForeColor <> RGB(0, 255, 0) Then
Forms!F_Y!FE_Etiquette1.Tag = Forms!F_Y!FE_Etiquette1.ForeColor
Forms!F_Y!FE_Etiquette1.ForeColor = RGB(0, 255, 0)
Else
Forms!F_Y!FE_Etiquette1.ForeColor = Forms!F_Y!FE_Etiquette1.Tag
End If

DoCmd.Save acForm, "F_Y"
DoCmd.OpenForm "F_Y", acNormal

End Sub
0
dx0069 Messages postés 10 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011
27 févr. 2011 à 18:49
Cela me met que l'opération ne peut etre achevée.

Apparement, il bloque sur cette ligne :

DoCmd.Save acForm, "F_Y"
0
ralag Messages postés 15 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011 2
27 févr. 2011 à 18:54
J'ai fait mes testes sur un 2003, mais cela devrait coller
sauf si les data de ton form on été modifiées, dans ce cas il faudrait les save avant, quel est le message ?
0
dx0069 Messages postés 10 Date d'inscription dimanche 27 février 2011 Statut Membre Dernière intervention 2 mars 2011
27 févr. 2011 à 19:14
erreur d'exécution '29068':

Silox ne peut achever l'opération. Vous devez interrompre l'exécution du code et recommencer


Silox est le nom de ma base
0