doubleclick event only works once

G

goodfish

Hello!
I posted this question a week ago but I never received the confirmation
email and I can't find it when I search the community.
Basically I have a problem with a doubleclick event.
I run the following macro (by doubleclicking) to call one of two macros.
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
Dim dcCell As Range

If Target.Value > 0 Then

If Target.Column = 1 Then

Call POtoContract(dcCell:=Target)
Cancel = True
Else
If Target.Column = 4 Then
Cancel = True
Call copytableline(cyCell:=Target)

End If
End If
End If
End Sub

If macro POtoContract is called then the user is prompted to enter the a
name and if he enters a wrong name then the sub exits (which is what it
should do). However, trying to doubleclick again to call the macro a second
time now enters editing mode instead of calling the macro again. Why?
If On the other hand the user does not enter a wrong name then POtoContract
runs till the end and double clicking still works after that.
 
P

Paul

By indenting your code it becomes clear that if Target.Value is NOT greater
than 0 then Cancel = True is never set.

Place a Cancel = True as below should clear the problem
--
If the post is helpful, please consider donating something to an animal
charity on my behalf.


goodfish said:
Hello!
I posted this question a week ago but I never received the confirmation
email and I can't find it when I search the community.
Basically I have a problem with a doubleclick event.
I run the following macro (by doubleclicking) to call one of two macros.
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
Dim dcCell As Range

If Target.Value > 0 Then

If Target.Column = 1 Then

Call POtoContract(dcCell:=Target)
Cancel = True
Else
If Target.Column = 4 Then
Cancel = True
Call copytableline(cyCell:=Target)

End If
End If
************************
Cancel = True
************************
 
R

Ryan H

I'm not sure what your POtoContract and copytableline procedures are doing.
Is that code possibly stopping the macro and not allowing the Cancel
parameter from being set to True? Try putting the Cancel = True line before
you call your other procedures. The code below worked fine for me. Post the
code for the procedures I mentioned if this doesn't help. Hope this helps!
If so, let me know, click "YES" below.

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

If Target.Value > 0 Then

If Target.Column = 1 Then
Cancel = True
Call POtoContract(dcCell:=Target)
Else
If Target.Column = 4 Then
Cancel = True
Call copytableline(cyCell:=Target)
End If
End If
End If

End Sub
 
G

goodfish

Hi Ryan Thanks for your help!
I managed to find the previous post through my communities profile (for some
reason I am not receiving email notifications and I cannot find the posts by
running a search) and OssieMac had pointed out that I might have enable
events = false in the called macro...which I did.
Thanks again.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top