2009-09-24 7 views

Répondre

4

trouvé une solution:

Faire une plage nommée pour les cellules que vous voulez capturer clickevent

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Application.EnableEvents = False 
    Application.ActiveSheet.Cells(1, 1).Value = Target.Address 
    If Not Intersect(Target, Range("MyNamedRange")) Is Nothing Then 
     ' do your stuff 
     Range("A1").Select 
    Endif 
    Application.EnableEvents = True 
End Sub 
4

Vous pouvez lier à une cellule en double-cliquant.

Ouvrir VBA, GOTO la feuille de calcul que vous voulez câbler l'événement Sélectionnez WorkSheet dans le menu déroulant en haut à gauche et BeforeDoubleClick en haut à droite Le cocher la Target.Address est égale à l'adresse de la cellule que vous aimez à propos de et appelez la fonction que vous souhaitez.

Quelque chose comme ceci:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    If Target.Address(True, True, xlA1) = "$A$1" Then 
     Call MyDemo 
    End If 
End Sub 

Private Sub MyDemo() 
    MsgBox "Hello" 
End Sub 
+0

double-clic est assez bon pour moi. très bonne réponse. Les fonctions beforeX peuvent-elles réellement annuler le traitement d'événement par défaut? – Cheekysoft

+0

Je le pense. Définir Annuler à vrai je crois - mais n'ai jamais essayé! – JDunkerley

+0

hehe. battu moi de 30 secondes. Juste trouvé dans http://msdn.microsoft.com/en-us/library/aa220840%28office.11%29.aspx. Annuler = True fonctionne tout simplement génial. – Cheekysoft

Questions connexes