interdire macro "double clic" dans cellule

bcesoll

XLDnaute Nouveau
bonjour,
dans l'exemple ci-dessous (fichier xls) je voudrais interdire l'execution de la macro double clic dans les cellules vides (ça c OK) mais aussi dans des les cellules remplies d'une autre valeur que celles d'une liste (CIBLE)

If Cells(Target.Row, Target.Column) = "" Or Cells(Target.Row, Target.Column) <> CIBLE Then
 

Pièces jointes

  • bcesoll-4(1).xls
    48 KB · Affichages: 103
  • bcesoll-4(1).xls
    48 KB · Affichages: 106
  • bcesoll-4(1).xls
    48 KB · Affichages: 106

Hervé

XLDnaute Barbatruc
Re : interdire macro "double clic" dans cellule

bonsoir

peut etre quelque chose dans ce style :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim tablo
 
tablo = Range("cible")
Cancel = Target = "" = IsError(Application.Match(Target, tablo, 0))

End Sub

salut
 

Hervé

XLDnaute Barbatruc
Re : interdire macro "double clic" dans cellule

re

version moins exotique :p

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim tablo
 
tablo = Range("cible")
 
If Target = "" Or Not IsError(Application.Match(Target, tablo, 0)) Then
    Cancel = True
End If
End Sub

a plus
 

tototiti2008

XLDnaute Barbatruc
Re : interdire macro "double clic" dans cellule

Bonjour bcesoll,

déjà, tu peux simplifier

Code:
Cells(Target.Row, Target.Column)

en

Code:
Target

sinon, pour la cible, un truc comme :

Code:
If target.value <> "" and application.worksheetfunction.countif(range("Cible"),Target.value)>0 Then

Edit : Bonjour Hervé
 
Dernière édition:

bcesoll

XLDnaute Nouveau
Re : interdire macro "double clic" dans cellule

ne dois-je pas garder "Cells(Target.Row, Target.Column)" lorsque je clicque sur une cellule fusionnée ?

Commnet s'écrit la condition dans ce cas ?
If Target = "" Or Not IsError(Application.Match(Target, tablo, 0)) Then
 

Hervé

XLDnaute Barbatruc
Re : interdire macro "double clic" dans cellule

salut

Ah la la ces cellules fusionnées :(

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim tablo
Dim pl As Range
If Target.MergeCells Then
    Set pl = Target(1)
Else
    Set pl = Target
End If

tablo = Range("cible")
Cancel = pl = "" = IsError(Application.Match(pl, tablo, 0))
End Sub

bye
 

Discussions similaires

Réponses
0
Affichages
148

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87