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 :

Fonction pour faire clignoter une cellule [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 50
    Points : 46
    Points
    46
    Par défaut Fonction pour faire clignoter une cellule
    Bonsoir le forum,

    Voilà, je souhaiterais faire clignoter une cellule par l'intermédiaire d'une fonction VBA.

    La fonction recevrait la cellule à faire clignoter en paramètre et réaliserait l'opération dans son code.

    J'ai fait quelques investigations mais je n'ai toujours pas réussi à obtenir de résultat.

    Si la fonction pouvait faire clignoter la cellule pendant un certain moment puis lui redonnerai sa couleur d'origine, ce serait encore mieux.

    Je remercie d'avance la personne qui pourrait m'aider.

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Tu devrais étendre tes investigations à Google

    Je pense que tu trouveras ton bonheur, j'ai vu une code a base de application.ontime (1er lien) qui me parait bien sympa .

    ++
    Qwaz

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 50
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Merci beaucoup Qwazerty, effectivement, la méthode OnTime est pas mal.

    Toutefois, j'ai utilisé une autre méthode, c'est la méthode Wait, toujours avec l'objet Application.

    Je n'ai pas encore pu transmettre le Range de la cellule à faire clignoter en paramètre.

    Cependant, le code ci-dessous répond très bien à mon attente.

    Je vous le colle, en espérant qu'il aidera d'autres personnes.

    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
    Sub Clignoter()
    Dim compteur As Integer, old_color As Integer
    old_color = ActiveCell.Interior.ColorIndex
    For compteur = 1 To 5
         With ActiveCell.Interior
              .ColorIndex = 6
         End With
         Application.Wait Now + TimeValue("00:00:01") / 1.5
         With ActiveCell.Interior
              .ColorIndex = 3
         End With
         Application.Wait Now + TimeValue("00:00:01") / 1.5
    Next
    ActiveCell.Interior.ColorIndex = old_color
    End Sub
    Amicalement.

  4. #4
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Voila pour le passage de paramètres, tu peux aller plus loin en mettant des paramètres optionnels et définir le temps d'attente entre 2 clignotements par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Clignoter(Cible As Range, ColorWait As Integer, NbrClignot As Integer)
    Dim compteur As Integer, old_color As Integer
    If NbrClignot < 1 Then NbrClignot = 1
    With Cible.Interior
        old_color = .ColorIndex
        For compteur = 1 To NbrClignot
            .ColorIndex = 6
            Application.Wait Now + TimeValue("00:00:01") / 1.5
            .ColorIndex = ColorWait
        Application.Wait Now + TimeValue("00:00:01") / 1.5
        Next
        .ColorIndex = old_color
    End With
    End Sub
    ++
    Qwaz

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 50
    Points : 46
    Points
    46
    Par défaut
    Merci Qwazerty,

    Super, ça fonctionne à merveille !

    Encore merci à toi.

    Amicalement.

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

Discussions similaires

  1. faire clignoter une cellule
    Par laurent1803 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/10/2007, 10h57
  2. faire clignoter une cellule d'une gridview
    Par guigui11 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 25/09/2007, 09h44
  3. Faire clignoter une cellule d'un MSFlexGrid
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/08/2006, 22h50
  4. Méthode simple pour faire clignoter une editbox
    Par mr.saucisse dans le forum MFC
    Réponses: 5
    Dernier message: 10/03/2006, 11h57
  5. Réponses: 8
    Dernier message: 07/02/2006, 18h31

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