Ir ao conteúdo
  • Cadastre-se

Excel Preenchimento combobox condicionado critérios


Ir à solução Resolvido por RafaVillani,

Posts recomendados

Fala galera do fórum, muito tempo que eu não postava aqui, bom estar de volta.

 

Após pesquisar bastante na internet e não encontrar nada que pudesse me ajudar a ter uma luz, resolvi recorrer ao fórum.

 

Meu problema é o seguinte, estou desenvolvendo um pequeno sistema no VBA para controle de estoque e logística. Inicialmente estou trabalhando da seguinte forma: Existem 6 fileiras e 6 colunas de prédios, os prédios das fileiras 1, 2 e 3 possuem 5 andares, já os prédios das fileiras 4, 5 e 6 possuem 4 andares, onde serão estocados paletes.

 

O sistema possui tratamento para bloquear o cadastramento de endereço repetido, e fiz  também combobox dependentes, quando são selecionadas as fileiras 4, 5 e 6, a combobox dos andares me mostra apenas a opção de 4 andares. 

 

Contudo, apos enviar a planilha ao cliente, este me questionou sobre ter que para o cadastro toda hora para ver quais endereços estão disponíveis. 

 

Estou tentado, sem sucesso, criar uma condição de listagem nas 3 combobox, da seguinte forma: ao selecionar determinada fileira e coluna, na combobox do andar me mostrar apenas os andares disponíveis de acordo com a seleção das combobox anteriores, por exemplo, seleciono fileira 1 e coluna 1, os andares 1, 3 e 5 já estão em uso, então a combobox andar me mostra apenas os andares 2 e3. E a mesma coisa com as outras combobox, se eu selecionar o fileira 1, a combobox da coluna me mostre apenas as colunas disponíveis, se eu selecionar a fileira 1, e as colunas 1 e 3 já estão cheias, ou em uso, a combobox coluna me mostra apenas as colunas 2, 4 e 5.

 

Espero ter sido o mais cristalino possível na explicação. 

 

RafaVillani

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Solução

Fala pessoal, depois de muito quebrar a cabeça , eu finalmente consegui o que queria utilizando um vetor. Segue o código, acredito que irá ajudar.

 

Private Sub ComboBox3_enter()

Dim l As Long
Me.ComboBox3.Clear

Dim a(1 To 6) As Integer 'declaracao do vetor

a(1) = 1 'armazanado valores em cada posicao do vetor
a(2) = 2
a(3) = 3
a(4) = 4
a(5) = 5
a(6) = 6

For l = 2 To Plan3.Range("A" & Rows.Count).End(xlUp).Row 'loop ate a ultima linha preenchida
    If Plan3.Cells(l, 2) = Me.ComboBox1 And Plan3.Cells(l, 3) = Me.ComboBox2 Then 'varifica se os valores das
                                                                                   'colunas 2 e 3 são igual aos
                                                                                   'selecionados nos combobox 1 e 2
        For i = 1 To 6 'loop no vetor
            If Plan3.Cells(l, 4).Value = a(i) Then 'verifica se o valor da coluna 3 é igual as 6 possicoes
                                                    'do vetor
                a(i) = 0 'se o valor for igual, a posicao do vetor recebe 0
            End If
        Next i
    End If
Next l

For i = 1 To 6 ' loop no vetor
    If a(i) <> 0 Then 'verifica se o valor de cada posicao do vetor é diferente de 0
        Me.ComboBox3.AddItem a(i) 'carrega no combobox os valores do vetor diferentes de 0
    End If
Next
                
End Sub


abraços

 

RafaVillani

 

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...