Jump to content
  • Sign Up

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


Recommended Posts

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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

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

×
×
  • Create New...

Redes-Wi-Fi-capa-3d-newsletter.png

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!