XL 2016 Colorer cellules sans MFC

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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

En 2017 DoubleZero avait répondu à ma demande en permettant de colorer des cellules sans passer par les MFC.
cf fil : https://www.excel-downloads.com/threads/resolu-par-doublezero-mcf-qui-multiplie-les-mcf.20017209/

Le code permet (feuille Couleur) de colorer toute cellule de la feuille > texte saisi correspondant à un texte de la colonne A.

Mon besoin ayant changé, j'ouvre aujourd'hui ce nouveau fil.

Comme indiqué dans la feuille demande, je souhaite pouvoir :
- Si saisie en colonne B les cellules sont colorées de B à O
- Si saisie en colonne P les cellules sont colorées de Q à R


Malgré mes recherches, tests et essais, je n'ai pas trouvé comment coder.
je joins le classeur test.

Auriez-vous la solutions ?
Avec mes remerciements, je vous souhaite à toutes et à tous un très beau dimanche,
Amicalement,
lionel,
 

Pièces jointes

Bonjour le fil, arthour973

arthour973
[taquinerie du dimanche matin]
Il ne faut pas pourtant chercher longtemps (surtout quand on est Barbatruc de son état)
[/taquinerie du dimanche matin]
Alors pour répondre littéralement à la demande rédigée en vert dans le message#1
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
Select Case R.Column
Case 2
R.Resize(, 14).Interior.Color = RGB(227, 165, 99)
Case 16
R.Offset(, 1).Resize(, 2).Interior.Color = RGB(138, 220, 57)
End Select
End Sub

EDITION: Bonjour job75
 
Dernière édition:
Re

arthour973
Rien ne me semble monstreux, je voulais juste dire qu'après plus de 10 000 messages sur XLD, tu devrais être en mesure de produire ce genre de code, non ?

PS: Je plains les utilisateurs finaux de ton classeur
(à moins que tu aies un beau-frère ophtalmologiste, qui expliquerait cette débauche de couleurs 😉)
Bah, oui, quand ils auront les yeux qui pleurent, tu les enverras en consultation chez lui 😉
 
Re- JM,

Un grand merci mais comme dit Gérard, ma demande (issue d'un cerveau embrumé) n'est peut-être pas clair.

Bonjour Gérard,
Merci d'être là toi aussi 🙂

Je tente d'expliquer :

Le but de la manœuvre est d'éviter d'utiliser les MFC
Dans la feuille "couleur", en col A; on colore des cellules et on écrit des textes dans ces cellules
Le but est de colorer à l'identique de la cellule correspondante col A toute cellule de la feuille qui contient le même texte.

Je voudrais modifier le code comme indiqué dans la feuille demande, je souhaite pouvoir :
- Si saisie en colonne B les cellules sont colorées de B à O
- Si saisie en colonne P les cellules sont colorées de Q à R

LOL pas sur d'être plus clair

J'ai trouvé la solution (classeur joint) mais on peut certainement mieux coder.

Un grand merci à vous 🙂
lionel,
 

Pièces jointes

Re,

arthour973
???
@ JM : la plage de couleurs ne sera pas visible 🙂
Dans ce cas, pourquoi appliquer des couleurs (si aucun oeil humain ne les voit) ?

Message#1
Malgré mes recherches, tests et essais, je n'ai pas trouvé comment coder.
Message#6
J'ai trouvé la solution (classeur joint) mais on peut certainement mieux coder.

Comme quoi, il fallait chercher un chouia, plus...😉
 
Placer dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Range(Range("B6"), Range("B6").End(xlDown))
    .AutoFill .Resize(, 14), xlFillFormats
End With
With Range(Range("P6"), Range("P6").End(xlDown))
    .AutoFill .Resize(, 3), xlFillFormats
End With
Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheet_Change Target
End Sub
 

Pièces jointes

S'il y a des formats particuliers, par exemple en colonne E de ce fichier (2), il suffit de le préciser :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Range(Range("B6"), Range("B6").End(xlDown))
    .AutoFill .Resize(, 14), xlFillFormats
    With .Columns(4) 'colonne E
        .NumberFormat = "dd/mm/yyyy"
        .HorizontalAlignment = xlCenter
    End With
End With
With Range(Range("P6"), Range("P6").End(xlDown))
    .AutoFill .Resize(, 3), xlFillFormats
End With
Application.EnableEvents = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheet_Change Target
End Sub
 

Pièces jointes

- 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
100
Affichages
10 K
Retour