Pergunte aqui
1

Armazena os dados na próxima linha disponivel do formulários

perguntadas 2016-08-15 18:48:12 +0200

esta mensagem está marcada como wiki comunitário

Esta mensagem é um wiki. Qualquer pessoa com karma >75 é bem-vinda para a melhorar.

Boa tarde

Estou criando um formulário no calc onde salva os dados em uma plan2. todos os dados estão sendo saldo, porem a data esta indo como texto ex: ('15/06/2016), como corrigir?

Sub Guardar_Datos()
'-------------------------------------------------------------------
   Dim xDato As Variant, nRow As Long

   If MsgBox( "Você deseja salvar as alterações?", 33, "Diálogo en Calc" ) =  1 Then
      nRow = UltimaFila( 1 )
      With oDialogo.Model
         xDato = .DateField1.Text
         ThisComponent.Sheets(1).GetCellByPosition(0,nRow).SetFormula( xDato ) "estas que esta dando erro!!!!!"
     xDato = .TextField2.Text
     ThisComponent.Sheets(1).GetCellByPosition(1,nRow).SetFormula( xDato )

     xDato = .TextField3.Text
     ThisComponent.Sheets(1).GetCellByPosition(2,nRow).SetFormula( xDato )

     xDato = .TextField4.Text
     ThisComponent.Sheets(1).GetCellByPosition(3,nRow).SetFormula( xDato )

     xDato = .TextField5.Text
     ThisComponent.Sheets(1).GetCellByPosition(5,nRow).SetFormula( xDato )

     xDato = .TextField6.Text
     ThisComponent.Sheets(1).GetCellByPosition(6,nRow).SetFormula( xDato )

     xDato = .TextField7.Text
     ThisComponent.Sheets(1).GetCellByPosition(7,nRow).SetFormula( xDato )

     xDato = .TextField8.Text
     ThisComponent.Sheets(1).GetCellByPosition(8,nRow).SetFormula( xDato )

     xDato = .TextField9.Text
     ThisComponent.Sheets(1).GetCellByPosition(9,nRow).SetFormula( xDato )

     xDato = .TextField10.Text
     ThisComponent.Sheets(1).GetCellByPosition(10,nRow).SetFormula( xDato )


     xDato = .ComboBox1.Text
     ThisComponent.Sheets(1).GetCellByPosition(4,nRow).SetFormula( xDato )


     .DateField1.Text = ""
     .TextField2.Text = ""
     .TextField3.Text = ""
     .TextField4.Text = ""
     .TextField5.Text = ""
     .TextField6.Text = ""
     .TextField7.Text = ""
     .TextField8.Text = ""
     .TextField9.Text = ""
     .TextField10.Text = ""


     .ComboBox1.Text = ""
     End With
   End If
End Sub
editar alterar tag assinalar como ofensivo fechar mesclar Excluir

3 Respostas

0

respondidas 2016-08-18 14:20:47 +0200

imagem do gravatar de Grafeno

Bom dia,


Para corrigir você deve inserir a data na célula como um valor. Então, você pode usar a função DATEVALUE() do LibO Basic para converter a cadeia de texto extraída do Campo de data para um valor de data.

Além disso, SetFormula deve ser usado para quando se deseja inserir uma fórmula na célula. Para o seu caso, o correto seria:

  • SetValue() --> Para inserir um valor
  • SetString() --> Para inserir um texto


Portanto, substitua a linha que está dando erro para:

xDato = .DateField1.Text
ThisComponent.Sheets(1).GetCellByPosition(0,nRow).SetValue( DateValue(xDato) )


E para reparar o uso indevido do SetFormula, altere as demais linhas como a seguinte:

xDato = .TextField2.Text
ThisComponent.Sheets(1).GetCellByPosition(1,nRow).SetString( xDato )


Atte,
Grafeno

editar assinalar como ofensivo Excluir Link mais

Comentários

1

Obrigado pela ajuda foi realizado a correção e esta corrigido gostaria de postar o arquivo completo para melhora ele mais ainda, mais não sei se pode! Obrigado

imagem do gravatar de JamilsonJamilson ( 2016-08-21 16:50:10 +0200 )editar

@Jamilson, é possível sim postar os arquivos no AskLibO. Mas, para isso a pessoa precisa de um certo número de karma (pontos). Aqui diz que é 3 de Karma. Então, você poderá anexar (ícone de clipe) seu arquivo na sua próxima pergunta. Atte, Grafeno.

imagem do gravatar de GrafenoGrafeno ( 2016-08-22 16:02:44 +0200 )editar
0

respondidas 2019-04-10 13:57:56 +0200

imagem do gravatar de Júnio Vieira

updated 2019-04-10 13:58:59 +0200

Bom dia, outra solução é utilizar a função CDate() antes da caixa de data, por exemplo: ThisComponent.Sheets(1).GetCellByPosition(0,nRow).SetValue(CDate(xDato) )

editar assinalar como ofensivo Excluir Link mais
0

respondidas 2016-08-16 04:06:24 +0200

updated 2016-08-16 18:46:19 +0200

Ops.. Não sei como corrigir a macro acima, mas dou uma solução mais simples, com macro feita pelo gravador, vide arquivo. Uso Win10 + LibO 5.2.0.4

editar assinalar como ofensivo Excluir Link mais

Comentários

Gilberto Bom dia Esta resposta também atende, eu perguntei ao Antonio se tem como posta o arquivo completo para melhorar ele mais não sei se pode!!

obrigado pela resposta

imagem do gravatar de JamilsonJamilson ( 2016-08-21 16:52:45 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2016-08-15 18:48:12 +0200

Lidas: 189 vezes

Última atualização: Apr 10