Página 1 de 1

Adicionar itens a uma Combobox a partir de uma tabela

Enviado: 13 Out 2017 às 18:29
por JCabral
Boa noite
Mais uma vez a pedir uma ajuda
Tenho uma base de dados na aba "DPL_N" e depois de abrir a USERFORM1 filtro essa base de dados pelo campo 16, através da Combobox11.

Depois de filtrar a base de dados precisava de adicionar apenas os dados da Coluna1 na ComboBox10, depois do filtro aplicado.

Tentei utilizar o mesmo tipo de raciocínio que fiz para adicionar os itens da Combobox11 mas dá-me erro, o que estou a fazer de errado?

Obrigado
Jorge Cabral

Re: Adicionar itens a uma Combobox a partir de uma tabela

Enviado: 13 Out 2017 às 22:08
por osvaldomp
substitua esta linha
Código: Selecionar todos
'Me.ComboBox10.List = WST.ListObjects("bd_DPL_N").ListColumns(1).DataBodyRange.Value
por estas
Código: Selecionar todos
Dim rng As Range

 For Each rng In Sheets("DPL_N").Range("A2:A" & Sheets("DPL_N").Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeVisible)
  Me.ComboBox10.AddItem rng.Value
 Next rng

Adicionar itens a uma Combobox a partir de uma tabela

Enviado: 14 Out 2017 às 21:17
por JCabral
Osvaldomp

Funciona na perfeição.
Só mais uma pequena duvida, não estou conseguindo fazer o display correto na TextBox2 do valor a que na "bd_DPL_N", Coluna 3, corresponde o valor escolhido na Combobox10, tem como fazer isso em VBA, no Excel era algo do tipo "=PROCV(C3;bd_DPL_N;3;0)"

Mais uma vez Obrigado

Re: Adicionar itens a uma Combobox a partir de uma tabela

Enviado: 14 Out 2017 às 23:31
por babdallas
Substitua o evento change da combobox 10 por este codigo:
Código: Selecionar todos
Private Sub ComboBox10_Change()
    Dim lngLin As Long
    Dim lobDOL_N As ListObject
    Dim ltcCol As ListColumn
    
    Set lobDOL_N = DPL_N.ListObjects("bd_DPL_N")
    Set ltcCol = lobDOL_N.ListColumns(1)
    
    With Application.WorksheetFunction
        lngLin = .Match(CLng(ComboBox10.Value), ltcCol.DataBodyRange, 0)
    End With
    
    TextBox1.Value = ComboBox10.Value
    TextBox2.Value = lobDOL_N.DataBodyRange(lngLin, 3).Value
    TextBox3.Value = ComboBox10.ListIndex
End Sub

Adicionar itens a uma Combobox a partir de uma tabela

Enviado: 14 Out 2017 às 23:49
por JCabral
Babdallas

Funciona na perfeição.

Só fica uma pequena duvida, entre este seu método e o método DataBodyRange.Find qual é o mais rápido?

Obrigado mais uma vez

Re: Adicionar itens a uma Combobox a partir de uma tabela

Enviado: 15 Out 2017 às 00:00
por babdallas
Acredito que o match (Corresp) seja mais rápido, mas como são poucos dados, a diferença é imperceptível.