none
ListBox do formulario carregado com RowSource e List RRS feed

  • Pergunta

  • Bom dia.

    Tenho uma Tabela com nome Tabela1 que seria o meu banco de dados, e apos filtrado por sexo, tentei carregar no ListBox do Combobox , a coluna do Codigo com RowSource no ComboBox cb1 e com List no ComboBox cb2, so os visiveis da Tabela filtrada.

    O resultado esta nas figura abaixo, sendo que com RowSource, nem carregou e com List carregou so os primeiros continuos Feminimos. Alguem sabe como carregar Dados filtrados no ListBox?

    Desde ja agradeco algum retorno

    Tadao

    Option Explicit
    
    Private Sub cb1_DropButtonClick()
    Dim tbl As ListObject
    Dim myData As Variant
    
    Set tbl = ActiveSheet.ListObjects(1)
    With tbl
            'filtrar
           .ShowAutoFilter = False
            .Range.AutoFilter _
            field:=.ListColumns("Sexo").Index, _
            Criteria1:="F"
            myData = .ListColumns("Codigo").DataBodyRange.SpecialCells(xlCellTypeVisible).Address
            
            'carregar combobox com RowSource
            Me.cb1.RowSource = myData
            
    End With
        
    End Sub
    
    Private Sub cb2_DropButtonClick()
    Dim tbl As ListObject
    Dim myData As Variant
    
    Set tbl = ActiveSheet.ListObjects(1)
    With tbl
            'filtrar
           .ShowAutoFilter = False
            .Range.AutoFilter _
            field:=.ListColumns("Sexo").Index, _
            Criteria1:="F"
            myData = .ListColumns("Codigo").DataBodyRange.SpecialCells(xlCellTypeVisible).Value
            
            'carregar combobox com List
            Me.cb2.List = myData
            
    End With
        
    End Sub

    quarta-feira, 26 de junho de 2019 13:08

Respostas

  • Boa tarde.

    Desculpe, não entendi corretamente o que precisa. Creio que para carregar apenas os dados listados após a aplicação do filtro você terá que escolher entre adicionar um a um os dados visíveis ou utilizar um Filtro Avançado em outro lugar como você mesmo sugeriu e então carregar os dados.

    Em qualquer dos casos, para manter a correspondência com os dados originais você vai precisar criar uma coluna com um Identificador, para poder referenciar corretamente. O mais simples é utilizar uma numeração sequencial e ocultar esta coluna no ListBox. Assim saberá facilmente onde alterar.

    Abraço.


    Filipe Magno

    sábado, 29 de junho de 2019 19:18

Todas as Respostas

  • Boa noite!

    Não seria pela falta do endereço completo (incluir o nome da planilha)?

    Se for, talvez assim resolva:

    ...Address(,,,True)

    Abraço.


    Filipe Magno

    quarta-feira, 26 de junho de 2019 23:59
  • Obrigado pelo retorno.

    Nao entendi muito a sua sugestao, mas se eu retirar o filtro, dai ela carrega toda coluna sem problema, mas nao e isso que desejo.

    Sera que teria que filtrar e copiar ou usar o AdvacedFilter para outra planilha e depois carregar os dados dessa planilha?, mas dai nao teria relacao com os dados originais e nao daria para editar ou deletar os registros da planilha original,nao seria?

    Depois de carregado e selecionado no ListBox e  passado os dados no TextBox do ComboBox, vou trabalhar com os dados desse registro.

    Tadao

    quinta-feira, 27 de junho de 2019 04:20
  • Boa tarde.

    Desculpe, não entendi corretamente o que precisa. Creio que para carregar apenas os dados listados após a aplicação do filtro você terá que escolher entre adicionar um a um os dados visíveis ou utilizar um Filtro Avançado em outro lugar como você mesmo sugeriu e então carregar os dados.

    Em qualquer dos casos, para manter a correspondência com os dados originais você vai precisar criar uma coluna com um Identificador, para poder referenciar corretamente. O mais simples é utilizar uma numeração sequencial e ocultar esta coluna no ListBox. Assim saberá facilmente onde alterar.

    Abraço.


    Filipe Magno

    sábado, 29 de junho de 2019 19:18
  • Obrigado pela dica.

    Tadao

    sábado, 6 de julho de 2019 22:15