Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

pedro_mexico

ajuda com formatacao de calendário e preencher automaticamente textbox com resultado

Mensagens Recomendadas

pedro_mexico    0
pedro_mexico

Boa Noite

Precisa de uma ajuda.

tenho um formulário para calcular os dias de férias.

tenho 1 textbox com a data de inicio ,ao lado botão para abrir calendário, depois textbox com o fim das ferias, ao lado botão para calendário. e por mim textbox que seria para dar o resultado dos dias de ferias gozados.

mas a primeira duvida é:

Primeiro:ao clicar em cima da data do calendário, ele preenche a textbox, mas a formatação fica mm/dd/yyyy.

o que eu queria era que ele colocasse por dd-mm-yyyy.

Tenho estes codigos inseridos no calendário.sao os unicos onde aparece a formatacao dos dias meses anos

"Option Explicit

Dim vDateSelectedVar As Date

Public Property Get SelectDate() As Date

SelectDate = vDateSelectedVar

End Property

Private Sub UserForm_Initialize()

'A data inicial é a atual:

lblHoje = "Hoje: " & Format(Date, "mm-dd-yyyy")

sb = Year(Date) * 12 + Month(Date)

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

'Impede que se dê Unload no formulário, caso contrário a linha que testa

'frm.Tag na linha seguinte do módulo mdlCalendário dará erro, pois o objeto

'deixará de existir. Ao invés de dar Unload, usa-se Hide para o objeto

'continuar a existir na memória.

If CloseMode = vbFormControlMenu Then

Cancel = True

Hide

End If

End Sub

Private Sub lblHoje_Click()

'Quando se clica no Label do dia atual, o calendário atualiza-se

'para o mês atual.

'O modo de cálculo do mês em questão é o número de meses.

'Como um ano possui 12 meses, o valor da ScrollBar é o número

'total de meses:

sb = Year(Date) * 12 + Month(Date)

End Sub

Private Sub sb_Change()

'Deve-se atualizar o calendário ao alterar a ScrollBar.

'O valor do calendário é uma divisão inteira (observe o símbolo \)

'de anos e o resto do valor por 12 como mês:

Atualizar DateSerial(sb \ 12, sb Mod 12, 1)

End Sub

Private Sub Atualizar(dt As Date)

'Rotina que atualiza todos os Label do calendário

Dim l As Long

Dim c As Long

Dim cInício As Long

Dim dtDia As Date

Dim ctrl As control

lblMêsAno = Format(dt, "mmmm yyyy")

For l = 1 To 6 'Linhas do calendário

For c = 1 To 7 'Colunas do calendário

Set ctrl = Controls("l" & l & "c" & c)

'O entendimento da linha abaixo é fundamental para entender como todos os

'labels foram povoados:

dtDia = DateSerial(Year(dt), Month(dt), (l - 1) * 7 + c - Weekday(dt) + 1)

ctrl.Caption = Format(Day(dtDia), "00")

ctrl.Tag = dtDia

'Dias de um mês diferente do mês visualizado ficarão na cor cinza claro:

If Month(dtDia) <> Month(dt) Then

ctrl.ForeColor = &H808080

Else

ctrl.ForeColor = &H0

End If

'Realçar dia atual presente, caso esteja visível no calendário:

If dtDia = Date Then

ctrl.ForeColor = &HFF&

End If

Next c

Next l

End Sub"

Segundo, era se é possível , depois de colocar a data na "textbox da data de fim das férias" e ao mudar de textbox para a "textbox do resultado" ele fazer a conta e dar automaticamente o resultado.

Aguardo uma ajuda, todas elas são bem-vindas

Editado por pedro_mexico

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.