Maco mise en forme ligne de couleur pour date <= à J+15
cs_zozo33
Messages postés2Date d'inscriptionjeudi 1 février 2007StatutMembreDernière intervention10 mars 2012
-
10 mars 2012 à 10:08
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024
-
10 mars 2012 à 17:48
Bonjour à tous.
J'ai développé une macro permettant de colorer les lignes d'un tableau en fonction de dates et des conditions de remplissage.
Cependant, je butte sur une condition de couleur (ici, orange) pour l'affichage de lignes correspondant à une date comprise entre aujourd'hui exclu et aujourd'hui plus 15 jours inclus.
Voilà la macro correspondante :
End With
Else
If Sheets("derogations").Range("j" & i) - 1 >= mydate + 14 Then
Sheets("derogations").Range("b" & i, "m" & i).Select
With Selection.Interior
.ColorIndex = 45
.Pattern = xlSolid
End With
Else
If Sheets("derogations").Range("j" & i) - 1 < mydate Then
Sheets("derogations").Range("b" & i, "m" & i).Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
Dans ce cas là, elle colore les lignes remplissant la condition de remplissage pour des dates supérieures ou égales à J+15, or si je fais le contraire, elle rentre en conflit avec la suivante (en rouge) qui signale une date dépassée suivant la condition de remplissage, c'est à dire que toutes le dates inférieures à J+15 sont en orange.
Pouvez-vous me donner un coup de pouce (ja sais que c'est pas grand chose qui me bloque)
Merci
A voir également:
Maco mise en forme ligne de couleur pour date <= à J+15
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024159 10 mars 2012 à 13:25
Bonjour,
Je vois mal le problème. Le code semble cohérent, mais j'ai sans doute raté quelque chose.
As-tu un exemple plus visuel ?
Sinon, à la place de faire tout le temps Sheets("derogations"), utilises plutot une variable :
Dim MaFeuille as WorkSheet
Set MaFeuille=Sheets("derogations")
Puis :
If MaFeuille.Range("j" & i) - 1 < mydate Then
Auand tu n'accèdes qu'à une seule cellule, utilises de préférence Cells à la place de Range, cela rendre le code plus performant.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site
cs_zozo33
Messages postés2Date d'inscriptionjeudi 1 février 2007StatutMembreDernière intervention10 mars 2012 10 mars 2012 à 14:07
Le code fonctionne bien.
Je te joint l'excel tu verras que, au milieu tu as une zone rouge (dates dépassées) une blanche, et une orange. Cette zone orange doit être à la place de blanche, et c'est le code correspondant à la mise en forme orange qui doit être modifiée (soit l'avant dernière partie de la macro).
En outre, tel que le fichier est envoyé, cela correspond à aux dates supérieures ou égales à aujourd'hui + 15 jours.
Je voudrais modifier la macro pour que cela soit les dates comprise entre aujourd'hui (exclus) et aujourd'hui + 15 inclus.
NHenry
Messages postés15102Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mars 2024159 10 mars 2012 à 17:48
Bonjour,
As-tu essayé en pas à pas pour voir comment réagis ton code ainsi que les valeurs lues ?
As-tu regardé les opérateurs logiques ?
AND OR
If Cond1 AND Cond2 OR Cond3 Then
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site