Cellule clignotante selon une valeur

Résolu
senecartour Messages postés 324 Date d'inscription   Statut Membre Dernière intervention   -  
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à la communauté des experts VBA,

Je souhaiterais trouver la solution pour faire clignoter les cellule d'une plage selon la valeur.J'ai presque finaliser la solution sauf que je n'arrive pas à trouver comment alterner mes deux fonctions. Je m'explique:

j'ai crées deux fonctions qui sont:
-fonction cligno: permet de mettre le fond de mes cellule en vert si valeur > 12 (jusqu'ici tout va bien)
-fonction arretcligno: permet d'enlever le fond vert (jusqu'ici tout va bien)
ensuite, j'ai utiliser ces deux fonctions dans une module avec la méthode Call (voir code ci-dessous)

Sub declencher()
Call Arretcligno
vNow = Now() + TimeValue("00:00:01")
Call cligno
End Sub

Saut que l'alternance entre les deux fonctions ne se fait pas. Merci pour votre aide.
Je vous joins le fichier en question via le lien:
https://www.cjoint.com/c/EGloSsdnzAG

Merci d'avance pour votre gentillesse et professionnalisme!


1 réponse

Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonsoir
Si j'ai bien compris,
Private Sub Worksheet_change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("B2:J7")) Is Nothing Then
        T = 0
        'Clignotement
        Do While T < 2
            If Target.Interior.Color = RGB(0, 255, 0) Then
                Target.Interior.Color = xlNone
                Target.Font.ColorIndex = 3
                Application.Wait Now + TimeValue("00:00:01")
                T = T + 1
            Else
                Target.Interior.Color = RGB(0, 255, 0)
                Target.Font.ColorIndex= 1
                Application.Wait Now + TimeValue("00:00:01")
            End If
        Loop
            
        'Fixer les couleurs
        If Target < 12 Then
            Target.Interior.Color = xlNone
            Target.Font.ColorIndex = 3
        Else
            Target.Interior.Color = RGB(0, 255, 0)
            Target.Font.ColorIndex= 1
        End If
    End If
End Sub

A coller dans le module de la feuille 1
Cdlt
0
Senecartour
 
commentaireOnsoir Frenchie83, merci pour votre proposition. Mais je souhaiterais partir à partir de mon code. En effet je souhaiterais appliquer ma.méthode.
Est ce que c'est possible de l'appliquer a mon code ?
Merci pour votre aide!!
0
senecartour Messages postés 324 Date d'inscription   Statut Membre Dernière intervention   3
 
Frenchie83,
J'ai testé votre code en le collant dans la feuille 1 de mon classeur. En lançant la macro, Excel me demande de donner un nom à la macro.
Est ce qu'il faut commencer le code avec le code avec Sub ?
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
En lançant la macro, Excel me demande de donner un nom à la macro. Dans la proposition que je vous avez faite, on ne lance pas la macro, Si vous l'avez bien placé dans le module de la feuille 1, celle-ci démarre seule dès que vous changez le contenu d'une cellule du tableau. Il n'y a aucune autre action à faire de votre côté.
je souhaiterais partir à partir de mon code. En effet je souhaiterais appliquer ma.méthode. . Si je n'ai pas suivi votre méthode, c'est que je n'est pas compris ce que vous vouliez faire réellement, vous parlez de cellules clignotantes, mais à aucun moment on ne décèle l'action de clignoter, vous ne faites que changer la couleur en vert si >12 sinon pas de couleur, et tout ça en balayant le tableau complet. Si cela doit clignoter pour chaque cellules, cela risquera de vous paraître un peu long, alors que dans le cas que je vous propose, seule la cellule modifiée sera testée et se mettra à clignoter et, en fonction de sa valeur, passera au vert ou pas.
Si vraiment ma proposition ne vous convient pas, reformulez votre demande avec plus de précisions, s'il vous plaît.
Cdlt
0