Macro para inserir dados de caixa de Diálogo em Planilha

Como faço para inserir dados digitados numa caixa de diálogo (números, texto e datas) em células de uma planilha do Calc. Consegui chamar a caixa de diálogo por macro, mas inserir os dados não( dá erro na linha 20).
Segue planilha de teste.

Sistema Windows 10 - 1903

LibreOffice: 6.3.4.2 (x64)

teste dialog.ods

1 Like

Ola @SpartanBR, seja bem vindo ao Grupo.

De uma olhada neste exemplo: https://ask.libreoffice.org/upfiles/15329672876087219.ods

Desta pergunta: Retornar campo data de dialog para célula


ATENÇÂO:: Para dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Não use Adicionar resposta para comentário. Grato.

Estou assistindo suas aula no YouTube de cadastro de pessoas, mas parei nessa aula. Após inserir os dados no formulário e clicar no botão cadastrar está dando erro nessa parte: numeroLinha = fServico.CallFunction(“COUNTA” , array(planilha.getCellRangeByName (areaDados))) aparece a mensagem : Variável do objeto não definida.
Código abaixo:
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)))
        ultimaLinha     = numeroLinha

Ola @juniortga , de mais detalhes, de qual exemplo esta usando…

No meu arquivo (Arquivo postado abaixo., não tem esta macro…

Boa tarde, sou novo aqui no forúm estou um pouco perdido, estou vendo umas aulas do @SpartanBR no YouTub sobre cadastro de pessoas, estou tentando tirar uma dúvida com ele a respeito de um erro, mas acho que enviei errado, mas se pude me ajudar agradeço. Arquivo anexo.
Cadastro_pacientes.ods (17.6 KB)

Cadastro_pacientes_corrigido.ods (20,5,KB)
@juniortga analisei a sua planilha e estava com erro de digitação. Na função ultimaLinha() na linha:

fServico = CreateUnoService (“com.sun.star.sheet.FunctionAccess”)

O “star” estava digitado com S maiúsculo e na macro “Cadastrar” na linha:

with plan_cadastro

plan_cadastro tem que estar na mesma linha que o “With”. Segue em anexo a planilha com as modificações.

Com relação a entrar em contato comigo, a melhor forma é deixar um comentário lá no video do youtube (nem sempre tenho tempo para olhar e responder o comentário no mesmo dia, pode demorar um pouco, mas sempre vejo)

Só 2 dicas, com relação as macros é bom tentar organizar o seu código e colocar comentários fazendo a divisão das subs (veja as modificações da planilha). E quando for postar dúvidas aqui no fórum, crie um novo tópico (página inicial : + Novo tópico) , fica mais fácil das pessoas te ajudarem.

1 Like

@SpartanBR, peguei o exemplo que indiquei acima e coloquei seus dados…

Arquivo teste

Arquivo teste corrigido


ATENÇÂO:: Para dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Não use Adicionar resposta para comentário. Grato.

Caso a resposta atendeu sua necessidade, por gentileza, click na bolinha Descrição da imagem a esquerda da resposta, para finalizar a pergunta.

Obrigado @schiavinatto, pela ajuda. Só tem um pequeno detalhe que não consegui adaptar para uso. Preciso que o valor inserido na coluna “A” seja número ( está entrando como texto), troquei a caixa de texto por campo numérico e setString() para setValue na linha 18 e os campos “.texto” para “.Value” (linhas 18 e 22), mas dá erro.

@SpartanBR Basta você colocar assim:

Variavel = CInt(caixa de texto)

O VB possuí uma possibilidade de transformar algumas variáveis

Segue link: Conversion Functions (Apache OpenOffice Runtime Library) - Apache OpenOffice Wiki

Ola @SpartanBR, só altere a linha 18 de setString para setValue e alinhe a coluna A a direita.

arquivo do teste

@schiavinatto, Resolveu aqui a sua sugestão. Obrigado a vc e também ao @Conras (vou testar a sua sugestão).

Antes de encerrar a pergunta só gostaria de uma sugestão sobre onde aprender programação de macros (mais voltadas para uso no Calc), além desse material aqui:

https://documentation.libreoffice.org/pt-br/portugues/macros/

Obs.: não conheço programação, apenas comecei a estudar macros este mês.

@SpartanBR,

Aqui tem uma coletânea de links:

Documentação para Macros Basic - Calc - Referencia

@schiavinatto, muito obrigado.