Bonjour à tous,
Je suis étudiant en master 1 de gestion de production et je suis actuellement en stage.
Je travaille sur un planning développé sur Excel et j'ai besoin d'ajouter une mise en forme condionnelle à chaque fois que je rajoute une ligne dans Excel.
Je m'explique:
Mon classeur excel est constitué en haut sur la ligne 15 de mes dates et sur la ligne 14 du nombre d'heures travaillées par jour.
Sur la colonne A j'ai donc des références et j'ajoute automatiquement sur les colonnes entre B et NO les données qui remplissent mon planning.
Pour rendre le planning visuel, j'ai alors ajouté trois mise en forme conditonnelles sur tout le classeur:
- la première me permet de griser les cellules lorsque le nombre d'heures dans la ligne 14 est =0
- la deuxième me permet de colorier en jaune les cellules qui se trouve dans la colonne ou l'on retrouve la date du jour en ligne 15
- la troisième me permet de mettre en blanc dans toutes les cellules qui comprennent un 0, situées entre la ligne 15 et la colonne A.
Ensuite mon programme VBA doit ajouter une autre mise en forme conditionnelle (la quatrième) me permettant d'ajouter de la couleur dans les cellules différentes de 0 situées entre la ligne 15 et la colonne A. La difficultée est que cette couleur change à chaque référence en colonne A et que cette couleur est inscrite dans une autre feuille, voila pourquoi je passe par un programme.
Le problème dans mon programme c'est qu'à l'ajout de ma mise en forme conditionnelle 4 les couleurs de police et de bordure sont modifiées dans la mise en forme 1. Mais la couleur de fond de cellule est bien appliquée dans la mise en forme 4.
J'ai tout essayé au niveau des priorités, j'ai laissé que deux mises en forme et j'ai même fait l'essai sur un nouveau classeur avec quelque cellule: même problème.
Voici le code que j'ai testé:
Avant de lancer ce code il faut prendre en compte qu'il ya une mise en forme conditionnelle déjà présente sur les cellules B4:G30 qui les grise si la donnée en ligne 3 =0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Dim i As Long With Sheets(1) For i = 4 To 30 With .Range("B" & i & ":" & "G" & i) .FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, Formula1:="0" .FormatConditions(.FormatConditions.Count).SetFirstPriority .FormatConditions(1).StopIfTrue = False With .FormatConditions(1).Font .Color = RGB(128, 128, 250) End With With .FormatConditions(1).Borders .LineStyle = xlContinuous .Color = RGB(128, 128, 250) .TintAndShade = 0 .Weight = xlThin End With With .FormatConditions(1).Interior .Color = RGB(128, 128, 250) End With End With Next End With
Si quelqu'un y voit une erreur ou a déjà eu ce problème cela m'aiderais. Je n'ai plus d'idées pour contourner le problème ou trouver l'erreur.
Merci d'avance de votre aide, je reste à votre disposition au besoin de plus détail.
Partager