This works for me:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
With ActiveSheet
If Intersect(Target, .Range("A1:A10")) Is Nothing Then .Shapes("Calendar").Visible = False: Exit Sub
If Selection.Cells.Count > 1 Then .Shapes("Calendar").Visible = False: Exit Sub
.Shapes("Calendar").Visible = True
.Shapes("Calendar").Left = ActiveCell.Left + ActiveCell.Width
.Shapes("Calendar").Top = ActiveCell.Top + ActiveCell.Height
End With
End Sub