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

Excel Discussion :

Cellule clignotante Excel


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    août 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : août 2019
    Messages : 80
    Points : 29
    Points
    29
    Par défaut Cellule clignotante Excel
    Bonjour,
    ce sujet a été traité de nombreuses fois, et on peut trouver de nombreuses propositions de codes....
    Néanmoins, chaque cas est différent et avec ça, je n'y connais quasiment rien en langage VBA.

    Voila mon souhait:
    J'aimerais que quelqu'un me donne un code VBA pour obtenir ceci:

    J'aimerais faire clignoter la cellule "A1" : texte qui passe du noir au jaune par exemple (et conserver le fond existant)
    Ce clignotement se ferait au changement de valeur de la cellule "B2" et durant une période de 30 secondes...
    Au bout des 30 secondes, le texte revient à sa couleur initiale, soit "blanc".

    Est-ce faisable, je pense que oui... mais comme dit au début suis nul.

    J'ai créé mon module... ça, j'ai su le faire....

    D'avance merci, un grand merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    juillet 2016
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : juillet 2016
    Messages : 2 858
    Points : 4 964
    Points
    4 964
    Par défaut
    Bonjour,

    Essayez ceci, à coller dans le module de la feuille.
    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Target.Address = "$B$2" Then
            t = 0
            Do While t < 30
                If Range("A1").Font.Color = RGB(255, 255, 0) Then
                    Range("A1").Font.Color = RGB(0, 0, 0)
                    Application.Wait Now + TimeValue("00:00:01")
                Else
                    Range("A1").Font.Color = RGB(255, 255, 0)
                    Application.Wait Now + TimeValue("00:00:01")
                End If
                t = t + 1
            Loop
            Range("A1").Font.Color = RGB(255, 255, 255)
        End If
    End Sub
    Cdlt

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    août 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : août 2019
    Messages : 80
    Points : 29
    Points
    29
    Par défaut
    Merci beaucoup Arturo...
    ça fonctionne très bien... j'ai modifié les cellules à faire clignoter, c'est impeccable. (->ag23:ag24)
    Je peux modifier la durée aussi du clignotement...c'est parfait.

    Le seul bémol est que je dois entrer une valeur dans la cellule B1 pour que le curseur arrivant dans la $B$2 déclenche la macro...

    J'aurais souhaité que cette macro se déclenche lorsque la valeur d'une cellule précise change....
    Je rentre des résultats sur des lignes différentes et donc le total se met à jour automatiquement... c'est lorsque ce total change que la macro devrait se déclencher.

    Je ne sais pas si c'est faisable...

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    Salut.

    Attention que c'est au changement de valeurs qu'il faut que ça casse les pieds de l'utilisateur => gérer l'évènement Worksheet_Change et pas Worksheet_SelectionChange...

    Attention que le code donné va geler Excel pendant 30 secondes. Je ne suis pas certain que ce soit l'effet recherché parce que 30 secondes, c'est vachement long avant de pouvoir faire quelque chose dans la feuille (quand je pense que parfois certains ici s'arrachent à essayer de gagner une demi-seconde dans une proc ^^)

    @Arthuro: ta variable t n'est pas déclarée => plantage dans un module sans Option Excplicit... Tu n'as pas Option Explicit par défaut dans tes modules?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    Citation Envoyé par raivig Voir le message
    [...]
    Je rentre des résultats sur des lignes différentes et donc le total se met à jour automatiquement... c'est lorsque ce total change que la macro devrait se déclencher.

    Je ne sais pas si c'est faisable...
    J'ai posté ma réponse avant d'avoir vu la tienne... Il n'y a pas d'évènement sur le recalcul d'une cellule. Si B2 contient une formule, tu dois tester que ce sont les cellules antécédentes à la formule de B2 (Celles qui modifient le résultat de B2) qui doivent être modifiées... Si ta formule est "simple" ou que les zones entrant en jeu sont "simples" (colonnes de tableau structuré, par exemple), c'est encore +/- gérable... Heureusement, le pondeur d'usine à gaz qui t'aurait emmené dans ses délires est parti du forum...

    Est-ce vraiment utile, ce que tu essaies de mettre en place?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    août 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : août 2019
    Messages : 80
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut.


    Attention que le code donné va geler Excel pendant 30 secondes. Je ne suis pas certain que ce soit l'effet recherché parce que 30 secondes, c'est vachement long
    Justement, c'est pour cela que j'avais demandé à pouvoir changer la durée... 10 secondes c'est nettement mieux.
    En fait si le changement de valeur ne peut pas déclencher la macro...
    Sur une cellule voisine, peut t'on intervenir pour arrêter la macro...
    Exemple, si réglé sur 20 secondes, au bout d'un temps plus court je veux intervenir je clique sur la cellule et ça arrête... => B2: démarre, B3: arrêt (mais le démarrage auto serait nettement mieux)
    ....
    Tu demandes si ça sert... oui bien sûr que ça sert.
    C'est un tableau qui sera affiché sur une TV et les gens verront tout de suite que c'est leur tour lorsque ça clignote.
    En tout cas merci pour les aides et conseils (autant je me débrouille super bien en excel, autant je suis nul dans la partie VBA)

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    août 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : août 2019
    Messages : 80
    Points : 29
    Points
    29
    Par défaut
    Cher Arturo

    Citation Envoyé par raivig Voir le message
    Merci beaucoup Arturo...
    ça fonctionne très bien... j'ai modifié les cellules à faire clignoter, c'est impeccable. (->ag23:ag24)
    Je peux modifier la durée aussi du clignotement...c'est parfait.
    Le seul bémol est que je dois entrer une valeur dans la cellule B1 pour que le curseur arrivant dans la $B$2 déclenche la macro...
    J'aurais souhaité que cette macro se déclenche lorsque la valeur d'une cellule précise change....
    Je rentre des résultats sur des lignes différentes et donc le total se met à jour automatiquement... c'est lorsque ce total change que la macro devrait se déclencher.
    Je ne sais pas si c'est faisable...
    En fait après réflexion... le positionnement sur la cellule B2 qui déclenche la macro finalement c'est bien.
    Une commande d'arrêt de la macro serait excellent (en tout cas pour mon utilisation)
    Exemple B2 "start" et B3 "Stop"


    C'est faisable ??
    Merci d'avance

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    Voilà ce qui te permet de déclencher en B2 et d'arrêter en B3. Attention que Dim t As Long doit bien être déclaré en début du module de la feuille.

    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
    Dim t As Long
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Select Case UCase(Target.Address)
        Case "$B$2"
          t = 0
          Do While t < 30
            'DoEvents
            If Range("A1").Font.Color = RGB(255, 255, 0) Then
                Range("A1").Font.Color = RGB(0, 0, 0)
                Application.Wait Now + TimeValue("00:00:01")
                DoEvents
            Else
                Range("A1").Font.Color = RGB(255, 255, 0)
                Application.Wait Now + TimeValue("00:00:01")
                DoEvents
            End If
            t = t + 1
          Loop
          Range("A1").Font.Color = RGB(255, 255, 255)
        Case "$B$3"
          t = 30
          Range("A1").Font.Color = RGB(255, 255, 255)
      End Select
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    août 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : août 2019
    Messages : 80
    Points : 29
    Points
    29
    Par défaut
    Merci beaucoup Pierre....

    Je suis tellement fort en VBA que ta condition: Attention que Dim t As Long doit bien être déclaré en début du module de la feuille.
    c'est déjà compliqué pour moi...
    Je suppose que c'est la durée...?

    Je testerai demain matin car chez moi il est déjà très tard...
    Grand merci

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    Non, c'est la variable t utilisée par Arthuro qui va passer de 0 à 30 dans l'évènement du clic sur B2. Donc, dans le code que j'ai donné, le 30 de la ligne Do While t <30, 30 est la durée de clignotement souhaitée. La sélection de B2 va faire grimper t de 0 à 30 chaque seconde (c'est le Wait... qui détermine que la rapidité du clignotement). En cliquant sur B3, on force t à 30 et donc, la boucle s'arrête.

    En fait, pour pouvoir interrompre le clignotement, on doit ajouter DoEvents, ce que j'ai fait dans mon code => il y a donc deux évènements SelectionChange qui vont "jouer" en même temps, chacun avec leur propre jeu de variables (et donc deux t différents si on les laissait à l'intérieur de la procédure). C'est pourquoi on sort la variable t des évènements pour la rendre commune aux deux.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    août 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : août 2019
    Messages : 80
    Points : 29
    Points
    29
    Par défaut
    Merci Pierre et Arturo pour votre aide.
    mon idée a fini par se réaliser grâce à vous.
    ca marche comme souhaité !
    Cordialement

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    août 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : août 2019
    Messages : 80
    Points : 29
    Points
    29
    Par défaut
    Hum...
    je reviens à la charge...

    et sur le code de Pierre...

    Pour les besoins d'un de mes tableaux, les lignes étant serrées, j'ai fusionné deux cellules pour rendre la partie clignotante plus grande et donc plus visible.
    La cellule "A1" utilisée sur le code précédent est donc devenue "A1:A2"

    Lorsque je clique sur la cellule "$B$2" pour démarrer le clignotement ça marche sans problème sur A1:A2.
    Par contre la cellule "$B$3" qui devrait interrompre le clignotement... ne réagit plus... -> je n'arrive donc plus à arrêter le clignotement.
    J'ai essayé plusieurs essais, sans réussite.

    Merci une fois de plus pour ton aide

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    Salut.

    De mon côté, ça fonctionne
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    août 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : août 2019
    Messages : 80
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut.

    De mon côté, ça fonctionne
    bizarre
    bon.. vais essayer de trouver le problème

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    août 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : août 2019
    Messages : 80
    Points : 29
    Points
    29
    Par défaut
    Je reprends le code complet que tu m'avais transmis....
    J'ai mis à jour les positions des cellules start/end (Case "$B$2" - devenue Case "$AG$25")
    et aussi ma cellule à clignoter qui était A1, devenue : Range("AG20:AG23")

    La cellule AG25 qui démarre fonctionne
    La cellule AG26 qui stoppe ne fonctionne plus...

    Voici ton code adapté à mon tableau:

    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Select Case UCase(Target.Address)
        Case "$AG$25"
          t = 0
          Do While t < 15
            'DoEvents
            If Range("AG20:AG23").Font.Color = RGB(255, 255, 0) Then
                Range("AG20:AG23").Font.Color = RGB(0, 0, 0)
                Application.Wait Now + TimeValue("00:00:01")
                DoEvents
            Else
                Range("AG20:AG23").Font.Color = RGB(255, 255, 0)
                Application.Wait Now + TimeValue("00:00:01")
                DoEvents
            End If
            t = t + 1
          Loop
          Range("AG20:AG23").Font.Color = RGB(255, 255, 255)
        Case "$AG$26"
          t = 15
          Range("AG20:AG23").Font.Color = RGB(255, 255, 255)
      End Select
    End Sub
    Nom : Couper_15.jpg
