+ Reply to Thread
Results 1 to 2 of 2

Determine when checkbox is clicked

  1. #1
    wAyne
    Guest

    Determine when checkbox is clicked

    Hi,

    I Have a bunch of checkboxes in a spreadhseet - what I wnat to do is run a
    code when one of the checkboxes are clicked -- the code to be run needs to
    adjust the vale in a cell adjacen to the check box. I could do this by
    having different macros for each check box, however, what I'd like to do is
    determine the row number to which the check box is attached, so I could loop
    through the same macro for each box and place my code based on the row. I
    can't use activecell.row because it could be different from the row of the
    checked box.

    any ideas?
    wAyne_

  2. #2
    Dave Peterson
    Guest

    Re: Determine when checkbox is clicked

    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 adds one to the cell to the right (C3:C10) each time you check
    the 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
    With myCBX.TopLeftCell.Offset(0, 1)
    If IsNumeric(.Value) Then
    .Value = .Value + 1
    Else
    .Value = 1 'maybe???
    End If
    End With
    End If

    End Sub

    If you're new to macros, you may want to read David McRitchie's intro at:
    http://www.mvps.org/dmcritchie/excel/getstarted.htm

    wAyne wrote:
    >
    > Hi,
    >
    > I Have a bunch of checkboxes in a spreadhseet - what I wnat to do is run a
    > code when one of the checkboxes are clicked -- the code to be run needs to
    > adjust the vale in a cell adjacen to the check box. I could do this by
    > having different macros for each check box, however, what I'd like to do is
    > determine the row number to which the check box is attached, so I could loop
    > through the same macro for each box and place my code based on the row. I
    > can't use activecell.row because it could be different from the row of the
    > checked box.
    >
    > any ideas?
    > wAyne_


    --

    Dave Peterson

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1