Pergunte aqui
0

Alterar valores de diversas células usando o Basic.

perguntadas 2019-06-09 20:37:45 +0200

imagem do gravatar de rebr

updated 2019-06-09 21:27:57 +0200

imagem do gravatar de Schiavinatto

Como faço para alterar os valores de determinado intervalo de células ao mesmo tempo utilizando uma macro do LibreOffice Basic? Preciso alterar as células D2 a D1000 de dada planilha. Obrigado, antecipadamente!

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

@rebr, de mais detalhes.

São varias planilhas que vão ser alteradas com valores iguais ?

Os valores estão aonde ?

Tem um exemplo de arquivo, como você é novo no fórum, ainda não tem acesso para postar arquivo, coloque em nuvem e poste o link.


ATENÇÂO:: Caso queira dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Grato.

imagem do gravatar de SchiavinattoSchiavinatto ( 2019-06-09 21:25:20 +0200 )editar

Preciso colocar o valor "=Resultado" em cada uma das células na planilha. O "nome" "=Resultado" fará o cálculo para cada linha. Só preciso me certificar de que a coluna estará preenchida com o referido nome [Menu Inserir > Intervalo nomeado ou expressão].

Então as células D2 a D1000 serão preenchidas com o mesmo valor "=Resultado".

imagem do gravatar de rebrrebr ( 2019-06-09 21:42:22 +0200 )editar

1 Resposta

0

respondidas 2019-06-09 21:57:57 +0200

imagem do gravatar de Schiavinatto

@rebr, de uma olhada nesta resposta..

https://ask.libreoffice.org/pt-br/que...


ATENÇÂO:: Caso queira dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Grato.

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

editar assinalar como ofensivo Excluir Link mais

Comentários

Coloquei

sub ConsertaData
  GlobalScope.BasicLibraries.LoadLibrary("Tools")
  dim Variavel As String
  Variavel = "=Resultado"
  oSheet=ThisComponent.Sheets(0) ' 0 é a primeira planilha
  ChangeValueofRange (oSheet, "D10:D11", Variavel)
end sub

Mas acho que deve estar havendo algum problema com a linha "dim..." já tentei String, Long etc. a macro escreve o conteúdo da variável, mas não faz uma "releitura" da fórmula/expressão do nome "Resultado"; ficam "=Resultado", sem fazer a resolução do nome.

imagem do gravatar de rebrrebr ( 2019-06-09 22:40:03 +0200 )editar

Realmente falha !

Faz o seguinte coloque em uma célula a formula (=Resultado), nomeei esta célula como resultadoo, e faça a macro copiar desta célula e colar na área.

sub Result
dim document, dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "resultadoo"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$Plan1.$A$1:$A$10"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
end Sub
imagem do gravatar de SchiavinattoSchiavinatto ( 2019-06-09 22:57:32 +0200 )editar

Não é uma solução muito elegante, mas agradeço muito o esmero em me ajudar. Assim que eu pegar o ritmo do LibO Basic, coloco aqui a solução. Estou tentando me empenhar no aprendizado. Se mais alguém quiser opinar uma solução, a comunidade agradece.

imagem do gravatar de rebrrebr ( 2019-06-11 20:33:44 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-06-09 20:37:45 +0200

Lidas: 49 vezes

Última atualização: Jun 09 '19