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 :

Changement de couleur d'une case à cocher [XL-2003]


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 Changement de couleur d'une case à cocher
    Bonjour,

    je veux changer la couleur d'une case à cocher pour indiquer que l'action cochée est en cours. Elle est grise avant le lancement de la macro, puis verte quand la macro tourne et redevient grise à la fin.

    J'arrive à la faire devenir verte, sans soucis. Mais si je mets le retour au gris, il ne se passe rien. Ce qui est bizarre c'est que ça marche en pas à pas, mais pas en éxécuté... Ca marche aussi si je mets une msgbox entre les 2 chgmnt de couleur...

    Bref il me manque une petit astuce.

    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
    Public Declare Sub Sleep Lib "Kernel32.dll" (ByVal dwMillisenconds As Long)
    Sub Macro()
    ActiveSheet.Shapes("case_empref").Select
    If Selection.Value = xlOn Then<div style="margin-left:40px">    Selection.ShapeRange.Fill.Visible = msoTrue
        Selection.ShapeRange.Fill.Solid
        Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
        Selection.ShapeRange.Fill.Transparency = 0#
        Selection.ShapeRange.Line.Weight = 0.75
        Selection.ShapeRange.Line.DashStyle = msoLineSolid
        Selection.ShapeRange.Line.Style = msoLineSingle
        Selection.ShapeRange.Line.Transparency = 0#
        Selection.ShapeRange.Line.Visible = msoFalse
     
        Sleep (5000) 'attente 5s pour simuler l'action
     
        Selection.ShapeRange.Fill.ForeColor.SchemeColor = 22
        Cells(4, 2).Select</div>End If
    End Sub
    Merci!

  2. #2
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Bonjour,
    Essaie de mettre un DoEvents avant et après l'action, ça permet de redonner la main à Excel pendant l'exécution du code.

  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
    Excellent! ça marche top top.

    Merci!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/12/2010, 10h12
  2. Réponses: 3
    Dernier message: 19/06/2008, 00h00
  3. Réponses: 6
    Dernier message: 17/03/2006, 11h44
  4. Pb pour récupérer la velur d'une case à cocher
    Par muppetshow dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/04/2005, 21h23
  5. changer couleur d'une "case" selon clique
    Par Jéjé2reims dans le forum MFC
    Réponses: 4
    Dernier message: 05/02/2004, 12h19

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