CODIGO PARA REGISTR...
 
Notifications
Clear all

CODIGO PARA REGISTRO DE DATA COM CALENDARIO NO VBA

6 Posts
2 Usuários
0 Reactions
2,027 Visualizações
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/08/2012 7:09 pm
(@mikel-silveira-fraga)
Posts: 41
Eminent 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.

Esclareceu suas dúvidas? Acrescente ao título do tópico a expressão: [RESOLVIDO].
Mikel Silveira Fraga
E-mail: [email protected]
Skype: mikelsf

 
Postado : 31/08/2012 5:59 am
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 31/08/2012 8:41 am
(@mikel-silveira-fraga)
Posts: 41
Eminent 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.

Esclareceu suas dúvidas? Acrescente ao título do tópico a expressão: [RESOLVIDO].
Mikel Silveira Fraga
E-mail: [email protected]
Skype: mikelsf

 
Postado : 31/08/2012 8:55 am
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 31/08/2012 10:45 am
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/09/2012 3:55 pm