Vídeo recomendado
https://youtu.be/diWPPPhW-9E

[Resolvido] criar vínculo entre o excel e o libreoffice

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Mathmatic
Manda bem
Manda bem
Mensagens: 184
Registrado em: Seg Out 24, 2011 1:50 pm

[Resolvido] criar vínculo entre o excel e o libreoffice

Mensagem por Mathmatic »

Saudações amigos,

venho pedir uma grande ajuda de vocês, pois preciso criar um Vínculo externo com uma planilha do LibreOffice.

já fiz muitas tentativas, mas até o momento na obtive sucesso. Preciso vincular meu arquivo Excel com uma planilha LibreOffice que está em outro diretório, ou seja, preciso buscar para dentro do meu arquivo Excel dados que estão em uma planilha LibreOffice em outro diretório.

depois vou precisar atualizar meus dados (Links) no Excel diariamente, mas isso acredito que as macros de atualização de Links farão o serviço tranquilamente, o problema maior é conseguir criar o Vínculo externo com a planilha LibreOffice.

podem por favor me ajudar... muito obrigado desde já.
Editado pela última vez por Mathmatic em Sex Set 06, 2019 9:12 pm, em um total de 2 vezes.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Julio Mangilli
Manda bem
Manda bem
Mensagens: 127
Registrado em: Sex Out 05, 2018 2:42 pm

Re: criar Vínculos entre o Excel e o LibreOffice

Mensagem por Julio Mangilli »

Olá amigo se tivesse um modelo para postar eu tento algo, mas entendo a dificuldade, e se mandasse abrir o arquivo jogar um timer rodar as macros e fechar a planilha também não funciona? Ou seria muito trabalho ?


Julio Mangilli
Manda bem
Manda bem
Mensagens: 127
Registrado em: Sex Out 05, 2018 2:42 pm

Re: criar Vínculos entre o Excel e o LibreOffice

Mensagem por Julio Mangilli »

Planillha de Busca
Workbooks.Open "Caminho"
Call MACRO


E na Planilha destino...

Dim xTime As String
Dim xWB As Workbook

Private Sub Workbook_Open()
'Updated by Extendoffice 2019/1/20
On Error Resume Next
xTime = Application.InputBox("Favor colocar o tempo de Atualização:", "Mangilli", "00:00:20", , , , , 2)
Set xWB = ActiveWorkbook
If xTime = "" Then Exit Sub
Reset

End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
If xTime = "" Then Exit Sub
Reset
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If xTime = "" Then Exit Sub
Reset
End Sub

Sub Reset()
Static xCloseTime
If xCloseTime <> 0 Then
ActiveWorkbook.Application.OnTime xCloseTime, "SaveWork1", , False
End If
xCloseTime = Now + TimeValue(xTime)
ActiveWorkbook.Application.OnTime xCloseTime, "SaveWork1", , True
End Sub


Uma Ideia.


Mathmatic
Manda bem
Manda bem
Mensagens: 184
Registrado em: Seg Out 24, 2011 1:50 pm

Re: criar Vínculos entre o Excel e o LibreOffice

Mensagem por Mathmatic »

saudações Julio,

obrigado por se preocupar com o meu problema . vou tentar explicar melhor e mais resumido.

tenho que resgatar/recuperar diariamente, para dentro do meu arquivo Base.xls, os dados de um arquivo do libreoffice que está em outro diretório (para então atualizar diariamente no meu arquivo Base.xls os vínculos)

informações do arquivo de busca:
nome do arquivo: libre
extensão: .ods
diretório: "C:\Users\Cati\Documents\teste\"

a princípio, tentei criar Vínculos entre os dois arquivos, mas não funcionou. Foi então que recorri ao fórum para pedir ajuda.

durante minhas pesquisas, também encontrei num fórum francês de libreoffice uma macro VBA que diz criar a possibilidade de vínculos do Excel com os dados do libreoffice, mas não consegui entender a macro e nem colocá-la em prática. o local da macro mencionada é este: Link

vou anexar para você, apenas como exemplo, o meu arquivo Base.xls e o arquivo libre.ods de onde desejo buscar/resgatar os Dados .

Obs: quanto mais automatizado, melhor será para mim .

