Combobox encadeadas...
 
Notifications
Clear all

Combobox encadeadas com Datas

7 Posts
2 Usuários
0 Reactions
2,051 Visualizações
(@vitor)
Posts: 57
Trusted Member
Topic starter
 

Boa tarde
Alguém sabe me dizer se tem como colocar data em combobox ? Tipo tenho três combobox (uma pra Ano, outra pra Mês e outra pra Dia). Tem como usar o calendário do sistema (ou do excel) para pegar os dados ? Ou precisa escrever os dados em uma planilha e buscar esses valores ?
Os dias disponíveis na caixa de combinação do dia devem ser equivalentes ao mês selecionado (sem exibir itens nulos). Por exemplo:
-Se o usuário selecionar 2008 e fevereiro, automaticamente haverá 29 dias disponíveis na caixa de combinação do dia.
-Se o usuário selecionar 2009 e maio, automaticamente haverá 31 dias disponíveis na caixa de combinação do dia.
Se possível levando em consideração os anos bissextos.
Ficou claro ? Segue o anexo:

 
Postado : 29/08/2012 1:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde Vitor

Utilize o banco de dados do fórum.
Veja se este tópico pode te ajudar:

viewtopic.php?f=23&t=5098&p=26722&hilit=Calend%C3%A1rio+no+excel#p26722

Um abraço.

 
Postado : 29/08/2012 3:02 pm
(@vitor)
Posts: 57
Trusted Member
Topic starter
 

Bom dia Patropi,
olhei os exemplos e não entendi muito bem.
Acredito que não se encaixa no meu caso também, pelo que li eles tem um calendário no formulário. não posso colocar um calendário no formulário.
tem como ? Sei lá, tem que colocar um calendário numa planilha? buscar a data do sistema ?
desde já, obrigado

 
Postado : 03/09/2012 7:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Segue uma possibilidade

 
Postado : 03/09/2012 10:30 am
(@vitor)
Posts: 57
Trusted Member
Topic starter
 

Boa tarde
Tá dando erro, "impossível localizar a biblioteca" Reinaldo. :
mas desde já, obrigado

 
Postado : 06/09/2012 12:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não sei o que é o erro, pois não acrescentei nada externo.
Experimente verificar em referencias Editor VBE , Ferramentas -->Referencias) se aparece alguma que esteja assinalada como ausente, se houver tente localiza-la ou desabilite-a
Mas segue os codigos:

Private Sub cmbMês_Change()
carDias
cmbDia.Value = ""
End Sub

Sub Image1_Click()
Cadastrar.Show
cmbAno.Value = Empty
cmbDia.Value = Empty
cmbMês.Value = Empty
chkleve.Value = False
chkmédio.Value = False
chkpesado.Value = False
chksuper.Value = False

End Sub

Sub UserForm_Initialize()
 'não permitindo a digitação
 cmbAno.Style = fmStyleDropDownList
 cmbMês.Style = fmStyleDropDownList
 cmbDia.Style = fmStyleDropDownList
'Carrega os anos e inicia com o atual
carAno
cmbAno.Value = Year(Date)
'Carrega os meses e inicia com o atual
carMês
cmbMês.Value = Application.WorksheetFunction.Proper(Format(Date, "mmmm"))
'Carrega os dias do mes e inicia com o atual
carDias
cmbDia.Value = Day(Date)
End Sub

Private Sub carAno()
Dim anoAd
    For anoAd = 2008 To 2049
        cmbAno.AddItem (anoAd)
    Next
End Sub

Private Sub carMês()
Dim tp(), pt As Long
tp = Array("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro")
    For pt = 0 To 11
        cmbMês.AddItem (tp(pt))
    Next
End Sub

Private Sub carDias()
Dim dtInic As Date, dtFim As Date, Ano As Long, Mês As Long
dtInic = CDate("01/" & cmbMês.ListIndex + 1 & "/" & cmbAno.Value)
dtFim = CDate("01/" & cmbMês.ListIndex + 2 & "/" & cmbAno.Value)
For dt = dtInic To dtFim - 1
cmbDia.AddItem (Day(dt))
Next
End Sub
 
Postado : 06/09/2012 12:59 pm
(@vitor)
Posts: 57
Trusted Member
Topic starter
 

não sei qual referência ativar :
mas pretendo fazer outra coisa (a lógica já tenho)
todo ano bissexto é divisel por 4
daí vou adicionar os anos e os meses nas combobox
adicionar os dias aos meses (exceto fevereiro)
quando o ano for divisel por 4 adiciona-se 29 dias ao mês de fevereiro (no combobox de dias)
se não, adiciona 28.
só que ai tenho que encadear as combobox
vi na internet como faz, deu certo, mas não entendi o processo (foi no ctrl+c e ctrl+v)
tem como criar um código com base nisso ? e se possível explicando o processo ><'
desde já obrigado ^^

 
Postado : 26/09/2012 12:56 pm