CODIGO PARA REGISTR...
 
Notifications
Clear all

CODIGO PARA REGISTRO DE DATA COM CALENDARIO NO VBA

6 Posts
2 Usuários
0 Reactions
2,022 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite
Estou montando um programinha e necessito de um help. Baixei um codigo do Tomaz Vásques porem nao estou conseguindo realizar o registro da data atraves do calendario.
Eu registro os dados mas a data nao sai na mesma linha
Segue anexo a plan para avaliação
Agradeço se puderem ajudar

Roger

 
Postado : 30/08/2012 7:09 pm
(@mikel-silveira-fraga)
Posts: 41
Trusted Member
 

rogerparana, bom dia.

Cara, estive dando uma olhada neste trabalho que vc esta fazendo, e esta ficando bem legal.

Em relação a data, não conheço mto bem este componete Calendar que vc esta utilizando, mas pelo que percebi esta ocorrendo um erro na lógica do programa. o correto seria vc escolher uma data pelo obj.Calendar e, quando vc apertasse o botão Ok, todas as informações fossem para a planilha.

O q tem ocorrido é que vc clica no calendário, a data já vai pra planilha e, quando vc clica no botão Ok, ele verifica as linhas que estão em branco e, como a data já foi inserida para o registro, acaba sendo inserido na linha abaixo.

Vou dar uma sugestão: crie um outro TextBox, por exemplo um TextBoxData e, no evento Calendar1_Click, mude a seguinte linha de código:

ActiveCell.Value = DateValue(dia & "/" & mes & "/" & ano)

para

TextBoxData.Value = DateValue(dia & "/" & mes & "/" & ano)

Outra alteração que deve ser feita é no método SalvarRegistro. Neste método, altere a sequinte linha de comando:

'.Cells(indice, colDataDoLouvor).Value = Me.txtDataDoLouvor.Text
para
.Cells(indice, colDataDoLouvor).Value = Me.TextBoxData.Text

Teste essas alterações sugeridas e veja se resolve seu problema, ok.

Abraços.

 
Postado : 31/08/2012 5:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mikel, bom dia
Exatamente o que eu precisava!

Aproveitando o help, eu estou digitando as horas e esta gravando corretamente, porem, qndo vou vizualizar, me retorna em decimal
tu sabes me dizer como resolvo isso?
Em anexo

Preciso abrir outro topico?

Obrigado guri
Abraços

Rogerio

 
Postado : 31/08/2012 8:41 am
(@mikel-silveira-fraga)
Posts: 41
Trusted Member
 

Fala rogerparana, isso ai. Ficou bacana a sua implementação.

Em relação a formatação, segue um código para adaptação.

Private Sub CarregaRegistro()
'carrega os dados do primeiro registro
    With wsCadastroLouvor
        If Not IsEmpty(.Cells(indiceRegistro, colCodigoDoLouvor)) Then
            Me.txtCodigoDoLouvor.Text = .Cells(indiceRegistro, colCodigoDoLouvor).Value
            Me.TextBoxData.Text = Format(.Cells(indiceRegistro, colTextBoxData).Value, "dd/mm/yyyy")
            Me.cbDiaDaSemana.Text = .Cells(indiceRegistro, colDiaDaSemana).Value
            Me.cbTipoDeEvento.Text = .Cells(indiceRegistro, colTipoDeEvento).Value
            Me.cbPeriodoDoLouvor.Text = .Cells(indiceRegistro, colPeriodoDoLouvor).Value
            Me.txtCidadeDoLouvor.Text = .Cells(indiceRegistro, colCidadeDoLouvor).Value
            Me.txtMinistroDoLouvor.Text = .Cells(indiceRegistro, colMinistroDoLouvor).Value
            Me.txtHorasDoLouvor.Text = Format(.Cells(indiceRegistro, colHorasDoLouvor).Value, "hh:mm")
        End If
    End With

    Call AtualizaRegistroCorrente
End Sub

O que ocorre. Quando informamos datas e números, o Excel converte isso para numeros decimal, porém quando esses valores são informados com suas caracteristicas de formatação (data "00/00/0000" e horas "00:00:00"), ele mantem a visualização da forma que você informou.

Quando é carregado para os objetos do formulário, ele puxa o valor real, no caso o decimal. Então deve ser acrescentado um comando para que esse valor seja formatado como datas e horas. veja as linhas de comando em destaques abaixo.

            Me.TextBoxData.Text = Format(.Cells(indiceRegistro, colTextBoxData).Value, "dd/mm/yyyy")
            Me.txtHorasDoLouvor.Text = Format(.Cells(indiceRegistro, colHorasDoLouvor).Value, "hh:mm")

O comando Format(Valor Informado,Formato Exigido) é utilizado exatamente para esses tipos de situações. Existem várias outras formatações, mas dentro da situação q vc precisava, acredito q esse caso lhe ajude.

Abraços.

 
Postado : 31/08/2012 8:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mikel, ficou muito bom, exato o que eu precisava
Segue anexo, o modelo do projeto inteiro, ainda preciso concluir
Qndo clicar em exportar no form pesquisa do cadastro , preencher a planilha escala e gerar uma copia em pdf da mesma.
Mas Vou pedindo ajuda pra galera aki, e aprendendo

abraço e Obrigado

Rogerio

 
Postado : 31/08/2012 10:45 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!
Use nossa base de dados!!

viewtopic.php?f=10&t=4805&hilit=gerar+arquivo+em+PDF

Att

 
Postado : 01/09/2012 3:55 pm