Coloriser un bouton si une cellule est complétée

Bonjour à tous,

Je suis une nouvelle utilisatrice d'Excel. J'ai la version 2016 et je souhaite avoir votre aide afin de coloriser un bouton.

Ma demande est la suivante :

J'ai crée une feuille avec 2 onglets : dans le 1er onglet j'ai intégré deux boutons en bleu intitulés "Tableau 1 et Tableau 2". Ces 2 boutons renvoient sur le 2ème onglet sur les tableaux 1 et 2 (liens hypertexte).

Je souhaite savoir s'il existe un moyen de coloriser les boutons repris dans le 1er onglet quand les tableaux repris dans le 2ème onglet sont complétés avec des chiffres ?

Je pense qu'une macro est la meilleure option mais je suis trop novice pour les écrire. J'ai cherché dans le forum et je n'ai pas trouvé de macro pouvant correspondre.

Pouvez-vous m'aider, svp?

Je joins un exemple à mon message.....

merci par avance pour votre aide

19exemple.xlsx (10.51 Ko)

Bonjour,

Il faudrait préciser les conditions recouvertes par "complétées avec des chiffres" : y met-on uniquement des chiffres ou aussi des lettres ? S'agit-il de nombres ? (chiffre désigne le symbole typographique...) Renvient-on en arrière dans la coloration ? etc.

Cordialement.

Bonjour MFerrand,

merci pour cette réponse hyper rapide.

Pour compléter mon message, les tableaux seront remplis uniquement avec des nombres. Je ne sais pas si la précision a son importance mais ces nombres pourront avoir un format différent (que je vais intégrer avec "format de cellule").

Par exemple : format Nombre ou format Monétaire ou format Pourcentage

Si on peut revenir en arrière quand les cellules des tableaux sont vides, ce serait génial !!!

On aurait :

Tableau 1 avec toutes les cellules vides ==>alors couleur bouton "Tableau 1" en bleu

Tableau 1 avec au moins une cellule complétée avec un nombre ==> alors couleur bouton "Tableau 1" en vert

Tableau 2 avec toutes les cellules vides ==>alors couleur bouton "Tableau 2" en bleu

Tableau 2 avec au moins une cellule complétée avec un nombre ==> alors couleur bouton "Tableau 2" en vert

Bonne journée

Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim clr, c As Range, cl%
    clr = Array(RGB(91, 155, 213), RGB(112, 173, 71), RGB(128, 128, 128))
    If Not Intersect(Target, [Tblo1]) Is Nothing Then
        For Each c In [Tblo1]
            If IsEmpty(c) Then
            ElseIf IsNumeric(c.Value) Then
                cl = 1
            Else
                cl = 2: Exit For
            End If
        Next c
        Worksheets("Feuil1").Shapes("Tablo1").Fill.ForeColor.RGB = clr(cl)
    End If
    cl = 0
    If Not Intersect(Target, [Tblo2]) Is Nothing Then
        For Each c In [Tblo2]
            If IsEmpty(c) Then
            ElseIf IsNumeric(c.Value) Then
                cl = 1
            Else
                cl = 2: Exit For
            End If
        Next c
        Worksheets("Feuil1").Shapes("Tablo2").Fill.ForeColor.RGB = clr(cl)
    End If
End Sub

Procédure à placer dans le module de Feuil2.

Les plages-Tableaux sont nommées : Tblo1 et Tblo2.

Les boutons sont renommés : Tablo1 et Tablo2.

La procédure se déclenche automatiquement à tout changement dans Feuil2 : on teste tour à tour si la modification affecte Tblo1 et/ou Tblo2. [Dans la mesure où on ne verrouille les possibilités d'affecter plus d'une cellule, les deux tableaux pourraient être affectés par une même modification...]

Le contenu de toutes les cellules du tableau est testé s'il est affecté : si toutes sont vides, couleur du bouton correspondant au tableau à bleu, sinon si toutes les cellules non vides contiennent une valeur numérique, couleur du bouton à vert, sinon (si une cellule n'est pas vide et contient autre chose qu'un nombre, couleur du bouton à gris.

Cordialement.

Bonjour,

Merci, merci, merci.... je croyais qu'il n'était pas possible de créer une macro qui réponde à ma demande..... et tu l'as fait

En plus avec les explications qui vont bien sur le fonctionnement de la macro et un fichier prêt à l'emploi

Un grand grand MERCI pour ton aide....

A bientôt

Rechercher des sujets similaires à "coloriser bouton completee"