to add a button to the active excel cell! here's the way!

  • Thread starter Thread starter NA_AB
  • Start date Start date
N

NA_AB

hey ppl n hi peter! at last, found a way out.

Range r = Connect.myApplication.ActiveCell;
Microsoft.Office.Interop.Excel.Worksheet theSheet =
(Microsoft.Office.Interop.Excel.Worksheet)Connect.myApplication.Worksheets.get_Item(1);
theSheet.Shapes.AddOLEObject("Forms.CommandButton.1",
Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
"click_me", theSheet.get_Range(r, r).Left,theSheet.get_Range(r,
r).Top, theSheet.get_Range(r,
r).Width, theSheet.get_Range(r, r).Height);


Requires you to add MSForms 2.0, your addin should have a reference to
MSForms object library and use as MSForms.CommandButton.
 
Hello again,

As I tried to explain in my first reply in your thread "a button on an excel
cell" on 6-Jan, you do this in almost the same was as you handle the click
event of an Office.CommandBarButton. I think you already know how to do that
in C#, as you know I don't, but the main difference will be to declare as
MSForms.CommandButton.

Rather than starting a new thread try its better for all if you post
follow-ups in the original thread.

Regards,
Peter T
 
Hello again,

As I tried to explain in my first reply in your thread "a button on an excel
cell" on 6-Jan, you do this in almost the same was as you handle the click
event of an Office.CommandBarButton. I think you already know how to do that
in C#, as you know I don't, but the main difference will be to declare as
MSForms.CommandButton.

Rather than starting a new thread try its better for all if you post
follow-ups in the original thread.

Regards,
Peter T

hey dude, cud find a way out atlast: :)

Range r = Connect.myApplication.ActiveCell;
Worksheet sht = (Worksheet)
Connect.myApplication.ActiveSheet;
Shape btn = sht.Shapes.AddOLEObject("Forms.CommandButton.
1", Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value,
sht.get_Range(r,
r).Left, sht.get_Range(r, r).Top, 60,20);//sht.get_Range(r,r).Width,
sht.get_Range(r, r).Height);
OLEObject obj1 = (OLEObject)(sht.OLEObjects
("CommandButton1"));
MSForms.CommandButton mbtn = (MSForms.CommandButton)
(obj1.Object);
mbtn.Caption = "click me";
mbtn.Click += new
Microsoft.Vbe.Interop.Forms.CommandButtonEvents_ClickEventHandler
(main_form_click);
 

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

Back
Top