Pergunte aqui
1

Imputar dados de Caixa de Dialogo em planilha Calc

perguntadas 2018-06-13 17:01:03 +0100

imagem do gravatar de Schiavinatto

updated 2021-01-05 14:54:09 +0100

Em uma planilha de cadastro, como montar a macro que pegue os dados digitados na Caixa de Dialogo e grave na planilha.

Alguém tem um exemplo básico desta macro?

O Dialogo é do próprio arquivo .

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

4 Respostas

1

respondidas 2018-06-13 20:27:29 +0100

imagem do gravatar de Conrado

updated 2018-06-13 20:58:23 +0100

Veja se te ajuda Gilberto

http://www.matsuura.com.br/2015/03/tr...

Estou aprendendo ainda...mas consegui chegar no resultado. Mais linhas que o Junio informou, mas cheguei :)

C:\fakepath\caixa de dialogo.ods

Até.

editar assinalar como ofensivo Excluir Link mais

Comentários

Ola @Conrado, obrigado pelo exemplo. Estou compartilhando a melhoria feita no seu exemplo. Desta maneira a quantidade de Campos do Dialogo para a Planilha não será problema.

Vide arquivo...

imagem do gravatar de SchiavinattoSchiavinatto ( 2018-06-14 18:51:23 +0100 )editar

Olá @Gilberto Schiavinatto,

Fico contente em ter ajudado.

imagem do gravatar de ConradoConrado ( 2018-06-15 15:15:27 +0100 )editar
imagem do gravatar de SchiavinattoSchiavinatto ( 2018-07-31 16:33:42 +0100 )editar
2

respondidas 2018-06-13 20:27:32 +0100

imagem do gravatar de Júnio Vieira

updated 2018-06-18 12:04:22 +0100

imagem do gravatar de Olivier

Boa tarde,

Gilberto, segue exemplo de macro:

Sub Inserir()

ThisComponent.Sheets.GetByName("Plan1").GetCellRangeByName("A1").String = frmCadastro.GetControl("textfield1").Text.

End Sub

Onde: 1. ThisComponent.Sheets.GetByName("Plan1").GetCellRangeByName("A1").String = Célula que vai receber o texto da caixa de texto 2. frmCadastro = nome do formulário onde contém a caixa de texto 3. "textfield1" = nome do controle caixa de texto

Obs caso trabalhe com valores utilize o controle "campo numerico" ao invés de "textfield".

Importante ressaltar que para a macro funcionar o formulário deve estar previamente carregado.

editar assinalar como ofensivo Excluir Link mais
0

respondidas 2020-06-23 04:06:46 +0100

imagem do gravatar de williamSimao

updated 2020-06-23 04:19:46 +0100

imagem do gravatar de Schiavinatto

ola boa noite veja se pode me ajudar eu vi a planilha com modelo DIALOG igual que eu preciso mas eu nao consigo anexar as colunas com as caixa de txtfield em cada coluna eles só vai até a coluna C eu queria que fosse até F G etc... segue meu codigos retirado de vocês .Obrigado pelo ajuda

REM  *****  BASIC  *****

Dim oDialog1 As Object

Sub Dialog1Show
DialogLibraries.LoadLibrary( "Standard" )
oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
oDialog1.Execute()
End Sub

Sub readDialog1()
    Call DialogoParaPlanilha  "TextField1"
    Call DialogoParaPlanilha  "TextField2"
    Call DialogoParaPlanilha  "TextField3"
    Call DialogoParaPlanilha  "TextField4"
    Call DialogoParaPlanilha  "TextField5"
    Call DialogoParaPlanilha  "TextField6"
    Call DialogoParaPlanilha  "TextField7"
End Sub


''====================================================
Sub DialogoParaPlanilha (x As String )
''  ATENÇÃO ==========================================
'''''' Para esta SubMacro funcionar
'''''' o Campo do Dialogo e a Célula que vai receber
'''''' a informação tem que estar com o mesmo nome.
'' ====================================================
dim document   as object
dim dispatcher as object
''oT1 = oDialog1.GetControl("TextField1")
oT1 = oDialog1.GetControl(x)
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")   
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
''args1(0).Value = "$Planilha1.$A$1"
args1(0).Value = x
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = oT1.Text
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "StringName"
args3(0).Value = oT1.Text
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "StringName"
args4(0).Value = oT1.Text
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "StringName"
args5(0).Value = oT1.Text
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args5())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "StringName"
args6(0).Value = oT1.Text
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args6())
rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "StringName"
args7(0).Value = oT1.Text
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args7())

End Sub
editar assinalar como ofensivo Excluir Link mais

Comentários

Ola, @williamSimao, segue uma planilha nova com 6 campos, a alteração é simples:

Acertar a macro readDialog1(), como fez OK

Acertar a Caixa de Dialog

O segredo como esta observado na macro DialogoParaPlanilha e nomear na planilha a célula (1) que ira receber a informação com o mesmo nome do TextField (2)

Descrição da imagem

Aproveitei e tirei "gordura" da macro. Abraço.....

imagem do gravatar de SchiavinattoSchiavinatto ( 2020-06-23 04:48:05 +0100 )editar

Obrigado é isso que eu precisava , mais uma informação , para colocar esses dados na LINHA 2 como faço essa mudança?

imagem do gravatar de williamSimaowilliamSimao ( 2020-06-23 11:43:56 +0100 )editar

Clique no numero 1 da linha e clique direito e inserir linha acima.

Ou recortar e colar, desta maneira ela carrega a nomeação da célula.

imagem do gravatar de SchiavinattoSchiavinatto ( 2020-06-23 14:01:08 +0100 )editar

Obrigado deu certinho que precisava .!

imagem do gravatar de williamSimaowilliamSimao ( 2020-06-24 01:49:36 +0100 )editar
0

respondidas 2020-11-21 17:06:48 +0100

O meu programa está dando o erro "Sub ou procedimento Fuction não definido"

editar assinalar como ofensivo Excluir Link mais

Comentários

Ola @victoria_storino, não use Adicionar resposta para comentários, Grato.

Me envie o arquivo para dar uma olhada. gilberto@schiavinatto.com

imagem do gravatar de SchiavinattoSchiavinatto ( 2020-11-21 17:35:50 +0100 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2018-06-13 17:01:03 +0100

Lidas: 672 vezes

Última atualização: Jan 05