Here's one way:
Option Explicit
Sub testme01()
Dim myCBX As CheckBox
Dim myCopyObjectsWithCells As Boolean
Dim myRngToCopy As Range
Set myCBX = ActiveSheet.CheckBoxes(Application.Caller)
If myCBX.Value = xlOn Then
If myCBX.TopLeftCell.Row = ActiveCell.Row Then
'do nothing
Else
myCopyObjectsWithCells = Application.CopyObjectsWithCells
Application.CopyObjectsWithCells = False
Set myRngToCopy _
= ActiveSheet.Cells(myCBX.TopLeftCell.Row, "b").Resize(1, 5)
myRngToCopy.Copy _
Destination:=ActiveSheet.Cells(ActiveCell.Row, "A")
With Application
.CutCopyMode = False
.CopyObjectsWithCells = myCopyObjectsWithCells
End With
End If
End If
End Sub
This is the line you'll want to adjust:
Set myRngToCopy _
= ActiveSheet.Cells(myCBX.TopLeftCell.Row, "b").Resize(1, 5)
I started in column B of that same row. Then I resized it to be 1 row by 5
columns (B:F).
You can start anywhere and resize to the number of columns you need.
And I pasted in column A with this portion:
Destination:=ActiveSheet.Cells(ActiveCell.Row, "A")
Adjust to suit.
What about if I don't want to copy the whole row.. but just a range of cells
beside the checkbox... ? I tried to substitute Range for Entirerow (since I
want to copy a range of information but it is not always in the same spot)
and just specify the columns.. but that wouldn't work..