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 :

Cellule clignotante et A condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Par défaut Cellule clignotante et A condition
    Bonsoir,

    voici un code que j'ai récupéré : pour faire clignoter une cellule (et oui! c'est censé être possible!) mais qui doit être enclencher si une condition est remplie :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    'un événement : si la valeur de l'une des cellules A1 ou C1 change :
    Private Sub Worksheet_Change (ByVal Target As Range)
    If Not Intersect (Target, Range("A1, C1") Is Nothing Then
     
    'alors un message avertit la personne : 
    strMyVar=MsgBox("Modifier la quantité", vbExclamation, "Quantité")
     
     
    'et la cellule clignote jusqu'à ce que la cellule soit modifié : 
    'mais avant il faut modifier le style de la cellule concernée et mettre la bordure en rouge dans format de la cellule : 
     
    'FAUT-IL METTRE "AND" entre la ligne de code du MsgBox et la ligne qui suit ?
    Dim NextTime As Date
    Sub StartFlash()_Activate 'j'ai rajouté le Activate : mais est-ce la bonne fonction pour lancer le startflash ?
             NextTime = Now + TimeValue("00:00:01")
             With ActiveWorkbook Styles ("Flashing").Font
                       if .ColorIndex = xlAutomatic Then .ColorIndex = 3
                       ColorIndex = 5 - .ColorIndex
             End With
             Application.OnTime NextTime, "StartFlash"
    End Sub
     
    'Pour que le clignotement se ferme : mais apparemment cette partie ne marche pas : 
    Sub StartFlash()
              Application.OnTime NextTime, "StartFlash", schedule:=False
              ActiveWorkbook.Styles("Flashing").Font.ColorIndex = xlAutomatic
    End Sub
    Que pensez-vous du code ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2008
    Messages : 226
    Par défaut
    Salut Logiclogic,

    Ben à vrai dire, pas très logique ce code

    Mais au fait, quelle est la condition à remplir pour que la ou les cellules A1 et C1 clignotent ?

    À te relire, Antoniom.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Par défaut
    Mais au fait, quelle est la condition à remplir pour que la ou les cellules A1 et C1 clignotent ?
    Le fait que A1 et C1 soit modifiés, ce qui normalement est vérifié par le code suivant (sauf erreur de ma part, car je suis encore débutant mais déjà passionné... et j'espère un jour pouvoir aussi apporter ma contribution)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub Worksheet_Change (ByVal Target As Range)
    If Not Intersect (Target, Range("A1, C1") Is Nothing Then
    Voilà... le code est-il à jeter ou pouvez-vous le corriger ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonsoir

    j'ai retrouvé la source du code que tu as utilisé et comme je m'en doutais tu n'as pas bien lu ce qui était écris

    Dans la feuille excel
    1. Selection des cellules A1 et C1 à faire clognoter
    2. Choisir Style dans le menu Format.
    3. Dans la boîte de dialogue de Style, entrer un nouveau nom de style, comme 'Flashing'.
    4. Cliquer sur OK.

    en suite dans un module (et pas dans le code de feuille) entrer ce code
    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
    Dim NextTime As Date
     
    Sub StartFlash()
        NextTime = Now + TimeValue("00:00:01")
        With ActiveWorkbook.Styles("Flashing").Font
            If .ColorIndex = xlAutomatic Then .ColorIndex = 3
            .ColorIndex = 5 - .ColorIndex
        End With
        Application.OnTime NextTime, "StartFlash"
    End Sub
     
    Sub StopFlash()
        Application.OnTime NextTime, "StartFlash", schedule:=False
        ActiveWorkbook.Styles("Flashing").Font.ColorIndex = xlAutomatic
    End Sub
    je l'ai testé et il fonctionne bien

    ensuite viens le plus compliqué, ce que tu veux en faire

    Tu réponds
    Mais au fait, quelle est la condition à remplir pour que la ou les cellules A1 et C1 clignotent ?
    Le fait que A1 et C1 soit modifiés, ce qui normalement est vérifié par le code suivant (sauf erreur de ma part, car je suis encore débutant mais déjà passionné... et j'espère un jour pouvoir aussi apporter ma contribution)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Private Sub Worksheet_Change (ByVal Target As Range)
       If Not Intersect (Target, Range("A1, C1") Is Nothing Then
    Effectivement ce bout de code peut être utilisé pour pour vérifier que A1 ou C1 a été modifié mais si j'ai bien compris ce que tu as dis au départ, tu veux faire clignoter une cellule pour signaler à une personne qu'il faut la modifier

    Est ce que le but de ce bout de code est de vérifier le contenu de la cellule et si le contenu n'est pas bon alors faire clignoter pour lui dire de recommencer la saisie?

    dit nous ce que tu veux faire exactement sinon on ne pourra pas t'aider.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 306
    Par défaut
    Bonjour,

    En effet, il s'agit de clignoter si A1 et C1 est modifié, et alors la cellule
    A3 et C3 clignotent tant que leur valeur n'est pas modifié.

    + je n'arrive pas à faire clignoter la cellule... je fais la mise en forme, le code est dans le module mais à lancer le code, ça ne clignote pas.

    Pourquoi ?merci,

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    si tu veux que ce soit les cellules A3 et C3 qui clignotent c'est sur elles qu'il faut appliquer le style 'Flashing'

    Je ne sais pas quel code tu as mis dans le code de la feuille mais essaye celui-la

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Intersect(Target, Range("A1, C1")) Is Nothing Then
        StartFlash
      End If
     
      If Not Intersect(Target, Range("A3, C3")) Is Nothing Then
        StopFlash
      End If
    End Sub
    Attention si les cellules A3 et C3 sont vides tu ne verras rien clignoter car c'est la couleur des caractères qui clignotte, sinon tu peux le modifier our changer le fond de la cellule.

Discussions similaires

  1. [XL-2007] Recuperation de données de cellule vers textbox selon condition
    Par dodo28 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/08/2009, 15h45
  2. Cellule en couleur sous condition
    Par devdev dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/03/2009, 09h35
  3. Colorier cellule de gatagrid sous condition
    Par skunkies dans le forum Windows Forms
    Réponses: 10
    Dernier message: 25/11/2008, 16h09
  4. selectionner les cellules qui répondent à ma condition
    Par Yoooo dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/10/2008, 14h16
  5. Remplir une cellule Excel avec une condition sous vb
    Par enibris dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/01/2008, 13h47

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