Bonsoir,
Euh, ton code fonctionne, du moins chez moi...
Pour que cela ne fonctionne pas chez toi, j'entrevois 2 possibilités :
- Tu as déroulé antérieurement un code comprenant un EnableEvents = False
(auquel cas, soit tu quittes Excel, et tu redémarres, soit tu déroules une macro de ce style :
Sub remet_evenements()
Application.EnableEvents = True
End Sub
- Tu n'as pas validé l'autorisation pour l'utilisation des macros....
Maintenant, 2 petites remarques concernant ton code :
- Lorsque tu fais référence à une plage de cellules, il est d'usage de commencer par la cellule, en haut à gauche, jusqu'à la cellule d'en bas à droite, soit dans ton cas : [B4:D189]
- Lorsque tu utilises un évènement de feuille, comprenant une cellule (nommée Target), il est inutile de faire référence à ActiveCell, Target suffit, soit dans ton cas :
Target= Target + 1
Remarque bien, que je n'ai pas rajouté le ".Value", à Target, vu que dans le nom de l'évènement :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target est définie comme une "cellule" (ou plage de cellules, selon), et que par défaut, Target signifie la valeur de la cellule "double-cliquée"
Ah, et j'oubliais, l'utilisation de Cancel est bien utile, mais uniquement si tu travailles dans la zone désirée...
Perso, j'aurai annulé l'effet du double-clic (Edition de la cellule), si et seulement si la cellule double-cliquée était comprise dans ma zone de travail, soit :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, [B4:D189]) Is Nothing Then
Cancel = True
Target = Target + 1
End If
End Sub
Bonne soirée