Colorer des cellules vides placées entre 2 cellules d'une même couleur

Bonjour à tous,

Je souhaiterai savoir s'il était possible de colorer automatiquement des cellules vierges si ces dernières sont comprises entre deux cellules d'une même couleur

Dans mon fichier, j'ai une formule qui me permet de définir la date de début et de fin d'une période et de la reporter dans un calendrier.

1 ==> Début Replay ==> Rouge via une MFC sur 1

2 ==> Fin Replay ==> Rouge via une MFC sur 2

3 ==> Début préview ==> Jaune via une MFC sur 3

4 ==> Fin préview ==> Jaune via une MFC sur 4

D ==> Diffusion ==> Bleu via une MFC sur D

(D'ailleurs est il possible de "masquer" les valeurs 1/2/3/4 pour ne laisser apparaître que les couleurs?) (cf fichier joint)

Lorsque cette période fait plus de deux jours, j'ai donc une cellule colorée en début de période et une cellule colorée en fin de période, le restant des cellules sont vierges.

Je souhaiterai que ces cellules vierges prennent la couleur des cellules de début et de fin

Exemple :

J'ai un début de replay le 16/01/2019 et une fin le 20/01/2019

Ma cellule du 16/01/2019 est rouge comme celle du 20/01/2019, les cellules du 17/18 et 19 doivent également se colorer

Pour info, il ne peut pas y avoir d'absence de date et donc s'il y a un début il y a forcément une fin et vice versa

Le fichier en pièce jointe vous permettra d'y voir plus clair, la plage concernée est de BQ à CC

En vous remerciant par avance

N'hésitez pas si vous avez besoin de plus d'information

14fichier-asx-v3.xlsx (96.07 Ko)

Salut Alex,

pour ta question subsidiaire, afin de masquer les valeurs, il te suffit, dans ta règle de MFC, de configurer une couleur identique pour la POLICE et le REMPLISSAGE.

Pour la question principale, je ne pourrais dire si une MFC est capable de calculer ça : pas spécialiste! Avec des DECALER, peut-être ?... Aucune vraie idée! Déso!

Par contre, en VBA...

Précision : tes dates de début et fin ne sont manifestement encodées que en [BI:BJ], comme je vois l'affaire, ce qui revient à dire que tes couleurs se "font" et "défont" de semaine en semaine pour suivre l'actualité des semaines éditoriales.

Bonne interprétation?

A+

Hello,

merci pour l'astuce de la police c'est simple et je n'y avais pas pensé

Pour ce qui est des dates, elles sont conditionnées par la date de diffusion. Si cette dernière bouge, la formule et la MFC s'ajusteront dans le calendrier et le reste suivra

Si tu as une idée de code VBA je suis preneur car je ne maitrise pas trop ce point

Merci pour les conseils en tout cas

Salut Alex,

...quelques trucs que je ne pige pas trop mais bon...

Tu peux normalement supprimer les MFC "rouge".

Pourquoi en lignes 16 à 18 en [BJ] :

=SI(B18="OUI";Q18+AF18;"")

, mais après la ligne 18 :

=SI(B19="OUI";ENT(Q19+1+AF19);"")

??

Ça change tout, évidemment!

Bon, à tester, après avoir collé le code dans le module VBA de 'Feuil1'.

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Union(Range("B:B"), Range("Q:Q"), Range("AF:AF"))) Is Nothing Then
    iRow = Target.Row
    With Cells(iRow, 69).Resize(1, Cells(10, Columns.Count).End(xlToLeft).Column)
        .Interior.Color = xlNone
        .Font.ColorIndex = 1
    End With
    If Range("B" & iRow) = "OUI" And Range("BI" & iRow) <> "" Then
        With Cells(iRow, (69 - Day(CDate(Range("BQ10").Value))) + DateDiff("d", "31/12/2018", CDate(Range("BI" & iRow)))).Resize(1, Range("AF" & iRow).Value)
            .Interior.ColorIndex = 3
            .Font.ColorIndex = 3
        End With
    End If
End If
'
End Sub

A voir...

A+

Bonjour curulis57 et merci de ta réponse

Effectivement c'est la formule =SI(B19="OUI";ENT(Q19+1+AF19);"") qui est la bonne, l'autre formule est un oubli de ma part.... merci de la remarque

Pour la macro, je l'ai copié dans le module VBA de 'Feuil1'. mail il doit me manquer une étape car je n'ai rien qui se produit

surement le nom ou un truc du genre mais je suis léger niveau VBA

macro asx

Merci pour ton aide en tout cas

Salut Alex,

Code à coller tel quel dans le module VBA de 'Feuil1'... si c'est bien le nom de la feuille concernée, bien sûr!

Si tu as perdu le fil :

  • ALT F11 pour entrer dans VBA ;
  • à gauche, dans l'explorateur de projet, double-cliquer sur 'Feuil1' ;
  • la fenêtre de codage s'ouvre à droite ;
  • tu y colles (CTRL C) le code : !!! Si une Private Sub Worksheet_Change s'y trouve déjà, il faut d'abord effacer le "vieux" code !!!
Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Range("B:B")) Is Nothing Then
    iRow = Target.Row
    With Cells(iRow, 69).Resize(1, Cells(10, Columns.Count).End(xlToLeft).Column)
        .Interior.Color = xlNone
        .Font.ColorIndex = 1
    End With
    If Range("B" & iRow) = "OUI" And Range("BI" & iRow) <> "" Then
        With Cells(iRow, (69 - Day(CDate(Range("BQ10").Value))) + DateDiff("d", "31/12/2018", CDate(Range("BI" & iRow)))) _
            .Resize(1, DateDiff("d", CDate(Range("BI" & iRow)), CDate(Range("BJ" & iRow)) + 1))
            .Interior.ColorIndex = 3
            .Font.ColorIndex = 3
        End With
    End If
End If
'
End Sub

Pour "voir" quelque chose, il faut naturellement que tu positionnes une cellule ou l'autre sur "OUI" en colonne ['B] !!

Mieux comme ça ?

A+

6asx-v3.xlsm (138.81 Ko)

Bonjour,

Oui ca marche très bien, un grand merci

J'ai juste une dernière question,

Si je veux faire la même chose pour le PREVIEW est ce que je peux le faire dans le même code?

Je pensais faire quelque chose du genre

2019 11 13 11 55 41 window

Mais ca ne marche pas

Est ce que tu aurais une petite idée?

L'idée est de faire le même fonctionnement mais avant la diffusion

Un grand merci en tout cas

Bonne journée

Rechercher des sujets similaires à "colorer vides placees entre meme couleur"