Affichages : 39
Taille : 54,2 Ko

  16. #16
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    Ton code fonctionne toujours chez moi.

    Je pense à deux choses.

    1. As-tu Option Excplicit tout en haut du module?
    2. As-tu bien la ligne Dim t As Long juste en dessous de Option Explicit, AVANT le bloc Sub Worksheet_Change?


    Si non, ajoute les lignes => ça fonctionnera mieux.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    août 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : août 2019
    Messages : 80
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Ton code fonctionne toujours chez moi.

    Je pense à deux choses.

    1. As-tu Option Excplicit tout en haut du module?
    2. As-tu bien la ligne Dim t As Long juste en dessous de Option Explicit, AVANT le bloc Sub Worksheet_Change?


    Si non, ajoute les lignes => ça fonctionnera mieux.
    Suis-je bête.... la ligne Dim t As Long avait disparu.
    Je viens de la remettre et ça marche !!!!
    J'étais sûr d'avoir fait une bêtise !!!
    Merci Pierre



    Nom : Couper_16.jpg
Affichages : 38
Taille : 102,4 Ko

  18. #18
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    Si tu avais eu Option Explicit en haut de module, tu aurais été bloqué à l'exécution car t était inconnu => Ce billet de blog t'explique pourquoi Option Explicit est, pour moi, obligatoire
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    août 2019
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : août 2019
    Messages : 80
    Points : 29
    Points
    29
    Par défaut
    Si je peux encore me permettre une dernière chose et ce serait pour moi la cerise sur la gâteau....

    Pendant que mes cellules clignotent (AG20:AG23)
    Puis-je ajouter un message clignotant ou non (peu importe) dans "AG24"
    du style "Suivant"

    Lorsque le clignotement cesse (ou si j'appuie sur stop) ce message disparaitrait...
    D'avance, merci

  20. #20
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    17 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 379
    Points : 50 208
    Points
    50 208
    Billets dans le blog
    92
    Par défaut
    Il suffit d'ajouter la modification de la fonte de la ligne 24

    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
    Option Explicit
     
    Dim t As Long
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Select Case Target.Address
        Case "$AG$25"
          t = 0
          Do While t < 15
            If Range("AG20:AG23").Font.Color = RGB(255, 255, 0) Then
                Range("AG20:AG23").Font.Color = RGB(0, 0, 0)
                Range("aG24").Font.Color = RGB(0, 0, 0)
                Application.Wait Now + TimeValue("00:00:01")
                DoEvents
            Else
                Range("AG20:AG23").Font.Color = RGB(255, 255, 0)
                Range("AG24").Font.Color = RGB(255, 255, 0)
                Application.Wait Now + TimeValue("00:00:01")
                DoEvents
            End If
            t = t + 1
          Loop
        Case "$AG$26"
          t = 15
          Range("AG20:AG23").Font.Color = RGB(255, 255, 255)
          Range("AG24").Font.Color = RGB(255, 255, 255)
      End Select
    End Sub
    Si on devait en ajouter, je préfèrerais sortir le code de l'évènement et travailler avec une boucle. Pour moi, on ne devrait jamais avoir du code exécutif dans le code évènementiel...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [POI] Style et taille de cellule pour Excel
    Par relivio dans le forum Documents
    Réponses: 6
    Dernier message: 28/05/2014, 10h45
  2. tester cellule vide excel
    Par maxos75 dans le forum ASP
    Réponses: 1
    Dernier message: 14/09/2005, 17h02
  3. Modifier Font d'une cellule dans Excel
    Par nmathon dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 27/05/2005, 14h42
  4. Comment créer un commentaire dans une cellule d'Excel ?
    Par WebPac dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 26/04/2005, 09h23
  5. [VBA] Les propriétés de cellule dans Excel
    Par Kylen dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 05/07/2004, 23h02

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