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

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 Gilberto SchiavinattoGilberto Schiavinatto ( 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

@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 Gilberto SchiavinattoGilberto Schiavinatto ( 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: 18 vezes

Última atualização: Jun 09