Ir ao conteúdo
  • Cadastre-se

Outro ComboBox Dinâmico Dependente com VBA


Posts recomendados

Pessoal, boa tarde. Estou tentando criar uma ComboBox dinâmica dependente em VBA, mas sem utilizar um UserForm. Criei duas ComboBox, 1ª) CmbCategoria que recebe os itens receita, despesa e investimento; 2ª) CmbDescrição (dependente), que recebe os itens salário, bonificação, hora extra, alimentação, aluguel, educação, farmácia, etc. A pasta de trabalho contém 3 abas, sendo uma o painel onde lanço os dados, uma segunda tabela que é a base de dados e uma outra aba que são as Listas. Essa última possui uma lista cujo cabeçalho tem o título RECEITA: receita, despesa e investimento; uma outra que são as DESPESAS e, uma terceira que

são os INVESTIMENTOS. Para preencher a CmbCategoria, utilizei o evento "Open", que foi preenchida com sucesso, com os itens receita, despesa e investimento. Todavia a CmbDescrição começa bem, todavia, quando chega na condicional "If ", que seria para iniciar a busca de dados nas listas, o código trava e aparece uma mensagem: Erro em tempo de execução 424, o objeto é obrigatório. Alguém poderia me ajudar a reparar isso? Obrigado.

 

Private Sub Workbook_Open()
    Sheets("Painel").CmbCategoria.Clear
    Sheets("Listas").Activate
    Sheets("Listas").Range("E2").Select
    
    Do While ActiveCell.Value <> ""
    Sheets("Painel").CmbCategoria.AddItem ActiveCell.Value
    ActiveCell.Offset(1, 0).Select
    Loop
    
    Sheets("Painel").Activate
    Sheets("Painel").CmbCategoria.ListIndex = 0
    Sheets("Painel").Range("D14").Select

End Sub
Private Sub CmbCategoria_Change()
    'Limpar CmbDescricao
    CmbDescricao.Clear
    'Selec cell ini busca dados
    If CmbCategoria.Value = "Despesa" Then
        Sheets("Listas").Activate
        Range("G2").Select 
    ElseIf CmbCategoria.Value = "Invest" Then
        Range("I2").Select
    Else
         Range("K2").Select
    End If
    
    'Adic itens na CmbDescricao
    Do While ActiveCell.Value <> ""
        CmbDescricao.AddItem ActiveCell.Value
        ActiveCell.Offset(1, 0).Select
    Loop
    
    'Deixar 1º item selecionado
    CmbDescricao.ListIndex = 0
    Range("D14").Select
End Sub

, utilizei o evento "Change", que começa bem, depois exibi uma mensagem que diz: "Erro em tempo de execução '424', o objeto é obrigatório". Alguém poderia me ajudar nessa dificuldade, por favor.  Segue anexo o código que fiz. Obrigado.

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!