Notifications
Clear all

Erro VBA

5 Posts
1 Usuários
0 Reactions
1,009 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,
Tenho uma projeto em vba na rede onde várias pessoas acessam esse arquivo. Uma dessas pessoas foi abrir o projeto hoje e deu esses erros.
O estranhos que não houve nenhuma alteração no projeto e nenhuma modificação no micro tbm.

Alguma sugestão?

 
Postado : 16/04/2012 7:11 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Aparentemente, esse erro refere-se a uma dll ou ocx (referencias) que não está presente no micro em questão;
pode tb estar presente porem corrompido ou não instalado. Creio que vai ter um trabalho de "garimpagem" para descobrir qual controle está ausente.

 
Postado : 16/04/2012 7:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

È entranho pois até ontem o aplicativo rodava normalmente no micro.

Uma coisa que notei é quando um faço alguma alteração no aplicativo do meu micro, quando outra pessoa vai utilizar de outro micro ele retorna um erro que .." Algum ou alguns objetos não foram encontrado", ai notei que ListVIew não aparece mais no aplicativo.

Depois fiz as mesma alterações de um micro mais antigo, e funcionou perfeitamente.

Achei um post do Mauro sobre instalar as referências caso não tenha no arquivo, será que isso ajudaria?

Private Sub Workbook_Open()
Dim bRef As Boolean
Dim i As Integer, iNref As Integer
bRef = False
iNref = Application.VBE.ActiveVBProject.References.Count
For i = 1 To iNref
If Application.VBE.VBProjects("VBAProject").References.Item(i)
Description = "Microsoft Windows Common Controls-2 6.0 (SP3)" Then
bRef = True
End If
Next
If bRef = False Then
Application.VBE.ActiveVBProject.References.AddFromFile ThisWorkbook.Path
& "MSCOMCT2.OCX"
End If
'esta biblioteca é muito boa. Contém um controle Calendário
'bastante flexível, inclusive de horas
End Sub
 
Postado : 16/04/2012 12:38 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

O que realmente acontece, eu não sei pois ainda não passei por isso.
Qto ao codigo que o Mauro postou e muito bom, porem está "verificando" somente(creio que o mais comum) ..controls..; então se não for esse vai continuar como erro.
O codigo deve ser extendido para os demais.
No Forum Excel-Br , houve recentemente uma pergunta porem o erro e "Class Factory" ( http://br.groups.yahoo.com/group/ExcelBr/message/84660)
O que me chamou atenção foi a resposta do colega Hamilton

Re: [ExcelBr] Class Factory
Danilo,
Se você instalou o office 64 bits, esquece, pois o listview não funciona nele!
Se não é esse o caso, então tente limpar o registro.
Eu uso o AML Registry Cleaner que é gratuito.
[]s
Hamilton
São Paulo-SP

 
Postado : 16/04/2012 2:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Caio, de fato o que o Reinaldo citou sobre a rotina que postei, se não me falha a memoria foi para um caso tambem expecifico onde se pretendia instalar determinada referencia, e foi somente um exemplo de como se instalar, teria de ser adaptada uma vez que soubessemos qual a referencia.

Quanto a questão do 64 bits, tambem procede, já tivemos casos com esta versão:
[RESOLVIDO] Erros (64bits) - Aplicativo de Cadastro
http://www.tomasvasquez.com.br/forum/vi ... 2007#p5954

De uma olhada tambem no artigo abaixo, pode dar alguma idéia :
Considerações para automação do lado do servidor do Office
http://support.microsoft.com/kb/257757/pt-br

Como citei em um tópico hoje, precisamos verificar versões do Windows, Office, se as bibliotecas, dlls, ocx são das mesmas versões, ou seja as causas podem ser variadas, não lido com arquivos em rede, mas vejo muitos problemas relacionados a incompatibilidades onde trabalho devido ao "Suporte" não proceder os mesmos tipos de instalações nos diversos Pcs aqui.

Não me lembro de onde tirei a rotina acima, mas você pode utilizar a abaixo para verificar quais as referencias estão instaladas :
Fonte :
List All References in Workbook VBProject

http://www.mrexcel.com/forum/showthread.php?t=606440

Sub Grab_References()
    'Comments:
    '
    'Purpose: List all references used in the workbook
    'Additional information: http://www.cpearson.com/Excel/vbe.aspx
    '
    'References: Microsoft Visual Basic for Applications Extensibility 5.3
    '
    'Date       Developer       Action
    '---------------------------------------------
    '01/18/12   ws              Created

    Dim wb As Workbook
    Dim ws As Worksheet
    Dim n As Integer
    Dim x As Integer

    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("Plan1")
    
    With wb
        On Error Resume Next
        x = 1
        For n = 1 To .VBProject.References.Count
            ws.Cells(x, 1) = n
            ws.Cells(x, 2) = .VBProject.References.Item(n).Description
            ws.Cells(x, 3) = .VBProject.References.Item(n).Major
            ws.Cells(x, 4) = .VBProject.References.Item(n).Minor
            ws.Cells(x, 5) = .VBProject.References.Item(n).FullPath
            ws.Cells(x, 6) = .VBProject.References.Item(n).GUID
            x = x + 1
        Next n
        ws.Columns("A:G").EntireColumn.AutoFit
    End With
    
    'Tidy up
        Set wb = Nothing
        Set ws = Nothing
End Sub

O Código deve ter procedido, como está explicito na rotina do dite abaixo :
Programming The VBA Editor
http://www.cpearson.com/Excel/vbe.aspx

Espero que ajude.

qualquer duvida, retorne.

[]s

 
Postado : 16/04/2012 7:38 pm