Not sure if this will work for you, but, instead of using the function 'ActiveCell.value' you could try using 'ActiveCell.Address' which will return the active Cell Address as a string format of "$A$!" i.e. if active cell is Col=B and Row=6, it will return a string value as "$B$6"
Then use the VBA 'Mid()' string function to extract the Column string value to enable a further program check to ensure it is the desired column.
i.e. Columnchk = Mid(ActiveCell.Address, 2, 1) ' extracts and returns the second character from "$B$!" = "B"
The program logic then includes a further check to make sure that the active column returned is the desired column before accepting the cell value.
i.e. assuming the desired active column is A, then revised code, based on your original, is something like:
Private Sub Calendar1_Click()
Columnchk = Mid(ActiveCell.Address, 2, 1)
' set value only if active column = A
If Columnchk = "A" then ActiveCell.Value = Me.Calendar1.Value
End Sub