Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Essa macro é 100% funcional no LibreOffice, é puro BASIC. Você pode até
remover

Rem Attribute VBA_ModuleType=VBAFormModule
Option VBASupport 1

#NOME? significa que o Libre não achou a macro para executar. A
biblioteca dela não foi carregada ou ela não tem autorização de executar.

Olivier

Em 28-11-2012 23:28, ANTONIO CARLOS BERTOLACCINI DE ANDRADE escreveu:
Prezado Olivier,

Obrigado pela sua atenção. Verifiquei o módulo da macro e está com o
início que você mencionou. O interessante é que, na fórmula que utiliza
a macro, aparece em  minúscula, enquanto que na macro está em letras
maiúsculas. Por essa razão aparece, na célula, o erro #NOME?. Quando
altero as letras para maiúsculas, a macro funciona. No entanto, ao
fechar e reabrir a planilha, o erro aparece, ou seja, a macro não
funciona. Quero deixar claro que sou leito em construção de macros e
analfabeto em VB ou LibreBasic. Apenas para ilustração, abaixo segue o
script da macro:
Rem Attribute VBA_ModuleType=VBAFormModule
Option VBASupport 1
'Esta função calcula a hora reduzida noturna
'Função gravada por Vilson do Amaral em 25/08/97


Function HORANOT(Hora1, Hora2)
    hm1 = Hora1 * 24
    hm2 = Hora2 * 24
    If hm1 >= 22 And hm2 <= 5 Then
        HORANOT = ((hm2 + 24) - hm1) * 8 / 7
    ElseIf hm1 <= 22 And hm2 >= 0 And hm2 <= 5 And hm1 > hm2 Then
        HORANOT = (22 - hm1) + (hm2 + 2) * 8 / 7
    ElseIf hm1 <= 22 And hm2 >= 22 And hm2 <= 24 Then
        HORANOT = (22 - hm1) + (hm2 - 22) * 8 / 7
    ElseIf hm1 >= 0 And hm2 <= 5 Or hm1 >= 22 And hm2 > hm1 Then
        HORANOT = (hm2 - hm1) * 8 / 7
    ElseIf hm1 >= 22 And hm1 <= 24 And hm2 >= 5 Then
        HORANOT = (24 - hm1 + 5) * (8 / 7) + hm2 - 5
    ElseIf hm1 >= 0 And hm1 <= 5 And hm2 >= 5 Then
        HORANOT = (5 - hm1) * 8 / 7 + hm2 - 5
    ElseIf hm1 <= 22 And hm2 >= 5 And hm1 > hm2 Then
        HORANOT = (22 - hm1) + 8 + (hm2 - 5)
    Else
        HORANOT = hm2 - hm1
    End If
End Function
 
Se com isso, você puder me dar mais uma ajuda, te agradeço.

Antonio Carlos
Date: Wed, 28 Nov 2012 15:11:09 -0200
From: olivier.hallot@libreoffice.org
To: usuarios@pt-br.libreoffice.org
Subject: Re: Fwd: [pt-br-usuarios] Macro do Excel 2003 em LibreOffice Calc

Olá

Ha uma compatibilidade parcial entre o VB e o LibreOffice Basic, e está
sendo desenvolvido melhorias nisso.

No inicio de cada módulo deve haver estas linhas

Rem Attribute VBA_ModuleType=VBAFormModule
Option VBASupport 1

e se ocorrerem problemas, o trecho com erro deve ser reescrito com os
objetos do LibreOffice e em StarBasic.

Dica: se for abrir uma caixa de dialogo, então com certeza não
funcionará. A forma de chamar a caixa é diferente (Mas a boa noticia é
que as caixas do VBA funcionam 100% no Libre, não precisa mexer nelas).

Olivier

Em 28-11-2012 14:59, Antonio Todo Bom Avião escreveu:
Antonio Carlos,

Não sei se terá alguém te respondendo aqui. Pois até onde eu sei, o
VB em
sí é propriedade da Microsoft. E creio não ter suporte no LibreOffice.

Existem os recursos de macros do LibreOffice, que também obedecem a uma
liguagem BASIC mas é tem outras sintaxes. Acho que só reescrevendo
mesmo.


Por favor alguém me corrija se eu estiver errado, pois meu conhecimento
nisso é muito limitado, só não queria deixar o Antonio Carlos no
vácuo por
muito tempo.



Em 28 de novembro de 2012 09:11, ANTONIO CARLOS BERTOLACCINI DE
ANDRADE <
acbertolaccini@hotmail.com> escreveu:


Prezados senhores,
Tenho uma planilha de trabalho do Excel 2003, em cuja rotina existe uma
macro em VB. Ocorre que, quando tento rodar essa planilha no Calc,
a macro
não funciona e, portanto, não consigo utilizar a planilha. Gostaria de
saber se alguém poderia me ajudar a fazer funcionar essa macro no CALC.
Desde já, agradeço pela colaboração.
Antonio Carlos


--
Olivier Hallot
Comunidade LibreOffice

--
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
mande e-mail vazio para usuarios+help@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens:
http://listarchives.libreoffice.org/pt-br/usuarios/

-- 
Olivier Hallot
Comunidade LibreOffice

-- 
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para usuarios+help@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
  usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.