IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mettre à jour le change de couleur de case à cocher [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Points : 19
    Points
    19
    Par défaut Mettre à jour le change de couleur de case à cocher
    Bonjour,

    je suis passé de office 2003 à 2010 et y a un truc qui ne marche plus...

    J'ai un fichier excel où on coche des cases. On lance une macro principale qui en fonction des cases cochées lance différentes sous-macro. Avec une sous-macro pour chaque case à cocher.

    Pour voir quelle macro tourne, je change la couleur de la case associée pendant qu'elle tourne. Donc en début de chaque sous-macro j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
    Selection.ShapeRange.Line.DashStyle = msoLineSolid
    Selection.ShapeRange.Line.Visible = msoFalse
    DoEvents
    et à la fin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        DoEvents
        Selection.ShapeRange.Fill.ForeColor.SchemeColor = 22
    Ca marchait bien. Le "DoEvents" était nécessaire pour voir le changement de couleur. Sinon on ne voyait rien.

    Ici, on ne voit plus les changements de couleurs. Le visuel n'étant pas mis à jour avant la fin de la macro.

    J'ai mis " ScreenUpdating = True " en début de macro. Sans effet.

    Des conseils?

    Merci!

  2. #2
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 94
    Points : 173
    Points
    173
    Par défaut
    tu as mis screenupdating tout court ou application.screenupdating ? Il faut mettre application.screenupdating sinon rien ne se passe (même si screenupdating seul ne fait pas planter).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Soraphiroth: bonne remarque.

    le code devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Application.ScreenUpdating = True
        Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
        Selection.ShapeRange.Line.DashStyle = msoLineSolid
        Selection.ShapeRange.Line.Visible = msoFalse
    visuellement, on voit que la case à cocher est sélectionnée.

    Par contre, la couleur ne change pas

  4. #4
    Membre averti
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 478
    Points : 442
    Points
    442
    Par défaut
    Peux tu mettre la macro complete stp ?
    JE pense avoir une idee.
    ajouter en debut de macro
    et en fin de macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkBook.refreshAll

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    En fait ça marche avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
        DoEvents
        Selection.ShapeRange.Line.DashStyle = msoLineSolid
        Selection.ShapeRange.Line.Visible = msoFalse
     
        DoEvents
    en insérant un DoEvents après le changement de couleur...

    Ashireon, ta solution ne fonctionne pas.

    En tout cas, merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Changer la couleur des cases à cocher
    Par manusp dans le forum IHM
    Réponses: 3
    Dernier message: 02/03/2011, 14h26
  2. [Curvy Corner] Mettre à jour couleur fond div
    Par sterix92 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/09/2009, 19h00
  3. Mise en couleur colonne ( case à cocher )
    Par Phill1140 dans le forum VBA Access
    Réponses: 14
    Dernier message: 12/01/2009, 20h36
  4. Réponses: 16
    Dernier message: 19/02/2008, 14h10
  5. Réponses: 16
    Dernier message: 27/05/2007, 23h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo