Notifications
Clear all

Método ou membros de dados não encontrado

21 Posts
5 Usuários
0 Reactions
4,631 Visualizações
(@paulocezar)
Posts: 70
Estimable Member
Topic starter
 

Amigos,
Alguém me diga pelo amor dos meus filhinhos porque está dando o erro "ERRO DE COMPILAÇÃO: MÉTODO OU MEMBROS DE DADOS NÃO ENCONTRADO", na formula abaixo. Já olhei tanto pra essa formula e não consigo detectar esse erro. Ficaria grato se alguém me socorrer.

Private Const NomePlanilha As String = "BancodeDados"
Private Const LinhaCabecalho As Integer = 7

Private Sub Filtro_Change()
    If Me.Campos.ListIndex <> -1 Then
        Call PreencheLista(Filtro.Text)
    End If
End Sub
Private Sub UserForm_Initialize()
    Call PreencheCampos
End Sub
Private Sub PreencheCampos()
    Dim ws As Worksheet
    Dim coluna As Integer
    Dim linha As Integer
    Set ws = ThisWorkbook.Worksheets(NomePlanilha)
    coluna = 2
    linha = LinhaCabecalho

    With ws
        While .Cells(linha, coluna).Value <> Empty
            Me.Campos.AddItem .Cells(linha, coluna)
            coluna = coluna + 1
        Wend
    End With
End Sub

Private Sub PreencheCabecalho(ByRef Lista())
    Dim ws As Worksheet
    Dim coluna As Integer
    Dim linha As Integer
    Set ws = ThisWorkbook.Worksheets(NomePlanilha)
    coluna = 2
    linha = LinhaCabecalho

    With ws
        While .Cells(linha, coluna).Value <> Empty
            Lista(coluna - 1, 0) = .Cells(linha, coluna)
            coluna = coluna + 1
        Wend
    End With
End Sub

Private Sub PreencheLista(ByVal TextoDigitado As String)
    Dim ws As Worksheet
    Dim i As Integer
    Dim x As Integer
    Dim indiceLista As Integer
    Dim coluna As Integer
    Dim TextoCelula As String
    Set ws = ThisWorkbook.Worksheets(NomePlanilha)
    Dim Lista()

    ReDim Lista(ws.UsedRange.Columns.Count, 0)

    i = LinhaCabecalho + 1
    indiceLista = 1
    coluna = Me.Campos.ListIndex + 1
    Call PreencheCabecalho(Lista)

    lstLista.Clear
    With ws
        While .Cells(i, coluna).Value <> Empty
            TextoCelula = .Cells(i, coluna).Value
            If UCase(Left(TextoCelula, Len(TextoDigitado))) = UCase(TextoDigitado) Then

                For x = 0 To ws.UsedRange.Columns.Count - 1
                    ReDim Preserve Lista(ws.UsedRange.Columns.Count, indiceLista)
                    Lista(x, indiceLista) = .Cells(i, x + 1)
                Next

                indiceLista = indiceLista + 1
            End If
            i = i + 1
        Wend
    End With
   
    Lista = Array2DTranspose(Lista)

    Me.lstLista.List = Lista
End Sub
Function Array2DTranspose(avValues As Variant) As Variant
    Dim lThisCol As Long, lThisRow As Long
    Dim lUb2 As Long, lLb2 As Long
    Dim lUb1 As Long, lLb1 As Long
    Dim avTransposed As Variant
    If IsArray(avValues) Then
        On Error GoTo ErrFailed
        lUb2 = UBound(avValues, 2)
        lLb2 = LBound(avValues, 2)
        lUb1 = UBound(avValues, 1)
        lLb1 = LBound(avValues, 1)
        ReDim avTransposed(lLb2 To lUb2, lLb1 To lUb1)
        For lThisCol = lLb1 To lUb1
            For lThisRow = lLb2 To lUb2
                avTransposed(lThisRow, lThisCol) = avValues(lThisCol, lThisRow)
            Next
        Next
    End If
    Array2DTranspose = avTransposed
    Exit Function
ErrFailed:
    Debug.Print Err.Description
    Debug.Assert False
    Array2DTranspose = Empty
    Exit Function
    Resume
End Function
 
Postado : 19/03/2018 12:50 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

você poderia postar sua planilha e dizer em qual rotina está acontecendo o erro?

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 19/03/2018 12:55 pm
(@srobles)
Posts: 231
Estimable Member
 

paulocezar,

