Compréhension d'un code

Bonjour à tous, alors voici mon problème, j'ai cherché un peu partout mais je n'arrive pas à comprendre ce que fait ce code :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not (Application.Intersect(Target, Range("E6:E" & Me.Cells(Me.Rows.Count, "E").End(xlDown).row)) Is Nothing) Then
Select Case Target.Value
Case "Modérée"
ColorsForVuln
Case "Elevée"
ColorsForVuln
Case "Difficile"
ColorsForVuln
Case "Facile"
ColorsForVuln
End Select
End If

End Sub

ColorsForVuln est une macro qui permet de changer la couleur d'une cellule en fonction de son contenu, ce que je ne comprends pas vraiment c'est surtout la première ligne qui commence par if not.

Merci d'avance.

Bonjour,

Cette macro est lié à un évènement, c'est à dire qu'elle se déclenche non pas par un bouton, mais par une action : ici la modification d'une cellule de la feuille.

Target correspond à la cellule modifiée, qui a déclenché l'exécution de la macro.

La structure If permet de vérifier si Target appartient à la plage E6 --> E & dernière ligne complétée

Select Case est proche d'une structure If, et permet d'exécuter un code différent selon une valeur (ici la valeur de la cellule Target). D'ailleurs l'écriture est simplifiable :

Select Case Target.Value
    Case "Modérée", "Elevée", "Difficile", "Facile" : ColorsForVuln
End Select

Ok, merci pour l'explication c'est plus clair, en revanche quand j'observe le comportement de ma macro ça ne correspond pas tout à fait, la macro qui change la couleur de la cellule ne s'exécute pas au moment du changement de valeur mais lorsque je clic sur la cellule concernée. Exemple : Je rentre la valeur difficile dans une cellule je fait entrée, la cellule reste blanche, quand je clic sur celle ci la cellule devient verte.

Merci de joindre un fichier de démo pour que l'on puisse réellement t'aider, assorti de quelques explications.

Bonjour Tuvan, Salut Pedro,

Vous êtes sûr que le code est sous la macro change et non SelectionChange ?

Cdlt,

Ok, c'est bon j'ai résolu mon problème en utilisant une autre solution au final (les mises en formes conditionelles) je trouvais que ça répondait mieux à ma problématique, merci quand même pour l'aide.

Rechercher des sujets similaires à "comprehension code"