Bom dia, coloco aqui a seguinte questão: Quando faço a conversão de um ficheiro de excel para libreoffice v.4.0, faço as alterações no codigo e no programa, mas quando fecho o ficheiro e volto a abri-lo, o mesmo começa a dar erros novos, que não me tinha dado anteriormente. No caso dos botões com erro, é por exemplo no inicio crio um ficheiro e atribu-o uma macro a um botão e fica tudo a rolar, e quando reinicio o ficheiro, o mesmo não me executa a macro.
Será que alguem pode dar uma ajudinha?
Isso mesmo tendo já feito a conversão para ods no teu caso, o libreoffice continua a executar os objetos em formato xls ou seja em formato excel. quando fechas e voltas a abrir o ficheiro ele ai assume uma especie de refresh ao ficheiro, e ai é normal que começem a surgir muitos outros problemas no teu codigo, como o nao reconhecimento de determinados objetos, funcoes, etc.
As macros do Excel (VBA) tem compatibilidade limitada com o LibreOffice.
As macros dos ficheiros Excel devem ser analisadas para verificar se precisam ser modificadas para funcionar no LibreOffice.
O LibreOffice utiliza a linguagem BASIC (StarBasic) e o Excel utiliza a linguagem VBA. Ambas derivadas do BASIC. A sintaxe é similar, mas há diferenças que necessitam análise.
Os objetos referenciados pelo StarBasic no LibreOffice são diferentes dos objetos do Excel.
Por exemplo a planilha plan1 é chamada no LibreOffice pela linha
oSheet = ThisComponent.getSheets.getByName("plan1")
enquanto que no Excel é
oSheet = Sheet("plan1")
Há um modo de compatibilidade experimental no LibreOffice que permite interpretar o VBA com limitações. Macros simples podem vir a funcionar sem modificações, porém macros mais complexas quase sempre requerem ajustes mesmo no modo de compatibilidade. Um caso de falha sistemática é a chamada de caixas de diálogo (apesar da própria caixa de diálogo ser compatível com o Excel).
O modo de compatibilidade é acionado com a instrução abaixo, colocada no topo do módulo das macros.
Option VBASupport 1
Ademais, tenho notado que ficheiros Excel com macros acionadas por botões perdem o vínculo entre os botões e a macro no LibreOffice, sendo necessário restabelecer a ligação entre os dois.
Não menos importante, ao converter as macros Excel para LibreOffice, é (quase) impossível manter o formato de arquivo xls/xlsx. Será obrigatório salvar o documento no formato ODS, nativo do LibreOffice.