Notifications
Clear all

variaveis nulas

5 Posts
1 Usuários
0 Reactions
1,069 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

pessoal tenho o seguinte codigo para carregar dados da planilha para o formulario vou postar a parte do problema:
...
Me.HorasdeReprocesso.Text = Format(.Cells(indiceRegistro, colHorasdeReprocesso).Value, "Standard")
Me.Performance.Text = Format(.Cells(indiceRegistro, colPerformance).Value, "Percent")
Me.Disponibilidade.Text = Format(.Cells(indiceRegistro, colDisponibilidade).Value, "Percent")
Me.Qualidade.Text = Format(.Cells(indiceRegistro, colQualidade).Value, "Percent")
Me.OEE.Text = Format(.Cells(indiceRegistro, colOEE).Value, "Percent")
Me.Horas.Text = Format(.Cells(indiceRegistro, colHoras).Value, "Standard")
...
Agora quando devolvo os dados do formulario para a planilha :

.Cells(indice, colTotalHorasFinal).Value = CDbl(Me.TotalHorasFinal.Text)
.Cells(indice, colHorasdeProducao).Value = CDbl(Me.HorasdeProducao.Text)
.Cells(indice, colHorasdeReprocesso).Value = Me.HorasdeReprocesso.Text
.Cells(indice, colPerformance).Value = Me.Performance.Text
.Cells(indice, colDisponibilidade).Value = Me.Disponibilidade.Text
.Cells(indice, colQualidade).Value = Me.Qualidade.Text
.Cells(indice, colOEE).Value = Me.OEE.Text
.Cells(indice, colHoras).Value = CDbl(Me.Horas.Text)

Aonde (horas de reprocesso) contem campos "" (vazios na planilha) e (performance) contem valores procentagem(56%)

O problema quando gravo os valores do formulario novamente na planilha eles vão como texto.
Qual variavel declarar para evitar isto sem alterar a maneira dos dados serem inseridos no caso do valor de procentagem, voltar como veio para o formulario.

 
Postado : 15/11/2011 7:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

gero, see entendi, tente assim:

Horas
.Cells(indice, colTotalHorasFinal).Value = Format(Me.TotalHorasFinal.Text, "hh:mm")

Horas
.Cells(indice, colHorasdeProducao).Value = Format(Me.HorasdeProducao.Text, "hh:mm")

Porcentagem
.Cells(indice, colPerformance).Value = Format(Me.Performance.Text, "0.00%")

faça as alterações, teste e qq coisa retorne.

[]s

 
Postado : 15/11/2011 2:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

mauro quanto aos campo horas sem problema, meu problema esta no campo Me.HorasdeReprocesso.Text na planilha ele esta vazio se fizer alteração nele para qualquer valor ele é armazenado como texto, preciso que ele fica como numero.
Sua dica para os campos de porcentagem também não resolveram ficaram como texto.

Alguma dica de como tratar com campos nulos em valores numericos e porcentagem para não gravar como texto....

Veja o codigo em azul funciona em vermelho preciso fazer funcionar :
Private Sub SalvaRegistro(ByVal id As Long, ByVal indice As Long)
With wsCadastro
.Cells(indice, colCodigo).Value = id
.Cells(indice, colMaquina).Value = Me.Maquina.Text
.Cells(indice, colData).Value = Format(Me.Data.Text, "mm/dd/YY")
.Cells(indice, colHoraInicio).Value = CDbl(Me.HoraInicio.Text)
.Cells(indice, colHoraFim).Value = CDbl(Me.HoraFim.Text)
.Cells(indice, colTotalHora).Value = CDbl(Me.TotalHora.Text)
.Cells(indice, colHorasProducao).Value = CDbl(Me.HorasProducao.Text)
.Cells(indice, colUtilizacao).Value = CDbl(Me.Utilizacao.Text)

.Cells(indice, colUsinagemManual).Value = Me.UsinagemManual.Text
.Cells(indice, colHorasSemOperador).Value = Me.HorasSemOperador.Text
.Cells(indice, colDescontos).Value = CDbl(Me.Descontos.Text)
.Cells(indice, colUtilizacaoFinal).Value = CDbl(Me.UtilizacaoFinal.Text)
.Cells(indice, colTotalHorasFinal).Value = CDbl(Me.TotalHorasFinal.Text)
.Cells(indice, colHorasdeProducao).Value = CDbl(Me.HorasdeProducao.Text)

.Cells(indice, colHorasdeReprocesso).Value = Me.HorasdeReprocesso.Text
.Cells(indice, colPerformance).Value = Me.Performance.Text
.Cells(indice, colDisponibilidade).Value = Me.Disponibilidade.Text
.Cells(indice, colQualidade).Value = Me.Qualidade.Text
.Cells(indice, colOEE).Value = Me.OEE.Text

.Cells(indice, colHoras).Value = CDbl(Me.Horas.Text)
.Cells(indice, colPrincipalMotivo).Value = CVar(Me.PrincipalMotivo.Text)

End With

Call AtualizaRegistroCorrente
End Sub

 
Postado : 15/11/2011 2:51 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Gero, se não deu certo, você terá de formatar a celula após os lançamentos, veja ni tópico abaixo como proceder :

Formatar Celulas VBA
viewtopic.php?f=10&t=1827&p=7339&hilit=numberformat#p7339

[]s

 
Postado : 15/11/2011 5:05 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Beleza mauro era exatamente isto que eu estava procurando...
Valeu pela ajuda...

 
Postado : 16/11/2011 1:48 am