non è per niente facile fare quello che chiedi comunque prova a mettere nel codice della pagina una funzione tipo
codice:
Private Sub convalida1()
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="lunedì;martedì;mercoledì"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub

Private Sub convalida2()
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="gennaio;febbraio;marzo"       
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.Row = 1 And ActiveCell.Column = 1 Then
    If ActiveCell.Value = "A" Then
        Range("B1").Select
        Call convalida1
    End If
    If ActiveCell.Value = "B" Then
        Range("B1").Select
        Call convalida2
    End If
End If
End Sub