Microsoft 365 Macro pour changer la couleur d'une cellule si...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Toubabou

XLDnaute Impliqué
Bonsoir à tous,
Ma cellule B4...., est vide et de couleur bleu. Si je rempli cette cellule, je voudrai supprimer cette couleur, sans passer par la "MISE EN FORME CONDITIONNEL" (ce serait trop long).
Je recherche donc une macro pouvant modifier plusieurs cellules voir une série de cellule.

Merci beaucoup
 

Pièces jointes

Solution
Bonsoir Toubabou, TooFatBoy, sylvanu,

Mettez une macro de ce genre dans chaque feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
With [B4:E4,C6:E6,F5:I7,C18:E20,G18:I20,C24:E26,G24:I26,C30:E32,G30:I32,C36:E38,G36:I38,C42:E44,G42:I44,C48:E50,G48:I50,C54:E56,G54:I56]
    If Intersect(Target, .Cells) Is Nothing Then Exit Sub
    For Each Target In Target
        If IsEmpty(Target) Then Target.Interior.Color = RGB(220, 230, 241) Else Target.Interior.ColorIndex = xlNone
    Next
End With
End Sub
Modifiez le contenu d'une ou plusieurs cellules colorées en bleu.

S'il y a beaucoup de cellules colorées il faudra faire l'union de plusieurs plages car le texte de chaque Range est limité à 255 caractères.

A+
Très bien mais il serait bien de nous dire quelle solution vous allez finalement utiliser.
Dans un premier temps j’ai essayé la proposition de :
  • Sylvanu, qui à répondu à mes attentes.
  • Ensuite celle de Job75 qui fonctionne très bien également
  • Celle de TooFatBoy n’a pas voulu fonctionner, compte tenu du fait que, effectivement cela concerne toutes les cellules en bleu du fichier.
  • La solution de Job75 consistant de construire une MFC est pour moi la meilleure, car elle permet de re colorer la cellule si l’on efface la saisie Parfait.
  • Par contre je n’ai pas compris comment utiliser la Macro de Job75:
  • VB:
    Sub PlageMFC()
    Dim c As Range, P As Range
    For Each c In ActiveSheet.UsedRange
        If c.Interior.Color = RGB(220, 230, 241) Then Set P = Union(IIf(P Is Nothing, c, P), c) 'à partir des cellules colorées en bleu
    Next
    If P Is Nothing Then Exit Sub
    P.Name = "Plage" 'plage nommée
    P.Interior.ColorIndex = xlNone 'efface la couleur de fond
    End Sub
 
  • Par contre je n’ai pas compris comment utiliser la Macro de Job75:
  • VB:
    Sub PlageMFC()
    Dim c As Range, P As Range
    For Each c In ActiveSheet.UsedRange
        If c.Interior.Color = RGB(220, 230, 241) Then Set P = Union(IIf(P Is Nothing, c, P), c) 'à partir des cellules colorées en bleu
    Next
    If P Is Nothing Then Exit Sub
    P.Name = "Plage" 'plage nommée
    P.Interior.ColorIndex = xlNone 'efface la couleur de fond
    End Sub
La feuille à traiter est la feuille active, elle doit avoir des cellules colorées en bleu.

Vous collez la macro où vous voulez, dans le code de cette feuille ou dans un module standard.

Puis vous l'exécutez (touches Alt+F8).

Ensuite touche F5 => sélectionnez "Plage" => OK pour sélectionner la plage et créer la MFC.
 
La feuille à traiter est la feuille active, elle doit avoir des cellules colorées en bleu.

Vous collez la macro où vous voulez, dans le code de cette feuille ou dans un module standard.

Puis vous l'exécutez (touches Alt+F8).

Ensuite touche F5 => sélectionnez "Plage" => OK pour sélectionner la plage et créer la MFC.
Petit soucis, lorsque je fais F5, je ne trouve pas "Plage"

2.png
 
Celle de TooFatBoy n’a pas voulu fonctionner, compte tenu du fait que, effectivement cela concerne toutes les cellules en bleu du fichier.
T'as rien perdu : c'était la même chose que le camarade sylvanu, à ceci près que je ne faisais la mise en couleur que pour la cellule B4, alors que lui le fait pour n'importe quelle cellule modifiée (et qu'il met un fond blanc alors que je supprime le fond).
 
J'ai bien dit que la macro du post #14 doit être exécutée avant toute chose c'est à dire sur le fichier du post #1 avant toute modification.

Bien comprendre que si on crée d'abord la MFC la couleur de fond bleu est effacée et alors le nom "Plage" ne peut pas être créé.
Alors lorsque je transpose vos informations dans mon fichier, je dois rater quelques choses pour que cela ne fonctionne pas
 

Pièces jointes

  • 8.xlsx
    8.xlsx
    20.9 KB · Affichages: 3
Je ne sais pas où vous en être avec Job75 (vous avez l'air partis sur l'idée que je proposais au départ, à savoir reconstruire par macro la MFC de la feuille, ce que je serais bien incapable de mettre en œuvre), mais attention dans la macro de #5, la logique de comparaison entre Target et les cellules potentiellement coloriables est fausse. 🙁
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
586
Réponses
3
Affichages
747
Retour