Cadastro de pessoas - Libreoffice Calc | COM MACROS - PARTE 2 | Cadastrando sequencialmente
HTML-код
- Опубликовано: 21 апр 2023
- Neste vídeo damos continuidade ao cadastro de pessoas utilizando os recursos de formulários e macros, cadastrando sequencialmente (linha após linha) e mostramos como adicionar mais campos ao formulário.
Capítulos:
00:08 - Introdução
00:32 - Segurança de macros
01:12 - Recapitulando a parte 01
02:42 - Macro para pegar a célula pela referência
03:54 - Função do calc para achar a referência da célula
06:31 - Usando funções personalizadas na macro
07:28 - Definindo variáveis do tipo numéro
11:50 - Usando funções do calc em macros
13:27 - Função cont.valores()
16:15 - uso do With em macros
18:13 - Adicionando mais campos ao cadastro
Função do calc para achar referência da célula:
=COLUNA()-1 & ", " & LINHA()-1
Link da parte 01:
• Cadastro de pessoas - ...
Controle de despesas:
• Controle de despesas |...
Formatação condicional:
• Formatação condicional...
Links da documentação:
help.libreoffice.org/latest/p...
help.libreoffice.org/6.3/pt-B...
wiki.openoffice.org/wiki/Docu...
wiki.openoffice.org/wiki/Docu...
documentation.libreoffice.org...
documentation.libreoffice.org...
ask.libreoffice.org/t/documen... Наука
Para as pessoas que estão recebendo o erro ao clicar no botão de cadastrar:
Type: com.sun.star.lang.WrappedTargetException Message: TargetException:
Type: com.sun.star.script.LibraryNotLoadedException Message
Foi um erro na planilha que só descobri depois. Na parte 3, logo no começo do vídeo eu mostro como corrigir o problema.
Segue o link
ruclips.net/video/o9xZ4c_tk0o/видео.html
Finalmente vídeos profissionais e de algo realmente interessante. Obrigado por compartilhar.
Obrigado.
Programo em C# a anos no unity, e ja fiz varias aplicações pro access usando vba. oh dificuldade em achar respostas e videos explicativos sobre esse bendito ooo.basic
Parabéns amigo. ótimo video. Tirou muitas dúvidas minhas.
Obrigado. Se vc é programador, o material mais completo é o livro do Andrew Pitonyak (em inglês):
documentation.libreoffice.org/pt-br/portugues/macros/
Se forem dúvidas mais específicas, vc pode ir no fórum do Libreoffice, a galera lá tem bastante conhecimento e tem boa vontade para ajudar.
ask.libreoffice.org/c/brazilian-portuguese/9
Muito top suas aulas! Parabéns
Obrigado!
Parabéns 🎉 show de bola
Obrigado.
Muito bom!
Obrigado.
Bom dia! Preciso compartilhar a planilha que eu fiz com macros (no caso um botão LIMPAR) e não funciona nos outros computadores, como resolver? Poderia me ajudar?
Bom dia. Acredito que nesses outros computadores a execução de macros está desabilitada. Vc vai ter que habilitá-la em cada computador que for usar a planilha e se o computador tiver mais de um usuário, vai ter que habilitar a execução de macros para cada usuário.
Na parte 1 eu mostro como habilitar as macros. Pule para o tempo 00:51 (na descrição do vídeo tem os tempos)
ruclips.net/video/K5THNtPdF9E/видео.html
como ocultar pasta de trabalho e apresentar apenas o formulário ?
Vc tem que usar uma macro para ocultar a interface. Seria algo do tipo:
'=========================================================================
Sub TelaInteira
oController = ThisComponent.CurrentController
With oController
.ColumnRowHeaders = False
.SheetTabs = False
.Frame.LayoutManager.HideCurrentUI = True
.HorizontalScrollBar = False
.VerticalScrollBar = False
End With
end sub
'=========================================================================
E depois atribuir essa macro para quando abrir o arquivo ( Eu vou mostrar como se faz isso na parte 8)
Obs.: Vc tem que criar outra macro idêntica à de cima só que invertendo os valores (False para True e True para False) e atribuir a um botão para poder mostrar a interface novamente.
genial, obrigado@@gratisnopc
A função está dando erro de argumento não opcional poderia me ajuda obg
function ultimaLinha(nomePlanilha as string, areaDados as string)
dim planilha as object
dim fServico
planilha = ThisComponent.Sheets.getByName(nomePlanilha) nessa linha
fServico = CreateUnoService("com.sur.star.sheet.FunctionAccess")
numeroLinha = fServico.CallFunction("COUNTA" , array(planilha.getCellRangeByName(areaDados))) e nessa aq
ultimaLinha = numeroLinha
End function
Se o seu código está escrito do jeito que foi postado aqui, está com erro de digitação:
Na parte do ".com.sun.star ...
Está escrito ".com.sur.star ...
Faz uma revisão no código e vê se está escrito igual ao do vídeo.
@@gratisnopc Function ultimaLinha(nomePlanilha as string, areaDados as string)
dim planilha as object
dim fServico
planilha = ThisComponent.Sheets.getByName(nomePlanilha)
fServico = CreateUnoService("com.sun.star.sheet.FunctionAccess")
numeroLinha = fServico.CallFunction("COUNTA" , array(planilha.getCellRangeByName(areaDados))) essa linha
ultimaLinha = numeroLinha
End Function
ainda da o problema e um de variável do objeto não definida
agora foi mestre, o problema é que eu quero que comece a jogar a partir de A130 porque antes ja tenho dados ele começo da 77
Ele começou da linha 75 porque tenho vários células mescladas e a função não soma isso pelo jeito
consegui obg