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 .
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 .
Boa tarde,
Gilberto, segue exemplo de macro:
Sub Inserir()
ThisComponent.Sheets.GetByName("Plan1").GetCellRangeByName("A1").String = frmCadastro.GetControl("textfield1").Text.
End Sub
Onde:
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.
Veja se te ajuda Gilberto
Estou aprendendo ainda…mas consegui chegar no resultado.
Mais linhas que o Junio informou, mas cheguei
Até.
Ola @Conras, 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.
Veja também este:
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
Ola, @williamSimao, segue uma planilha nova com 6 campos|attachment, 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)
Aproveitei e tirei “gordura” da macro. Abraço…
Obrigado é isso que eu precisava , mais uma informação , para colocar esses dados na LINHA 2 como faço essa mudança?
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.
Obrigado deu certinho que precisava .!
O meu programa está dando o erro “Sub ou procedimento Fuction não definido”
Ola @victoria_storino, não use Adicionar resposta para comentários, Grato.
Me envie o arquivo para dar uma olhada. gilberto@schiavinatto.com