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