Ir ao conteúdo

Posts recomendados

Postado

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.

 

 

Postado

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

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...