locked
Objeto Calendar RRS feed

  • Pergunta

  • Amigos estou trabalhando com uma planilha do excel onde o forte é a inserção de datas, então com um pouco de preguiça do cliente ele quer que eu bole um sistema de calendário onde o usuário não tem que digitar a data em células determinadas. Encontrei um código com um amigo meu, vejam:

     

    Private Sub Calendar1_DblClick()
        ActiveCell.NumberFormat = "m/d/yyyy"
        ActiveCell = Calendar1
    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Target.Address = "$C$20" Then
                Calendar1.Left = Target.Left + Target.Width - Calendar1.Width
                Calendar1.Top = Target.Top + Target.Height
                Calendar1.Visible = True
             Else: Calendar1.Visible = False
        End If
    End Sub

    Porém, nesse código o calendário só aparece quando eu clico sobre a célula C20, então como não sou nenhum pouco experiênte ainda com o Excel, ainda mais com o Visual Basic, gostaria de saber como eu poderia fazer para que o código também funcione nas células C21,C22,C32 e D32.

     

    Abraços
    Daniel Leite
    danieldellove@hotmail.com

    quinta-feira, 19 de outubro de 2006 14:43

Respostas

  • Tente formatar as células onde terão as datas como "dd/mm/aa".

    Private Sub Calendar1_DblClick()
        ActiveCell.NumberFormat = "dd/mm/yy"
        ActiveCell = Calendar1
    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If ActiveCell.NumberFormat = "dd/mm/yy" Then
                Calendar1.Visible = True
             Else
            Calendar1.Visible = False
        End If
    End Sub

    Assim, qdo vc selecionar uma célula onde tem uma data, o calendário será exibido.

    segunda-feira, 6 de novembro de 2006 18:25

Todas as Respostas

  • Oi Daniel,

    tente assim:

    If Target.Address = "$C$20" or Target.Address = "$C$21" or Target.Address = "$C$22" or _

    Target.Address = "$C$32" or Target.Address = "$D$32" Then

    domingo, 5 de novembro de 2006 13:30
    Moderador
  • Tente formatar as células onde terão as datas como "dd/mm/aa".

    Private Sub Calendar1_DblClick()
        ActiveCell.NumberFormat = "dd/mm/yy"
        ActiveCell = Calendar1
    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If ActiveCell.NumberFormat = "dd/mm/yy" Then
                Calendar1.Visible = True
             Else
            Calendar1.Visible = False
        End If
    End Sub

    Assim, qdo vc selecionar uma célula onde tem uma data, o calendário será exibido.

    segunda-feira, 6 de novembro de 2006 18:25
  • Prezado Marlon,

     

    Infelismente o código que você me enviou não funcionou! Você poderia anexar um exemplo funcionando para ver onde estou errando?

     

    Atenciosamente
    Daniel Leite
    danieldellove@hotmail.com

    segunda-feira, 13 de novembro de 2006 14:30
  • Amigo postei com outro usuário de forma equivocada, então só para reforçar, se for possível você me enviar um exemplo pronto eu ficarei muito agradecido.

     

    Atenciosamente
    Daniel Leite
    danieldellove@hotmail.com

    segunda-feira, 13 de novembro de 2006 14:35