Problème d'un code

Bonjour,

Je souhaite ajouter une unité par double clic.

Or ça ne fonctionne pas, pourquoi?

Voici le code de la feuille :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If Not Application.Intersect(Target, [D4:B189]) Is Nothing Then ActiveCell.Value = ActiveCell.Value + 1
End Sub

Merci à vous

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

1exemple.xlsx (246.89 Ko)

merci, ok ça marche.

7concerto-2018.rar (219.75 Ko)

Re,

Vi, c'est sympa, tu as fait un retour...

Cependant, t'ayant donné plusieurs solutions, il serait bien que tu précises laquelle t'a aidé à résoudre ton problème....

Bonne soirée

1port1.xlsx (12.02 Ko)

Non, en fait désolé mais c'est moi qui avait fait une erreur la zone devait s'étendre jusqu'à BP189, or quandjecliqué c'étaishors cadre.

Donc mon code était bon en fait.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Cancel = True

If Not Application.Intersect(Target, [D4:BP189]) Is Nothing Then ActiveCell.Value = ActiveCell.Value + 1

End Sub

merci malgré tout encore.

Re-,

bon, je vois que tu tiens très peu compte de mes petites "remarques" (Target suffit, pas besoin d'ActiveCell...),

mais surtout, si tu respectais la "zone" de "Cancel", tu t'en serais rendu compte de suite....

Quelques règles simples, en VBA, suffisent à résoudre bien des problèmes....

Bonne soirée

Rechercher des sujets similaires à "probleme code"