View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default how to execute a macro assigned to a checkbox in vba

Saved from a previous post:

Here are two subroutines. The first one adds a bunch of checkboxes from the
Forms toolbar to a range in the activesheet (b3:B10).

The second one is the one that would do what you want to do when you
check/uncheck that box.

The first one only needs to be run once--to set up the checkboxes on the
worksheet.

Option Explicit
Sub testme()

Dim myCBX As CheckBox
Dim myCell As Range

With ActiveSheet
.CheckBoxes.Delete
For Each myCell In ActiveSheet.Range("B3:B10").Cells

With myCell
Set myCBX = .Parent.CheckBoxes.Add _
(Top:=.Top, Width:=.Width, _
Left:=.Left, Height:=.Height)
With myCBX
'.LinkedCell = myCell.Offset(0, 10).Address(external:=True)
.Caption = ""
.Name = "CBX_" & myCell.Address(0, 0)
.OnAction = "'" & ThisWorkbook.Name & "'!dothework"
End With
.NumberFormat = ";;;"
End With

Next myCell
End With
End Sub

Sub DoTheWork()
Dim myCBX As CheckBox
Set myCBX = ActiveSheet.CheckBoxes(Application.Caller)

If myCBX = xlOn Then
'do something
Else
'do something else
End If

End Sub

wrote:

Hi,

For testing purposes i want to control a workbook from another workbook
with vba.

When setting a checkbox to 'checked', the macro assigned to the
checkbox is not executed.

the code i use is:

Dim name As String
Dim cbo As CheckBox

name = "some value read from a cell'
Set cbo = otherWorkbook.ActiveSheet.CheckBoxes(name)
cbo.value = 1 'make checkbox 'checked'

In similar code for buttons i use: Run button.OnAction, this does not
work for a checkbox though. Also i can't get the name of the macro from
the checkbox in vba.

Does anyone know how i can get the macro assigned to a checkbox to
execute from vba? Note that i don't know the macro name in the code,
only the name of the checkbox.

thanks

Pieter


--

Dave Peterson