LibreOffice x AutoOpen.XLS para iniciantes
Bom dia,
Agradeço a grande ajuda do post do Charles Jenkins, sem ele não teria conseguido usar o LibreOffice com o SAP B1.
Este documento explica passo a passo para inserir o código em Visual Basic explicado no post AutoOpen.xls and LibreOffice or OpenOffice criado pelo autor acima.
É necessário fazer as alterações utilizando Excel (utilizei o Excel 2013 para explicar a alteração do arquivo).
1) Ativando aba Desenvolvedor.
– Abra o Excel.
– Clique em Arquivo.
– Clique em Opções.
– Clique em Personalizar Faixa de Opções.
– Em Personalizar Faixa de Opções e em Guias Principais, marque a caixa de seleção Developer.
http://office.microsoft.com/pt-br/excel-help/mostrar-a-guia-desenvolvedor-HA101819080.aspx
Será ativada uma aba chamada Desenvolvedor.
2) Alterando o AutoOpen.XLS
– Abra o arquivo AutoOpen.XLS no Excel
– Pressione a aba Desenvolvedor, Exibir Código
– Clique duas vezes no Module2, será apresentado o código em Visual Basic que faz a abertura do arquivo texto exportado pelo SAP.
Rotina Original.
– Substitua o código fonte inteiro pelo código abaixo, podemos ver que foi criada uma nova sub-rotina para abertura do LibreOffice
Public Sub OpenExlFile(ExcelPath As String)
Attempt1:
On Error GoTo Fail1
' Assume we're running Microsoft Excel
' Inicio: Rotina original
Workbooks.OpenText FileName:=ExcelPath, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Local:=True
Workbooks.Application.Columns.AutoFit
' Fim: Rotina Original
Exit Sub
Fail1:
Resume Attempt2
Attempt2:
On Error GoTo Fail2
' Perhaps we're running LibreOffice or OpenOffice
StarOpenTsvFile (ExcelPath)
Fail2:
Exit Sub
End Sub
Public Sub StarOpenTsvFile(tsvPath As String)
Dim starDesktop As Object
Dim url As String
Dim doc As Object
Dim parms(1) As New com.sun.star.beans.PropertyValue
parms(0).Name = "FilterName"
parms(0).Value = "Text - txt - csv (StarCalc)" ' Name is incorrect, but required
parms(1).Name = "FilterOptions"
parms(1).Value = "9,,65535,1" ' Tab seps, no string delim, UTF-16 charset, begin at line 1
starDesktop = createUnoService("com.sun.star.frame.Desktop")
url = ConvertToUrl(tsvPath)
doc = starDesktop.loadComponentFromURL(url, "_blank", 0, parms)
End Sub
Qualquer dúvida abra os arquivos anexados a este documento, salvei a imagem do antes e depois, além de um arquivo texto com a subrotina criada pelo Charles.
Estou usando atualmente o LibreOffice 4.3
Espero ter ajudado,
Um grande abraço,
Fabio.
Boas Fábio,
estou a utilizar a versão 5.1.2.2 do LibreOffice
e eu estou a obter o seguinte erro:
Alguma ideia !?
Cláudio Pedras
Boas Fábio,
coloquei a versão 3.3.3. do LibreOffice e funciona,
abraço
Cláudio Pedras
Bom dia,
estou usando o LibreOffice 5.1.2.2 e funciona,
Um detalhe interessante, se você já tiver uma planilha aberta, com uma aba com o mesmo nome do arquivo que o SAP vai exportar, ele apresenta erro até no Excel 2016 (365) no VB. Isso aconteceu comigo uma vez, mas pra resolver é só trocar o nome na hora de exportar.
Abraço,
Fabio
SAP 9.0 PL15