Excel - Run a macro when clicking a cell.

Asked By kevrode on 29-Apr-08 07:50 AM

I'm sure this has been discussed before but I'm a complete novice on
Excel so any help is appreciated.

I've created a Calendar Control and can call the macro up either by
clicking a button or right-clicking the mouse.  When I click on a date
in the Calendar, the date populates the selected cell.  However, what
I'd also like to do is to run the macro when I click on a specific

I've seen another post which said copy the cell and paste the picture
then you can assign the macro to the cell but the date populates the
cell you clicked on prior to the macro running so that's no good.

Can anyone advise either how to run the macro by clicking the cell so
that the date populates the clicked cell, or maybe a double-click
which I've seen in another post.

I can email my workbook to anyone to have a look if required.

Kind regards.


GarysStuden replied on 28-Apr-08 05:59 PM
You can set up a cell to call a macro when it is clicked, but there is a
problem.  The macro will be called even if you run across the cell with the
arrow keys or ENTER key.  That is why a double click is usually reccommended.
Try this worksheet event macro:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Set t = Target
Set a1 = Range("A1")
If Intersect(t, a1) Is Nothing Then Exit Sub
Cancel = True
Call hello
End Sub

Because it is worksheet code, it is very easy to install and automatic to use:

1. right-click the tab name near the bottom of the Excel window
2. select View Code - this brings up a VBE window
3. paste the stuff in and close the VBE window

If you have any concerns, first try it on a trial worksheet.

If you save the workbook, the macro will be saved with it.

To remove the macro:

1. bring up the VBE windows as above
2. clear the code out
3. close the VBE window

To learn more about macros in general, see:


To learn more about Event Macros (worksheet code), see:


Gary''s Student - gsnu2007h
Gord Dibben replied on 28-Apr-08 06:06 PM
See how Ron de Bruin does it.


After installing control and code, just click on any cell to pop up the Calendar
and insert the date you pick.

If you just want today's date use this event code without the Calendar.

Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
Target.Value = Format(Date, "dd-mmm-yy")
Cancel = True
End Sub

Gord Dibben  MS Excel MVP
kevrode replied on 03-May-08 06:59 PM

Yes I visited the link and copied the code but get a runtime error.

Can anyone help out?  I can send my workbook via email if someone
would be so kind as to have a look at it?  As I mentioned, I know
nothing about VB and just want to get this calendar working.


Gord Dibben replied on 03-May-08 01:09 PM
See here for step by step instructions.


If you scroll to the page bottom, there are downloads available.

If you want you can upload the workbook to one of these sites then post back
with the URL


kevrode replied on 06-May-08 12:59 AM

Hi Gord,

Thanks for getting back to me.

I've followed those step by step instructions and I can get the
calendar to pop up either with right-click or button.  What I want to
do now is have it pop up with a double-click on a particular cell, or

I've uploaded the workbook here as advised.


Thanks again.

Gord Dibben replied on 05-May-08 06:41 PM
All you uploaded was a Class Module.........*.cls

Using the the Excel Calendar Workbook  from Martin's site.

Right-click on Sheet1 tab and "View Code"

Copy/paste this into that sheet module.

Private Sub Worksheet_BeforeDoubleClick _
(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub

Alt + q to return to the Excel window.

Double-click on any cell.

kevrode replied on 08-May-08 09:36 PM
Hi Gord,

I am still getting the error.

How do I upload the full workbook please?