Ir ao conteúdo
  • Cadastre-se

Outro Botão do Libre Calc para abrir formulário de dados


Posts recomendados

Bom dia!

 

Gostaria de ativar um botão no libre calc para abrir um formulário de dados a partir da planilha que criei como base de dados.

 

Eu quero que ao clicar no botão >> NOVO abra o formulário de dados para inserir nas linhas abaixo.

 

1759381845_TELA2.thumb.png.f134e347e3f8dfba053277acf3de1afb.png124642809_TELA3.thumb.png.c60053bcfe6c5f957ae73419ff70d4f3.png

 

Eu quero que o botão abra esse formulário para fazer a inserção de dados.

 

 

Link para o comentário
Compartilhar em outros sites

Pode retirar a linha 10 em branco da sua planilha.

 

Esta macro inseri uma linha após o titulo, porém a cada inserção é necessário  fechar o Form e reabrir se necessário para mais inclusões.

 

Segue a macro:

 

Sub AbrirForm
Dim args1(0) as new com.sun.star.beans.PropertyValue : args1(0).Name = "ToPoint" : args1(0).Value = "B9"
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:GoToCell", "", 0, args1())
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:InsertRowsAfter", "", 0, Array())
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:DataForm", "", 0, Array())
End Sub

Lembrando, você criar seu próprio Formulário personalizado, veja aqui: https://ask.libreoffice.org/pt-br/question/240060/macro-para-inserir-dados-de-caixa-de-dialogo-em-planilha/

adicionado 33 minutos depois

Segue uma macro melhorada, se desistir da inclusão, a linha inserida é deletada.


 

Sub AbrirForm
    GoToCel "B9"
    Execute "InsertRowsAfter"
    Execute "DataForm"
    Execute "Godown"
        oSel = ThisComponent.getCurrentSelection()
        Var1 = oSel.getString()
    If Var1 = "" Then
    Execute "DeleteRows"
    Else : End If
End Sub

Sub Execute ( que$ )
	CreateUnoService("com.sun.star.frame.DispatchHelper") _
	.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:" & que & "", "", 0, Array())
End Sub

Sub GoToCel ( xLocal$ )
	dim args1(0) as new com.sun.star.beans.PropertyValue : args1(0).Name = "ToPoint" : args1(0).Value = xLocal
	CreateUnoService("com.sun.star.frame.DispatchHelper") _
	.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:GoToCell", "", 0, args1())
End Sub

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...