Macro changement de couleur de texte

dx0069 Messages postés 12 Statut Membre -  
dx0069 Messages postés 12 Statut Membre -
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.

12 réponses

  1. ralag Messages postés 15 Statut Membre 2
     
    Salut,
    Tu ne voudrait pas plutot le faire en VBA ?
    Ce serait plus simple.
    0
  2. dx0069 Messages postés 12 Statut Membre
     
    Si c'est plus facile, je suis preneur car je n'y connait rien.

    Merci.
    0
  3. ralag Messages postés 15 Statut Membre 2
     
    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
  4. dx0069 Messages postés 12 Statut Membre
     
    C'est bon, Nickel.

    Je te remercie beaucoup.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dx0069 Messages postés 12 Statut Membre
     
    Si je peux abuser,

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

    Merci
    0
  7. ralag Messages postés 15 Statut Membre 2
     
    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
  8. dx0069 Messages postés 12 Statut Membre
     
    Un tres grand Merci
    0
  9. dx0069 Messages postés 12 Statut Membre
     
    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
  10. ralag Messages postés 15 Statut Membre 2
     
    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
  11. dx0069 Messages postés 12 Statut Membre
     
    Cela me met que l'opération ne peut etre achevée.

    Apparement, il bloque sur cette ligne :

    DoCmd.Save acForm, "F_Y"
    0
  12. ralag Messages postés 15 Statut Membre 2
     
    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
  13. dx0069 Messages postés 12 Statut Membre
     
    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