| ♥ 0 | Estou a tentar correr a seguinte macro em VBA do Excel 2013:
Sub MyFirstMacroPrimavera()
... ' Define empresa, user e pass
Dim Plataforma As ErpBS900.ErpBS
Set Plataforma = New ErpBS900.ErpBS ' *** dá erro!! ***
Plataforma.AbreEmpresaTrabalho tpProfissional, empresa, user, pass
Plataforma.FechaEmpresaTrabalho
End Sub
Mas dá erro na linha assinalada, dizendo Classe não Registada. Incluí a referência a ErpBS900.dll pelo VBA, mas não consigo incluir referência a Interop.ErpBS900.dll (é necessário?) – dá erro. Tentei registar com regsvr32 e também com regasm as duas dll: regasm Interop.ErpBS900.dll : sucesso regasm ErpBS900.dll : sem sucesso regsrv32 Interop.ErpBS900.dll : sem sucesso regsrv32 ErpBS900.dll : com sucesso
Tenho Windows 10 64-bits…
Qual será o problema e qual é a livraria que devo registar?
Marcado como spam |
| Resposta privada As unicas classes que deves refeenciar são as base ou seja, a ERPBS e não o Interop, esses apenas deves usar em projetos de plataforma .NET. As classes podem não estar registadas porque tens em 64bits e para registar tens de usar a versão de 64 para ele adicionar isso no sitio certo. Marcado como spam Comentários Na command prompt com privilégios de administrador e na directoria das dlls do Primavera fiz: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe ErpBS900.dll O resultado foi:
RegAsm : error RA0000 : Não foi possível carregar 'C:\Program Files (x86)\Common Files\PRIMAVERA\SG900\ErpBS900.dll' porque não é uma assemblagem do .NET válida Depois fiz: C:\Windows\SysWOW64\regsvr32.exe ErpBS900.dll Correu com sucesso. Voltei ao Excel 2013, ao VBA e voltou a dar o mesmo erro... Não tenho nenhum regsvr64... |