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