[COLOR="Blue"]Option Explicit[/COLOR]
[COLOR="blue"]Private Sub[/COLOR] Worksheet_BeforeDoubleClick([COLOR="blue"]ByVal[/COLOR] Target [COLOR="blue"]As[/COLOR] Range, Cancel [COLOR="blue"]As Boolean[/COLOR])
[COLOR="Green"]' Déclaration des variables Li (ligne) et Col (colonne) en Long, car les propriétés
' Row et Column (Target.Row et Target.Column) sont eux-mêmes de type Long ; cela
' évite les conversion, voire les erreurs suivant le numéro de ligne[/COLOR]
[COLOR="blue"]Dim[/COLOR] Li [COLOR="blue"]As Long[/COLOR], Col [COLOR="blue"]As Long[/COLOR]
[COLOR="green"] ' Le souci de l'ancienne procédure utilisée Private Sub Worksheet_SelectionChange,
' c'est qu'en se déplaçant avec les flêches, on pouvait par exemple en remontant
' les cellules avec la flêche vers le haut, modifier complètement les résultats et
' tout positionner à OUI ou à NON ou encore supprimer l'ancienne sélection
' suivant la colonne dans laquelle on faisait remonter le curseur
' Avant tout on évite qu'un double click entraîne le mode édition de cellule[/COLOR] Cancel = [COLOR="blue"]True[/COLOR]
[COLOR="green"] ' Par rapport à l'ancien code qui entraînait la fin de la procédure s'il y
' avait plusieurs cellules sélectionnées (Target.Count > 1) OU si la colonne
' était supérieure à 6 (c-à-d la colonne F) afin de ne pas réagir lorsque
' la cellule était à l'extérieur des colonnes utilisables du questionnaire,
' OU encore si la ligne était inférieure à 4 (les réponses au questionnaire
' commencent en ligne 4).
' Désormais, on peut oublier l'ancien code :
'
' If Target.Count > 1 Or Target.Column > 6 Or Target.Row < 4 Then Exit Sub
'
' et écrire à la place :
'
' If Target.Column > 6 Or Target.Row < 4 Then Exit Sub
'
' puisqu'il est impossible que plusieurs cellules soient "double-cliquées"
' (par la suite, je dirai simplement cliquée) en même temps.[/COLOR]
[COLOR="blue"]If[/COLOR] Target.Column > 6 [COLOR="blue"]Or[/COLOR] Target.Row < 4 [COLOR="blue"]Then Exit Sub[/COLOR]
[COLOR="green"] ' On détermine la colonne et la ligne de la cellule cliquée[/COLOR]
Li = Target.Row
Col = Target.Column
[COLOR="green"] ' Voici le traitement en fonction de la colonne de la cellule
' cliquée, d'où le Select Case.[/COLOR]
[COLOR="blue"]Select Case[/COLOR] Col
[COLOR="green"] '
' Si la colonne de la cellule cliquée est soit la colonne A
' soit la colonne B et que cette cellule ne soit pas vide
' (= fin du questionnaire), on réinitialise les "simili-Case
' d'option" à non cochées : colonnes C et E de la ligne dans
' laquelle le click a eu lieu, et on supprime la réponse
' éventuelle qui était stockée en colonne D de la feuille
' Echelles, sur la même ligne[/COLOR]
[COLOR="blue"]Case[/COLOR] 1, 2
[COLOR="blue"]If[/COLOR] Target <> "" [COLOR="blue"]Then[/COLOR]
Range("C" & Li) = "¡"
Range("E" & Li) = "¡"
Sheets("Echelles").Cells(Li, "D") = ""
[COLOR="blue"]End If[/COLOR]
[COLOR="green"] '
' Si la colonne est soit C soit D, on marque le OUI de la
' colonne D ligne du click, comme coché, et on répercute
' l'info dans la feuille Echelles, colonne D, même ligne.[/COLOR]
[COLOR="blue"]Case[/COLOR] 3, 4
Cells(Li, 3) = "¤"
Cells(Li, 5) = "¡"
Sheets("Echelles").Cells(Li, "D") = "oui"
[COLOR="green"] '
' Si la colonne est soit E soit F, on marque le NON de la
' colonne E ligne du click, comme coché, et on répercute
' l'info dans la feuille Echelles, colonne D, même ligne.[/COLOR]
[COLOR="blue"]Case[/COLOR] 5, 6
Cells(Li, 5) = "¤"
Cells(Li, 3) = "¡"
Sheets("Echelles").Cells(Li, "D") = "non"
[COLOR="blue"]End Select[/COLOR]
[COLOR="blue"]End Sub[/COLOR]