Caixa de seleção de...
 
Notifications
Clear all

Caixa de seleção de Mês e ano (userform) - Calendar Control

4 Posts
2 Usuários
0 Reactions
1,465 Visualizações
(@matheus-94)
Posts: 4
New Member
Topic starter
 

Boa noite

Atualmente, possuo um calendário em userform que utilizo para entregar determinado mês e ano para determinada macro:

Adaptei esse calendário para os propósitos necessários e necessito apenas da caixa de seleção de mês e ano (o dia sempre como 1), e que ele me entregue essa data para a macro, oque acontece normalmente hoje:

O problema é que esse calendário não funciona em todos os computadores, parece que é algum problema de não ter o calendario nas versões posteriores a 2010.. Gostaria de uma sugestão para substitui-lo e que funcione em todas as versões do Excel.

Segue também a referencia do calendário, o calendar control

Agradeço desde já,

 
Postado : 16/09/2015 5:54 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Infelizmente algumas atualizações das versões do excel regrediram, pelo menos no quesito complementos, mas se quer somente o MES e ANO e que o dia seja sempre o dia primeiro, e observando em sua imagem ve-se que tem os dois combos (MES e ANO) porque utilizar o Calendar, carregue os combos com os meses e anos e defina uma variavel com o dia = a 1 e monte a data completa no resultado.

Supondo que seus combos tenham os seguintes nomes :
cbo_meses e cbo_Anos, no Evento Initialize do formulário coloque a rotina abaixo :

Private Sub UserForm_Initialize()
    Dim k As Byte
    Dim x
    Dim sMes
    Dim sAno

    sMes = Month(Date) - 1
    sAno = Year(Date)

    For k = 1 To 12
        cbo_meses.AddItem MonthName(k)
    Next k
    cbo_meses.ListIndex = sMes
    
    For x = 2015 To 2020
        cbo_Anos.AddItem (x)
    Next x
   cbo_Anos.Value = sAno

End Sub

Como não indicou como faz para obter o retorno, coloque a rotina abaixo em novo botão ou o que você utiliza, só ajuste o nome do botão :

Private Sub CommandButton1_Click()
    Dim data_completa As Date
    Dim sDia, vMes, vAno

    sDia = 1
    vMes = cbo_meses.Value
    vAno = cbo_Anos.Value

    data_completa = sDia & "/" & vMes & "/" & vAno

    MsgBox data_completa
    
End Sub

Espero que seja isto e ajude.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 16/09/2015 7:13 pm
(@matheus-94)
Posts: 4
New Member
Topic starter
 

Obrigado Mauro, resolveu meu problema... já substitui, eu sou novato ainda e não estava tendo sucesso com as combo box.... você tem alguma sugestão para estudar VBA sozinho?

 
Postado : 21/09/2015 5:36 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Obrigado Mauro, resolveu meu problema... já substitui, eu sou novato ainda e não estava tendo sucesso com as combo box.... você tem alguma sugestão para estudar VBA sozinho?

Se servir de incentivo, eu nunca fiz nenhum curso em VBA em escola, tudo o que sei e ainda estou aprendendo foi autodidata, comprei alguns livros em sebos porque na epoca a internet era discada e muito cara, e apesar disto conectava so apos a meia noite devido ao custo e participava de varios foruns solicitando ajuda, e o diferencial hoje é que temos muitos sites com cursos gratuitos e os foruns são ótimos para aprendermos.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 21/09/2015 5:53 pm