Notifications
Clear all

Monthview Formatar Data

5 Posts
2 Usuários
0 Reactions
1,635 Visualizações
(@betorubini)
Posts: 57
Trusted Member
Topic starter
 

Ola alguém me ajuda a formatar a data num monthview.

Pois está cadastrando na planilha como mm/dd/aaaa
tem que ser por "código" pois a coluna "data" da planilha tem que estar formatada como "texto"

Gostaria de formatar como dd/mm/aaaa

Obrigado

 
Postado : 18/06/2013 2:34 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O ideal seria ter postado a rotina que está utilizando ou um modelo simplificado, então vamos pela suposição que ao exibir o Control Calendar quando clicar em algum dia o mesmo é lançado em uma celula na planiilha, e você quer alterar a formatação, então tente o seguinte :

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
    On Error Resume Next
    Dim cell As Object
    For Each cell In Selection.Cells
        cell.Value = Format(DateClicked, "dd/mm/yyyy")
    Next cell
    Unload Me
End Sub

Veja no exemplo anexo se atende :

A Pop-up Calendar for Excel

Adaptado do exemplo tirado do site abaixo, tem dois exemplos para baixar, um como arquivo outro ADD-IN.
http://fontstuff.com/vba/vbatut07.htm

Veja tambem :
Usando Controle MonthView
http://msdn.microsoft.com/en-us/library ... 56(v=vs.60).aspx

[]s

 
Postado : 18/06/2013 5:09 pm
(@betorubini)
Posts: 57
Trusted Member
Topic starter
 

Mauro
A rotina que estou usando é

Private Sub cmdAgendar_Click()

Dim dia As String
Dim mes As String
Dim ano As String

If IsNull(Calendar1.Value) Then
  MsgBox "Selecione uma data!", vbExclamation, ""
  Exit Sub
  End If

dia = Calendar1.Day
mes = Calendar1.Month
ano = Calendar1.Year

'Ativar a primeira planilha
ActiveWorkbook.Sheets("Agenda").Activate

'Selecionar a célula A2
Range("A2").Select

Dim wsCadastro  As Worksheet
Set wsCadastro = ThisWorkbook.Sheets("Agenda")
 With wsCadastro

Dim proximoId As Long
        proximoId = PegaProximoId
        'pega a próxima linha
        Dim proximoIndice As Long
        'atualiza o arquivo para pegar o próximo registro atualizado
        proximoIndice = wsCadastro.UsedRange.Rows.Count + 1
        Call SalvaRegistro(proximoId, proximoIndice)
        txtCodigoProduto = proximoId + 1
        
    'Atualizar codigo
        proximoId = PegaProximoId
        'pega a próxima linha
        'atualiza o arquivo para pegar o próximo registro atualizado
        proximoIndice = wsCadastro.UsedRange.Rows.Count + 1
             txtCodigoProduto = proximoId

'Do
 
   If IsEmpty(ActiveCell) = False Then
       ActiveCell.Offset(1, 0).Select
   End If
 
 Loop Until IsEmpty(ActiveCell) = True
 
 ActiveCell.Value = DateValue(dia & "/" & mes & "/" & ano)
 
 
 
  
'Limpar as caixas de texto
TxtCliente.Value = Empty
cboProfissional.Value = Empty
cboServiço.Value = Empty
txtObservações.Value = Empty
cbohorario = Empty

'Colocar o foco na primeira caixa de texto
TxtCliente.SetFocus

MsgBox "Horário agendado com sucesso", , ""

End With
End Sub

Não sei por que, mas a ordem dia,mes e ano indicado no código não funciona!
tentei inverter o "mes" pelo "dia" mas obtive o mesmo resultado

 
Postado : 18/06/2013 7:43 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Beto, você solicitou ajuda em Formatar Data do Controle Monthview, e a instrução que passei faz exatamente isto, capta o click no Monthview e lança na planilha como valor texto e formatado, então não entendi o porque tem instrução para Dia / Mes e Ano separada e depois juntar de novo.

Eu estou supondo que antes desta instrução :
If IsNull(Calendar1.Value) Then em algum momento foi chamado o controle Monthview, se sim o proprio click no monthview já lhe retorna a Data completa, dai é só utilizar a formatação conforme está na rotina :

ActiveCell.Value = Format(DateClicked, "dd/mm/yyyy")

[]s

 
Postado : 18/06/2013 8:18 pm
(@betorubini)
Posts: 57
Trusted Member
Topic starter
 

Desculpa Mauro, postei o rotina que eu estava usando como você tinha solicitado em seu primeiro post.
Mas obrigado pela ajuda outra vez!
também não sei explicar o por quê da intrução separada para depois junta-las, por eu copiei a rotina de uma planilha pronta.
Estou disponibilizando a mesma em anexo

 
Postado : 18/06/2013 9:01 pm