Ir ao conteúdo
  • Cadastre-se

Excel VBA Excel - Preenchimento de ComboBox com Dados de Várias Colunas


Posts recomendados

Boa tarde!

Estou precisando de carregar dados (não colunas) de 4 colunas (cedente pf e pj, cessionário pf e pj) em uma única ComboBox, e pesquisar o CPF/CNPJ desses dados automaticamente (if/vlookup ou lin...)...

Resumindo, uma pessoa (cedente PF) compra um terreno, logo em seguida transfere para outra pessoa (cessionário PF), o mesmo equivale para empresa... daí então se eu for gerar qualquer formulário, gostaria que carregasse todos os nomes na ComboBox1, que consequentemente o CPF/CNPJ e outros dados que não estão na planilha irão ser carregados nas demais Textbox1e ComboBox1. Porém, um mesmo cedente pode comprar várias terras... 

*****Resumindo mais ainda kkk, gostaria de unificar 4 colunas em ComboBox1 sem repetir nomes, ao selecionar o nome a Textbox1 vai procurar o cpf/cnpj, em seguida na ComboBox2 vai carregar as terras que estão em nome daquela pessoa, mesmo que o nome da pessoa esteja duplicado na planilha.

Segue anexo o modelo, pois não encontrei nenhum artigo na internet que pudesse auxiliar.

Fico muito grato pelo auxílio.

Pasta1.rar

Link para o comentário
Compartilhar em outros sites

@maxwelvie segue o codigo para carregar o combobox1 e a textbox.

                        Nao entendi a questao das terras... por exemplo, na mesma linha há

                        tres nomes, nao vi correspodência entre os nomes e as terras 

  

Private Sub ComboBox1_Change()

Me.TextBox1 = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 1)

End Sub

Private Sub UserForm_Activate()
Dim final As Long
Dim i     As Long
Dim j     As Long
Dim valueA As String
Dim valueB As String

        For j = 1 To 7
          If j Mod 2 <> 0 Then
                      final = Cells(Rows.Count, j).End(xlUp).Row
          For i = 2 To final
              valueA = Planilha1.Cells(i, j).value2
              valueB = Planilha1.Cells(i, j + 1).value2
                If Not valueA = "" Then
                  Call addIfUnique(Me.ComboBox1, (valueA), (valueB))
                End If
          Next
         End If
        Next
        
End Sub
Sub addIfUnique(CB As ComboBox, value1 As String, value2 As String)
Dim i As Integer

    If CB.ListCount = 0 Then GoTo doAdd
    For i = 0 To CB.ListCount - 1
        If LCase(CB.List(i)) = LCase(value1) Then Exit Sub
    Next
doAdd:
    CB.AddItem value1
    CB.Column(1, CB.ListCount - 1) = value2
    
End Sub

 

Link para o comentário
Compartilhar em outros sites

@Basole você é incrível!!!

Um problema que surgiu... infelizmente houve uma mudança do banco de dados...

A ideia inicial na qual você havia feito ficou perfeita, até porque ajustou certinho, mas teria que adequar a este novo banco de dados....

 

O que mudou:

Coluna A para coluna C

Coluna B para coluna K

Coluna C para coluna BE

Coluna D para coluna BF

Coluna E para coluna BP

Coluna F para coluna BX

Coluna G para coluna DR

Coluna H para coluna DS

 

A questão das terras, é a mesma forma de pesquisa da TextBox1. Porém tem que ser na ComboBox(2), porque daria para selecionar a terra (QD e LT) se repetissem (porque vai repetir em algum momento), ao mesmo tempo que, vai repetir e a pesquisa teria q ser de acordo com o nome selecionado na ComboBox1...

Pasta1.rar

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...