n'étant pas un pro de la programmation VBA, je vous soumet un petit problème rencontré :
dans le fichier joint, j'ai un tableau rempli de la sorte :
date de début date de fin 01/08/2015 / 02/08/2015 / 03/08/2015 / 04/08/2015 / 05/08/2015
cours 1 01/08/215 05/08/2015
cours 2 06/08/2015 08/08/2015
cours 3 02/08/2015 07/08/2015
je souhaiterai que par un clic sur l'objet bleu, le lineaire se remplisse en couleur de facon automatique en fonction de la date de
début de la colonne B et de la date de fin de la colonne B,et ce pour toute les lignes du tableau ....
si quelqu'un à une solution simple je suis preneur,
Re : remplir une ligne en couleur, selon date de début et de fin.
Re bonjour,
car ce bout de code peut aussi me servir à d'autre applications mise en place, pour comparer des données en colonne et en ligne, merci encore de ta réponse.
de plus, cela va me servir à remplir un agenda a partir d'un userform ou les dates de debut et de fion seront positionnées dans des textbox d'un userform.
Re : remplir une ligne en couleur, selon date de début et de fin.
Re,
l'équivalent VBA
Code:
Sub Test()
Dim FC As FormatCondition
Set FC = ActiveSheet.Range("D2:L4").FormatConditions.Add(Type:=xlExpression, Formula1:= _
"=ET(D$1>=$B2;D$1<=$C2)")
With FC.Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.399945066682943
End With
FC.StopIfTrue = True
Set FC = Nothing
End Sub
Re : remplir une ligne en couleur, selon date de début et de fin.
merci encore tototiti de tes reponses, mais je ne souhaite pas faire un format mise en forme conditionnel,
Ce que je recherche est vraiment le code VBA qui me permetterai de comparer les valeur, ou les texte entre les ligne et les colonnes,
Re : remplir une ligne en couleur, selon date de début et de fin.
salut
si... tu y tiens, essaie (dans la page de code de la feuille concernée)
VB:
Sub mfc()
Dim C As Range, b As Byte
For Each C In [D2:L4]
b = Cells(1, C.Column) >= Cells(C.Row, 2) And Cells(1, C.Column) <= Cells(C.Row, 3)
C.Interior.ColorIndex = IIf(b, 15, xlNone) '15 ou autre
Next
End Sub
ou, à peine plus court
VB:
Sub mfc()
Dim C As Range, b As Byte
For Each C In [D2:L4]
b = Cells(1, C.Column) < Cells(C.Row, 2) Or Cells(1, C.Column) > Cells(C.Row, 3)
C.Interior.ColorIndex = IIf(b, xlNone, 15)
Next
End Sub