Poto
XLDnaute Occasionnel
Bonjour le forum, salut à tous,
je cherche à faire une mise en forme conditionnelle via vba (jusqu'ici pas de probleme) avec la possibilité de retourne à une mise en forme predefini, sur une autre sheet, lorsque aucune condition ne n'ai rempli.
je joins un fichier avec dans la feuille 1 une colonne verte dans laquelle on peut choisir une activité ( ON ou OFF). Lorqu'on choisi l'un des 2 choix, la mise en forme s'execute, mais lorsque j'efface l'activité (cad qu'il n'y a ni ON ni OFF dans la cellule), alors j'aimerai que la mise en forme de ces cellules reviennent à un état similaire à celui de la "référence" ce situant sur une autre feuille (Feuil2) et se nommant "FormatPlanning".
Afin de pourvoir repérer quel format doit etre appliquer je penser utiliser les numeros ID se situant colonne A.
Voici le code utiliser actuellement
toute aide/idée est la bienvenue et je suis ouvert à d'autre technique alternative (à savoir que je souhaite passer par cette technique plutot que par une mise en forme conditionnelle conventionnelle, car la feuille sur laquelle cete macro doit fonctionner fait plus de 4000 lignes et l'exemple ci joins ce repete plus de 300 fois, et c'est une galere a maintenir si une colonne ou une ligne est ajouté)
merci d'avance à tous
Poto
je cherche à faire une mise en forme conditionnelle via vba (jusqu'ici pas de probleme) avec la possibilité de retourne à une mise en forme predefini, sur une autre sheet, lorsque aucune condition ne n'ai rempli.
je joins un fichier avec dans la feuille 1 une colonne verte dans laquelle on peut choisir une activité ( ON ou OFF). Lorqu'on choisi l'un des 2 choix, la mise en forme s'execute, mais lorsque j'efface l'activité (cad qu'il n'y a ni ON ni OFF dans la cellule), alors j'aimerai que la mise en forme de ces cellules reviennent à un état similaire à celui de la "référence" ce situant sur une autre feuille (Feuil2) et se nommant "FormatPlanning".
Afin de pourvoir repérer quel format doit etre appliquer je penser utiliser les numeros ID se situant colonne A.
Voici le code utiliser actuellement
Private Sub Worksheet_Change(ByVal Target As Range)
'On Error GoTo Worksheet_Change_Error
If Target.Text = "ON" Then
Target.Interior.Color = 65280
Target.Offset(0, 1).Interior.Color = 65280
Target.Offset(0, 2).Interior.Color = 65280
Target.Offset(0, 3).Interior.Color = 65280
ElseIf Target.Text = "OFF" Then
Target.Interior.Color = 49407 ' Color cell interior orange
Target.Offset(0, 1).Interior.Color = 49407
Target.Offset(0, 2).Interior.Color = 49407
Target.Offset(0, 3).Interior.Color = 49407
Else
Dim LigneTargetCell As String
Dim AdresseCellFormat As String
LigneTargetCell = Range("A" & Target.Row)
AdresseCellFormat = Application.WorksheetFunction.Match(LigneTargetCell, FormatPlanning, 0)
Target.Interior.Color = Range(AdresseCellFormat).Color
Target.Offset(0, 1).Interior.Color = Range(AdresseCellFormat).Offset(0, 1).Color
Target.Offset(0, 2).Interior.Color = Range(AdresseCellFormat).Offset(0, 2).Color
Target.Offset(0, 3).Interior.Color = Range(AdresseCellFormat).Offset(0, 3).Color
End If
Exit Sub
End Sub
toute aide/idée est la bienvenue et je suis ouvert à d'autre technique alternative (à savoir que je souhaite passer par cette technique plutot que par une mise en forme conditionnelle conventionnelle, car la feuille sur laquelle cete macro doit fonctionner fait plus de 4000 lignes et l'exemple ci joins ce repete plus de 300 fois, et c'est une galere a maintenir si une colonne ou une ligne est ajouté)
merci d'avance à tous
Poto