Página 1 de 1

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

Enviado: 16 Set 2015 às 21:04
por Matheus94
Boa noite

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

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:
Imagem

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.
Imagem

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

Agradeço desde já,

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

Enviado: 17 Set 2015 às 08:44
por alexandrevba
Bom dia!!

Eu não sei se percebi direito, mas os problemas será apenas a referência das instalações em será usado o calendário.

Se o calendário deve ser usado, te garanto que não haverá como evitar o uso de VBA (a não ser que você queira fazer um calendário na célula do excel via formula).

Att

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

Enviado: 28 Set 2015 às 15:52
por MauroCoutinho
Matheus, não tenho nada contra de se utilizar de mais de um forum para conseguir soluções mais rápida, mas lembre-se de atualizar todos quando da resposta positiva em um deles.

Esta questão foi resolvida no Forum : http://www.planilhando.com.br/forum/vie ... 10&t=17378 com a seguinte sugestão :
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 :
Código: Selecionar todos
 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 :
Código: Selecionar todos
    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
[]s