Por acaso o erro destaca a linha ReDim Lista(ws.UsedRange.Columns.Count, 0) ?

Caso positivo, creio que seja por causa da vírgula seguida do 0 (zero).

Explico, no caso de Listas, ao aplicar a instrução Redim (redimensionar), somente é aceito 1 parâmetro, no caso, a contagem das colunas da aba, ex : ws.UsedRange.Columns.Count.

Experimente alterar todas as linhas que fazem referência á quaisquer listas, inclusive as que possuem Redim Preserve. Teste e retorne.

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 19/03/2018 1:24 pm
(@paulocezar)
Posts: 70
Estimable Member
Topic starter
 

Arquivo em anexo.

Obs.: Se listar os dados no Listbox do FormFiltro, já atendeu menha demanda.

De já meus agradecimentos.

Paulo Cezar.

 
Postado : 19/03/2018 2:01 pm
(@klarc28)
Posts: 971
Prominent Member
 
    Set ws = Planilha1
 
Postado : 20/03/2018 7:48 am
(@paulocezar)
Posts: 70
Estimable Member
Topic starter
 

Klarc28,
Não deu certo. Acho que não é isso não porque lá na primeira linha diz que nomedaplanilha é igual a bancodedados. Quanto a qual rotina está dando o erro, é na rotina que listo a seguir:
Me.lstLista.List = Lista (erro: ERRO DE COMPILAÇÃO: MÉTODO OU MEMBRO DE DADOS NÃO ENCONTRADO

Paulo Cezar.

 
Postado : 22/03/2018 5:44 am
(@paulocezar)
Posts: 70
Estimable Member
Topic starter
 

Pra melhor entendimento, anexei um print sobre o erro aqui já citado.

 
Postado : 23/03/2018 1:50 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Para esse erro:
No editor VBe, va em Ferramentas --> Referencias, procure/habilite Microsoft Windows Comon Controls 6.0 (mscomctl.ocx)

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 23/03/2018 1:59 pm
(@paulocezar)
Posts: 70
Estimable Member
Topic starter
 

Reinaldo,

Baixei/instalei a referência que você citou, mas continua dando o mesmo erro. Vou continuar no aguardo da ajuda de vocês do fórum (e tentando por aqui também).

Um abraço,

Paulo Cezar.

 
Postado : 26/03/2018 12:47 pm
(@srobles)
Posts: 231
Estimable Member
 

paulocezar,

Analisei seu modelo e pude notar que a rotina em questão aponta para um controle ListBox de nome que não existe no formulário.
Veja :

   Me.lstLista

Onde, no formulário, o campo possui o nome de ListBox1.

Creio que o problema esteja aí, não?

Você terá também de analisar (e modificar, caso enfrente problemas) as rotinas que fazem referência a este controle.

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 26/03/2018 1:06 pm
(@paulocezar)
Posts: 70
Estimable Member
Topic starter
 

srobles,

Você tinha razão, corrigi a rotina a qual você se referiu e o erro não apareceu mais, mas o listbox não funcionou. Fiz a analise, conforme você sugeriu mas não tenho o conhecimento necessário para detectar esses erros a que você se referiu. Se você visse isso pra mim ficaria grato, pois já tentei de tudo e não consigo corrigir O danado do erro.

De já meus agradecimentos.

Paulo Cezar.

 
Postado : 26/03/2018 2:03 pm
(@srobles)
Posts: 231
Estimable Member
 

paulocezar,

Veja se as alterações feitas em seu modelo, atendem sua necessidade.

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 26/03/2018 6:22 pm
(@paulocezar)
Posts: 70
Estimable Member
Topic starter
 

srobles,

Perfeito, no grau, supipa. Pra você ganhar um onze só precisa aparecer o nome MÊS/ANO no cabeçalho (está aparecendo até STATUS) da ultima coluna e no listbox aparecer JAN/2018 e não 01/01/2018 como está aparecendo.

De já meus agradecimentos pelo tempo dispensado.

Paulo Cezar.

 
Postado : 27/03/2018 11:41 am
(@srobles)
Posts: 231
Estimable Member
 

paulocezar,

Veja se é isso amigo.

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 27/03/2018 3:12 pm
(@paulocezar)
Posts: 70
Estimable Member
Topic starter
 

Isso mesmo amigo srobles. Que JESUS te abençoe e te dê mais sabedoria e disposição em ajudar aos que não tem o teu conhecimento.

Um grande abraço.

Paulo Cezar.

 
Postado : 27/03/2018 8:26 pm
Página 1 / 2