XL 2016 Colorer cellules sans MFC

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

  • 00 - arthour973 - Fond et police.xlsm
    35.8 KB · Affichages: 12

Staple1600

XLDnaute Barbatruc
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:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour JM,

Merci d'être encore là,

Tu as raison, pas trop réveillé et tout semble monstrueux.
Merci pour ton code qui est certainement mieux que le mien (je viens aussi de trouver) LOL
Je teste et je te dis :)
lionel,
 

Pièces jointes

  • 00 - arthour973 - Fond et police.xlsm
    36.4 KB · Affichages: 4

Staple1600

XLDnaute Barbatruc
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 ;)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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

  • 00 - arthour973 - Fond et police.xlsm
    36.4 KB · Affichages: 3

Staple1600

XLDnaute Barbatruc
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...;)
 

job75

XLDnaute Barbatruc
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

  • 00 - arthour973 - Fond et police(1).xlsm
    32.7 KB · Affichages: 4

job75

XLDnaute Barbatruc
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

  • 00 - arthour973 - Fond et police(2).xlsm
    34.1 KB · Affichages: 9

Discussions similaires

Réponses
4
Affichages
186

Statistiques des forums

Discussions
311 729
Messages
2 081 966
Membres
101 852
dernier inscrit
dthi16088