desde já, muito obrigado pela ajuda.
Anexos
teste.rar
(11.24 KiB) Baixado 211 vezes
Editado pela última vez por Mathmatic em Sex Set 06, 2019 4:56 pm, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Julio Mangilli
Manda bem
Manda bem
Mensagens: 127
Registrado em: Sex Out 05, 2018 2:42 pm

Re: criar Vínculos entre o Excel e o LibreOffice

Mensagem por Julio Mangilli »

Entendi amigo, a extensão realmente é complicada nossa, realmente essa é pros Jedi.
Mas Assim eu posso tentar ajudar um tiquinho quem sabe você molda ao seu favor, converta o arquivo e depois puxa normalmente, vai ter que sempre converter mas acredito que vá ajudar depois que convertido, já era.

Sub SaveODSToXLSX()

Dim StrFilename As String
Dim StrDocName As String
Dim StrPath As String
Dim oWorkbook As Workbook
Dim fDialog As FileDialog
Dim intPos As Integer
MsgBox "Por favor, selecione a pasta que contém os arquivos para conversão", , "C:\Users\User\Desktop\teste"
Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
With fDialog
.Title = "Selecione a pasta e clique em OK"
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList
If .Show <> -1 Then
MsgBox "Cancelado pelo usuário", , "Listar conteúdo da pasta"
Exit Sub
End If
StrPath = fDialog.SelectedItems.Item(1)
If Right(StrPath, 1) <> "\" Then StrPath = StrPath + "\"
End With
If Left(StrPath, 1) = Chr(34) Then
StrPath = Mid(StrPath, 2, Len(StrPath) - 2)
End If
StrFilename = Dir$(StrPath & "*.ods")
While Len(StrFilename)
Set oWorkbook = Workbooks.Open(StrPath & StrFilename)
StrDocName = ActiveWorkbook.FullName
intPos = InStrRev(StrDocName, ".")
StrFocName = Left(StrDocName, intPos - 1)
StrDocName = StrDocName & ".xlsx"
oWorkbook.SaveAs Filename:=StrDocName, FileFormat:=51
oWorkbook.Close savechanges:=wdDoNotSaveChanges
StrFilename = Dir$()
Wend
MsgBox "Conversão concluída", , "ODS Para XLSX"
Exit Sub
End Sub


Mathmatic
Manda bem
Manda bem
Mensagens: 184
Registrado em: Seg Out 24, 2011 1:50 pm

Re: criar vínculo entre o excel e o libreoffice

Mensagem por Mathmatic »

quando eu seleciono a Pasta, na qual está os arquivos do libreoffice, então ocorre um Erro na seguinte linha do código vba:

Código: Selecionar todos

Set oWorkbook = Workbooks.Open(StrPath & StrFilename)


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: criar vínculo entre o excel e o libreoffice

Mensagem por Reinaldo »

O Excel, nativamente e por motivos óbvios,não lê/abre arquivos .ods; motivo do erro apontado.
A conversão para .xls ou .xlsx deve ser efetuada via o aplicativo Free (Libreoffice / openoffice/broffice).
O link francês informado aponta uma rotina que deve acessar via vba/sql mas aparentemente utiliza bibliotecas do servidor Apache: (CreateObject("com.sun.star.ServiceManager"))
Nas comunidades MSOffice, as que conheço não ha nenhuma referencia e essa "ligação".
Para sentir a rivalidade entre as comunidades, no link postado mandaram o usuario ir procurar ajuda em outro lugar que não iriam responder sobre softer proprietario.
Assim creio que a melhor saida é ter o libreoffice instalado, efetuar a conversão da(s) planilha(s) para formato MSExcel e depois sim utilizar VBA/SQL


Mathmatic
Manda bem
Manda bem
Mensagens: 184
Registrado em: Seg Out 24, 2011 1:50 pm

[Resolvido] criar vínculo entre o excel e o libreoffice

Mensagem por Mathmatic »

olá Reinaldo,

estou há dias buscando respostas em torno deste assunto do meu tópico, foram muitas pesquisas.

sua resposta é a "forte confirmação" de pré-conclusões que eu estava chegando.

muito obrigado, pois você colocou o "telhado na casa". :D

abraços a você e também ao Júlio (que tentou ajudar-me de alguma forma).


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder