4 pièce(s) jointe(s)
Mise en forme conditionnelle adaptée à un code VBA
Bonjour chers développeurs,
SVP si quelqu'un pourra m'aider à rectifier ce code :
j'ai une checklist qui est composée de 5 étapes , pour chaque étape j'ai des critères à vérifier et pour chaque critère l'utilisateur est confronté à trois réponses :
O: Oui
N: Non
N :NA
Au début toutes les cases à cocher sont en rouge (O, N, NA) ,
et puis dans ces cases je désire que l'utilisateur ne coche qu'une seule case parmi les trois et que à chaque fois il change son choix la nouvelle case s'actualise et l'ancienne est écrasée.
Mais si la case N est cochée , la case Remarque doit se mettre en rouge (MFC)
Pièce jointe 177576
Puis après si on remplit la remarque la case devient en blanc ( comme quoi c bon l'utilisateur a saisi la remarque seulement dans le cas ouu la réponse est N )
Pièce jointe 177577
Le difficile c'est que Je veux que si l'utilisateur voit qu'il a mal placé sa réponse et que cette question , sa réponse n'était pas N mais NA ou bien O, je veux que le commentaire se supprime et que la case NA se coche facilement de nouveau et s'actualise
Pièce jointe 177578
Le code VBA de la feuille est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Dim TEST As Boolean 'déclare la variable TEST
Private Sub Worksheet_Change(ByVal Target As Range)
Dim PL As Range 'déclare la variable PL (PLage)
Set PL = Range("Etape1,Etape2,Etape3,Etape4,Etape5") 'définit la variabel PL
If Target.Cells.Count > 1 Then Exit Sub 'si plusieurs cellules sélectionnées, sort de la procédure
If TEST = True Then TEST = False: Exit Sub 'si test est [Vrai], sort de la procédure
TEST = True 'définit la variable TEST
'si le changement a lieu ailleurs que dans la plage PL, sort de la procédure
If Application.Intersect(Target, PL) Is Nothing Then Exit Sub
Cells(Target.Row, 4).Resize(1, 3).ClearContents 'efface les trois cellules de la ligne
Target.Value = "X" 'renvoie "X" dans la cellule
If Target.Column = 4 Or Target.Column = 6 Then Cells(Target.Row, 7).ClearContents
TEST = False 'redéfinit la variable TEST
End Sub |
Le problème c'est que j'ai plusieurs mises en forme conditionnelle dans la feuille ce qui m'a perturbé et je n'ai pas pu réussir à réaliser le code correctement
Si vous pourriez vérifier la feuille Excel pour voir les mises en forme conditionnelle je vous serez très reconnaissante
Pièce jointe 177579