Pergunte aqui
0

COMO REFERENCIAR OUTRA PLANILHA NUMA MACRO NO LO BASIC?

perguntadas 2017-01-26 20:15:02 +0200

esta mensagem está marcada como wiki comunitário

Esta mensagem é um wiki. Qualquer pessoa com karma >75 é bem-vinda para a melhorar.

Olá, boa tarde, me chamo tarcisio. Tou fazendo uma planilha no CALC e, tou encontrando muitas dificuldades, pois so fazia macros no EXCEL.

Segue embaixo uma macro que funciona muito bem. so que ela só insere os dados numa planilha no mesmo documento. " oDoc = ThisComponent"

eu quero tipo nesta macro inserir os dados em um outro arquivo de planilha. como referenciar outra planilha?? desde já, muito obrigado.

Sub cadastrando

oDoc = ThisComponent oDados1 = oDoc.Sheets.getByName( "BACKUP" ) oDados = oDoc.Sheets.getByName( "DADOS_HORAS" ) oHome = oDoc.Sheets.getByName( "HOME" ) oCadas = oDoc.Sheets.getByName( "HORAS" )

      Dim lin
      Dim cod
       lin = 1
       cod = 1

   Do Until oDados.getCellByPosition(0,lin).String = ""
  lin = lin + 1
  cod = cod + 1
   Loop 



       oDados.getCellByPosition( 0,lin).String = cod
      oDados.getCellByPosition( 1,lin).String = oCadas.getCellRangeByName( "D6").String
      oDados.getCellByPosition( 2,lin).value = oCadas.getCellRangeByName( "F8").value
      oDados.getCellByPosition( 3,lin).String = oCadas.getCellRangeByName( "H6").String
      oDados.getCellByPosition( 4,lin).String = oCadas.getCellRangeByName( "D8").String
     ' oDados.getCellByPosition( 5,lin).String = oCadas.getCellRangeByName( "F8").String
      oDados.getCellByPosition( 5,lin).String = oCadas.getCellRangeByName( "D10").String 
     ' oDados.getCellByPosition( 7,lin).String = oCadas.getCellRangeByName( "G10").String                
    ' PESSOA LOGADA  oDados.getCellByPosition( 4,lin).String = oCadas.getCellRangeByName( "C8").String

End Sub

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

2 Respostas

1

respondidas 2017-01-27 16:17:36 +0200

imagem do gravatar de Grafeno

updated 2017-01-27 16:20:15 +0200

Boa tarde,

Carregue o documento através do método loadComponentFromURL() para depois inserir os dados.

Para abrir é preciso fornecer o caminho completo incluindo seu nome e extensão:

sURL = convertToURL( "D:\Exemplo\Arquivo.ods" ) '<<< Caminho completo + nome + extensão '
oDoc2 = StarDesktop.loadComponentFromURL( sURL, "_blank", 0, Array() )

Mas se preferir, é possível abrir o arquivo de forma oculta:

Dim oProps(0) As New com.sun.star.beans.PropertyValue
oProps(0).Name = "Hidden"
oProps(0).Value = True

sURL = convertToURL( "D:\Exemplo\Arquivo.ods" ) '<<< Caminho completo + nome + extensão'
oDoc2 = StarDesktop.loadComponentFromURL( sURL, "_blank", 0, oProps() )

Em seguida, para gravar os dados e fechar utilize:

oDoc2.Store()
oDoc2.Close( True )

Atte,

editar assinalar como ofensivo Excluir Link mais

Comentários

Muito obrigado!! Funcionou!!!

Outra dúvida, nesta planilha ai, os dados digitados, agora por meio desta macro, estao sendo inseridos em uma outra planilha, porem se duas pessoas salvarem os dados ao mesmo tempo, havera conflito nao e mesmo? como faço para salvar esses dados digitados na planilha numa tabela do Base? Preciso primeiramente fazer o Banco de Dados, certo, e depois uma macro para poder salvar os dados. como fazer esta macro?

imagem do gravatar de tarcisiopimenta07tarcisiopimenta07 ( 2017-01-27 18:42:38 +0200 )editar

@tarcisiopimenta07, maravilha que funcionou! Mas é como vc disse, se dois usuários salvarem os dados ao mesmo tempo, usando a macro, ocorrerá um conflito ou com erro ou com perca de dados. E sim, é preciso primeiro construir o BD no Base para depois acessá-lo com macro. Para essa macro o ideal é você abrir outra questão aqui no Ask. Atte,

imagem do gravatar de GrafenoGrafeno ( 2017-01-28 19:11:46 +0200 )editar

Já ia me esquecendo... como esta resposta ajudou, não deixe assinalá-la como ""correta"", clicando na bolinha com o "V" dentro. É uma forma de ajudar outros usuários em futuras pesquisas.

imagem do gravatar de GrafenoGrafeno ( 2017-01-28 19:18:36 +0200 )editar
0

respondidas 2017-01-27 00:46:45 +0200

É necessário Macro ?

Referência direta na fórmula não serve ?

Descrição da imagem

Desta maneira quando abrir o arquivo, recebe o alerta se quer atualização.

Descrição da imagem

Para fazer os links, abra os arquivos envolvidos, e no arquivo/célula que busca a informação digite = e vá para o arquivo/célula que fornece a informação, e de enter. Ele carregara o link para o arquivo.

Alerta: se enviar este arquivo, montado com informações de outros, para outra lugar, os links não funcionaram.

editar assinalar como ofensivo Excluir Link mais

Comentários

serve não.. :/ necessario a macro

imagem do gravatar de tarcisiopimenta07tarcisiopimenta07 ( 2017-01-27 12:08:56 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2017-01-26 20:15:02 +0200

Lidas: 834 vezes

Última atualização: Jan 27 '17