Como Preencher um Combobox com VBA Excel

Поделиться
HTML-код
  • Опубликовано: 10 дек 2024

Комментарии • 53

  • @doug_godoy
    @doug_godoy  6 лет назад +2

    Conteúdo completo e com os exemplos no link abaixo...
    douglasgodoy.com.br/aprendendo-vba-4-formas-de-preencher-um-combobox/

    • @lorrana
      @lorrana 5 лет назад

      vc faz trabalho externo? quando é?

    • @doug_godoy
      @doug_godoy  5 лет назад

      Olá Lorrana, o que precisa?

  • @jqueiroz9402
    @jqueiroz9402 6 месяцев назад +1

    Parabens! Video com conteúdo prático e muito útil... Veleu!

    • @doug_godoy
      @doug_godoy  6 месяцев назад

      Nós que agradecemos!
      Compartilhe com os amigos que tem interesse em aprender e se inscreve no canal!
      Se tiver algum conteúdo que tem interesse em aprender, me inscreve aqui.
      Um abraço!

  • @mardrimoura
    @mardrimoura 6 лет назад +1

    Olá *Douglas Godoy...*
    Excelente este estudo de caso sobre preenchimento diferenciados das Combobox.
    Entretanto, fique sem entender alguns dos conceitos utilizados, como: - *New Collection* - A variant *Temp* e o *Arrays* utilizado.
    *Mas em suma: Ótima aula.* As perguntas feitas são no quesito de aprofundamento de conceitos.
    Grato,
    *Marcelo Adriano*

    • @doug_godoy
      @doug_godoy  6 лет назад

      Olá Marcelo, muito obrigado pelo seu comentário!
      Segue abaixo alguns esclarecimentos, creio que está se referindo ao exemplo 4...
      *New Collection:*
      Uma coleção é um conjunto de itens ordenados que podem ser referidos como uma única unidade. A coleção fornece uma maneira conveniente de se referir a um grupo relacionado de itens como um único objeto. Os itens, ou membros, em uma coleção só precisam ser relacionados pelo fato de que eles existem na coleção. Os membros de uma coleção não precisam compartilhar o mesmo tipo de dados.
      Uma vez que uma coleção é criada, os membros podem ser adicionados usando o método Add e removidos usando o método Remove. Membros específicos podem ser retornados da coleção usando o método Item, enquanto a coleção inteira pode ser iterada usando a instrução ForEach ... Next.
      _Em resumo é uma forma de montar um range dinamico dentro do código para alimentar o combobox_
      A variant *Temp* e o *Arrays:*
      São praticamente utilizados na mesma etapa do processo...
      Ocorre que crio um Array temp para nele verificar se o item já existe, é na etapa do temp que eliminamos as duplicidades...
      _O array é usado para tirar as duplicidades, sendo armazenado no temp e posteriormente os dados são passado para a colection, que é uma forma pratica de atribuir o valor a combobox de uma vez só, pois as tratativas já foram feitas anteriormente._
      Vou buscar fazer um vídeo mais detalhado somente do exemplo 4 e se caso tiver sugestões me envie.
      Novamente obrigado pelo comentário!
      Abs
      *Douglas Godoy*

    • @mardrimoura
      @mardrimoura 6 лет назад +1

      Olá *Douglas Godoy*
      Obrigado pela atenção e resposta a minha pessoa.
      Realmente: estes métodos New Collection e Arrays, particularmente, não tenho experiência nestes métodos daí a minha dificuldade de entende e interpretar o seu raciocínio.
      Obrigado ,
      *Marcelo Adriano*

    • @doug_godoy
      @doug_godoy  6 лет назад

      *+Marcelo Adriano,*
      Você está no caminho certo, estudando e buscando o conhecimento a cada dia mais você irá crescer e evoluir!
      Parabéns e um abraço!
      *Douglas Godoy*

  • @edimorth
    @edimorth 3 года назад

    Muito da hora, e explicação simples, tenho varias escolha agora

    • @doug_godoy
      @doug_godoy  3 года назад

      Que bom que ajudou o intuito é este mesmo ajudar quem precisa e quer adquirir conhecimento. Forte abraço!

  • @alvaroreis47
    @alvaroreis47 5 лет назад

    Arrebentou MUITO!!! Parabéns!!!

  • @marcelochiodi232
    @marcelochiodi232 5 лет назад

    Muito bom seus tutoriais.

  • @andrepereira1339
    @andrepereira1339 3 года назад +1

    Legal, gostaria que fizesse um exemplo com botão de combinação, onde ao aperta uma opção destes botões, ele selecione do combobox apenas as palavras começadas com "A". Pois, quando abri o combobox, terá apenas esse filtro e quando clicar em outro botão de opção, o combobox carregará somente palavras com a letra B.

  • @gSantosb7
    @gSantosb7 6 лет назад

    Olá Douglas Bom dia: Seus videos são muito bons, fiquei seu aluno...é possível você fazer um vídeo ensinando como preencher uma planijha no visul basic de compra de combustivel com 10 carros por exemplo e quanto percorreu e q pode gastar por mes

  • @alexprates404
    @alexprates404 5 лет назад +2

    Boa tarde Douglas poderia fazer esta aula usado a Combobox com multi-páginas, estou com erro 380 "RowSourse". Um abraço.

  • @MarcosLima-sc9og
    @MarcosLima-sc9og 3 года назад

    Muito bom!!

  • @pastorgeniltoamaral
    @pastorgeniltoamaral 3 года назад

    Douglas. Parabéns pelas suas aulas. Tenho aprendido muito com você. Gostaria de saber como programar o VBA para preencher várias "ComboBox" dependentes uma da outra. Trata-se de um controle financeiro com um UserForm que contém uma sequência de "ComboBox". A primeira (com a ajuda de suas aulas é fácil de preencher com o campo TIPO com "entrada" ou "saída"); a 2ª vai ser preenchida com uma lista (se a 1ª estiver preenchida com "entrada") ou com outra lista (se a 1ª estiver preenchida com "saída"). E se eu tiver uma 3ª ComboBox que fosse uma subdivisão da segunda? Exemplo: 1ª ComboBox (Saída), 2ª (Cartão de Crédito), 3ª (uma lista de cartões: Visa, CrediCard, MercadoPago, etc). Se não for pedir muito, também gostaria de saber como fazer para que o campo do banco de dados correspondente a uma sequência numérica dos lançamentos seja preenchido automaticamente sem a necessidade de digitar na ComboBox chamada "Código" (1,2,3,etc.) .

  • @fansubgv
    @fansubgv 6 лет назад +1

    Douglas Godoy, cara muito show sua explicação.
    Eu estou iniciando nesse universo VBA e estou encantando.
    Me ajuda com uma questão como eu faria para que uma ComboBox ou até mesmo uma Lista Suspensa me permitisse na inicialização escolher e selecionar Planilhas.
    Ex. Na pasta de trabalho existem planilhas de Jan a Dez
    Eu gostaria de poder selecionar através de uma Combox ou lista suspensa qual planilha e apos preencher os dados que iria para a planilha que selecionei.
    Poderia me ajudar?

    • @doug_godoy
      @doug_godoy  6 лет назад

      *Olá Carlos, muito obrigado pelo seu comentário!*
      É muito bom saber que estou conseguindo te ajudar neste começo de jornada no VBA... NÃO PARE!
      Respondendo a sua pergunta...
      Você tem de fazer dois passos para que a lista funcione.
      1 - O primeiro deles é alimentar a lista com os meses.
      2 - No evento change do Combobox você deverá colocar o código para ele ir para a planilha desejada conforme exemplo abaixo:
      Private Sub ComboBox1_Change()
      If ComboBox1.Value = "Janeiro" Then Sheets("JAN").Select
      If ComboBox1.Value = "Fevereiro" Then Sheets("FEV").Select
      If ComboBox1.Value = "Março" Then Sheets("MAR").Select
      End Sub
      Dá uma olhada se consegue implementar o código e depois me fala se deu certo!
      Um abraço!
      *Douglas*

    • @fansubgv
      @fansubgv 6 лет назад

      Ola Douglas, muito obrigado pela resposta.
      Na minha busca encontrei umas coisas e estou usando esse código:
      Private Sub ComboBox1_Change()
      Sheets(ComboBox1.Text).Select
      End Sub
      ______________________________________________
      Private Sub UserForm_Initialize()
      For i = 1 To Sheets.Count
      ComboBox1.AddItem Sheets(i).Name
      Next
      End Sub
      _______________________________________________
      O código está mostrando todas as plans cadastradas e as selecionando, não sei se no futuro vai da problema rsrs'... Porem agora cheguei em uma questão.
      Fiz um formulário com essa combobox e multipage, porem nao sei como direcionar o que for inserido nas textbox conforme a planilha selecionada e escolhida através da combobox.
      Ambas as TextBox são referente as células fixas em todas as plans.. ex. B8 = Nome em todas as Plans.
      Seguindo a ordem seria:
      1- Escolhe qual plan na ComboBox ( Janeiro, Fevereiro, Março...)
      2- Preencho os dados conforme valores apresentados nos seus meses.
      3- Salvo os dados na plan que foi selecionada através da ComboBox.
      Pode me ajudar? Se preferir meu e-mail é: fiscal@impactocontabil.com

  • @paulomoraes1402
    @paulomoraes1402 6 лет назад

    Boa tarde!
    Gostei de sua apresentação. Obrigado por compartilhar.
    Gostaria de ser esclarecido, se possível, com relação á seguinte dúvida:
    Por que no código 4, a variável area (renomeada no vídeo para area2) precisou ser aberta como uma Collection?

  • @mortesilva8380
    @mortesilva8380 4 года назад

    muito bom parabéns queria uma dica de como eu posso aprender mas e melhor excel em vba oq e bom eu estudar para mim desenvolver mas des de ja agradeço

  • @mcjoy2
    @mcjoy2 Год назад

    Excelente!

  • @beto20511
    @beto20511 Год назад

    Bom dia otima aula, mas gostaria de saber ​​qual programação usar para fazer essa combobox dependente usado 3 combobox

    • @doug_godoy
      @doug_godoy  7 месяцев назад

      Se você está trabalhando com VBA (Visual Basic for Applications), pode criar uma combobox dependente usando os controles ComboBox disponíveis no Excel, por exemplo. Aqui está um exemplo simples de como você pode fazer isso:
      Suponha que você tenha três comboboxes (ComboBox1, ComboBox2 e ComboBox3) em uma planilha do Excel e queira que o conteúdo da ComboBox2 dependa da seleção feita na ComboBox1, e que o conteúdo da ComboBox3 dependa da seleção feita na ComboBox2.
      Private Sub ComboBox1_Change()
      ComboBox2.Clear
      ' Adicione aqui o código para preencher ComboBox2 com itens dependentes da seleção em ComboBox1
      If ComboBox1.Value = "Opção 1" Then
      ComboBox2.AddItem "Item A"
      ComboBox2.AddItem "Item B"
      ElseIf ComboBox1.Value = "Opção 2" Then
      ComboBox2.AddItem "Item C"
      ComboBox2.AddItem "Item D"
      End If
      End Sub
      Private Sub ComboBox2_Change()
      ComboBox3.Clear
      ' Adicione aqui o código para preencher ComboBox3 com itens dependentes da seleção em ComboBox2
      If ComboBox2.Value = "Item A" Then
      ComboBox3.AddItem "Subitem 1"
      ComboBox3.AddItem "Subitem 2"
      ElseIf ComboBox2.Value = "Item B" Then
      ComboBox3.AddItem "Subitem 3"
      ComboBox3.AddItem "Subitem 4"
      ElseIf ComboBox2.Value = "Item C" Then
      ComboBox3.AddItem "Subitem 5"
      ComboBox3.AddItem "Subitem 6"
      ElseIf ComboBox2.Value = "Item D" Then
      ComboBox3.AddItem "Subitem 7"
      ComboBox3.AddItem "Subitem 8"
      End If
      End Sub
      Neste exemplo, quando o valor da ComboBox1 é alterado, o evento ComboBox1_Change é acionado. Dentro deste evento, você pode adicionar o código para preencher a ComboBox2 com base na seleção feita na ComboBox1.
      Da mesma forma, quando o valor da ComboBox2 é alterado, o evento ComboBox2_Change é acionado. Dentro deste evento, você pode adicionar o código para preencher a ComboBox3 com base na seleção feita na ComboBox2.
      Lembre-se de ajustar o código conforme necessário para se adequar aos seus requisitos específicos.

  • @ricardocambraia1975
    @ricardocambraia1975 2 года назад

    deu certo no 4. exemplo substituindo
    ultimaLin2 = Sheets("Plan1").Range("B" & Rows. Count).End(xlUp).Row
    por
    ultimaLin2 = Sheets("Plan1").Range(Rows. Count, "B").End(xlUp).Row

    • @doug_godoy
      @doug_godoy  7 месяцев назад

      Que bom que deu certo! Uhul!

  • @robsonsouza8117
    @robsonsouza8117 4 года назад +2

    Oi Douglas por gentileza teria como me passar os significados das palavras vc usou muitos comandos no qual não sei os significados por favor ajuda-me

  • @PRINTTUTORIAISOFICIAL
    @PRINTTUTORIAISOFICIAL 6 лет назад

    Boa tarde douglas, muito boa sua explicação, mas eu estou com um problema em buscar os dados em outra planilha de outra pasta.
    Private Sub BTN_Inserir_Click()
    If CBO_Produto.Value "" Then
    Range("B4").Select
    ActiveCell.Value = CBO_Produto.Text
    Range("a4").Select
    Unload Me
    End If
    Unload Me
    Range("a4").Select
    End Sub
    esse código usei e funcionou na planilha na mesma pasta. so que agora resolvi mudar os banco de dados pra outra pasta pra ser usado em varias planilhas e como faço pra buscar essa pasta?
    Grato!

  • @marcosagiglio
    @marcosagiglio 6 лет назад

    Oi Douglas, excelente vídeo... vou sempre consultar seus vídeos, bem didáticos.
    Uma dúvida, utilizei a propriedade "RowSource", porém meus dados estão numa linha, exemplo:
    Me.ComboBox1.RowSource = "Faturamento!E3:AD3"
    Nesse caso, só retornou para a caixa de combinação a célula "E3". Como faço para utilizar os dados em linha em vez de coluna? É possível?

  • @serafimagostinidasilvaneri2836
    @serafimagostinidasilvaneri2836 6 лет назад

    Douglas vc é fera e estes codigos deste video me ajudou muito pois, a estrutura qye eu tinha estava demorando muito para processar,
    Preciso de Ajuda, por favor, não sei mais o que fazer, será que conseguiria um código que sirva para ambos (Acho que o problema é esse....
    Tenho uma planilha que foi criada no EXCEL 2016 Sistema 32Bits (Notebook), só que no meu trabalho utilizo EXCEL 2010 Sistema 64Bits.
    Preciso Ordenar a coluna B em crescente sempre que um novo ID Criado pelo usuário exemplo (CT-0001.P ou CT-0001.A1...) para gerar o próximo ID para o Usuário. no meu Notebook onde foi criado funciona perfeitamente só que no trabalho não. no mais tudo funciona.
    Código no 32bits 2016
    'Excel 2016
    Private Sub Crescente()
    ' ActiveWorkbook.Worksheets("Clientes").AutoFilter.Sort.SortFields.Clear
    ' ActiveWorkbook.Worksheets("Clientes").AutoFilter.Sort.SortFields.Add2 Key:= _
    ' Range("B1:B2000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
    ' :=xlSortNormal
    ' With ActiveWorkbook.Worksheets("Clientes").AutoFilter.Sort
    ' .Header = xlYes
    ' .MatchCase = False
    ' .Orientation = xlTopToBottom
    ' .SortMethod = xlPinYin
    ' .Apply
    ' End With
    '___________________________________________________________________________________________________
    'Excel 2010 64bits
    Private Sub Crescente()
    ActiveWorkbook.Worksheets("Clientes").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Clientes").Sort.SortFields.Add Key:= _
    Range("B1:B2000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
    :=xlSortNormal
    With ActiveWorkbook.Worksheets("Clientes").Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    End Sub
    Obs: Quando substitui o código da erro de formatação na minha planilha...
    Será que tem algum código que sirva para os dois. Obrigado

  • @lucasrezende9217
    @lucasrezende9217 2 года назад

    o que eu devo fazer quanto ao loop se já tenho outros comandos no userform initialize ?

    • @doug_godoy
      @doug_godoy  7 месяцев назад

      O loop funcionará normal, ele tem início e fim e neste processo preenche os dados, depois dele seu comandos serão executados.

  • @flamengoevida6414
    @flamengoevida6414 6 лет назад

    Como buscar uma informação na planilha e preencher no combobox.?

  • @webwill76
    @webwill76 5 лет назад

    Boa tarde, caso eu tenha 3 combobox em uma mesma pagina, devo fazer3 vezes o Do Until ?

  • @wellingtonalessandro2076
    @wellingtonalessandro2076 3 месяца назад

    Bom dia. Gostaria de uma ajuda.
    Quando uma planilha recebe dados de uma lista suspensa de uma combo box, não consigo aplicar nenhuma formula. Nem no excel e nem no vba. Quero aplicar (cont.se) em texto.

  • @pedrobarbosaconstantino4683
    @pedrobarbosaconstantino4683 4 года назад

    Parabéns pela excelente aula.
    Tentei executar a 4 forma, mas infelizmente não consegui.
    Está acusando o seguinte erro:
    "Erro em tempo de execução 457."
    Esta tecla já está associada com um elemento de desta coleção."
    A coluna que estou tentando listar no "combobox" é a coluna A, que contém números (códigos de cidade) que se repetem por vezes. São números, não são textos como no seu exemplo.
    Eu removi o argumento "CStr (value)" . Rodou, mas no combobox ficou aparecendo os códigos repetidos, ou seja não eliminou as repetições.
    Poderia me ajudar com este erro.

  • @celsotadeudesouza4790
    @celsotadeudesouza4790 5 лет назад

    Não consegui concluir o ultimo exemplo de titar a duplicidade. quando ele faz o primeiro for each ele da a mensagem que esta tecla ja está associada com um elemento desta coleção, não entendi. Se vc puder me ajudar agradeço, pois estou precisando de criar uma rotina que tire a duplicidade. Obrigado.

  • @alineveiga4857
    @alineveiga4857 5 лет назад

    Gostei do ensino, porém ao aplicar no meu trabalho está acontecendo o seguinte:
    Tenho os dados do combobox1 na plan1 e os dados do combobox2 na plan2.
    Se eu estiver com a plan1 ativa, os dados delas estão preenchendo tanto o combobox1 quanto o combobox2.
    Como faço para corrigir isto?
    Obs. Eu estou especificando as planilhas para cada combobox.

  • @rosanalhamartins5273
    @rosanalhamartins5273 6 лет назад

    Olá Douglas, não sei nada de VBA e estou com dificuldades. Uma delas é que montei meu formulário em uma planilha do EXCEL, fora do ambiente VBA. Nela alimentou dados tanto de texto, quando selecionado. Consigo lançar tudo de texto em uma planilha DADOS, via macro, mas o que temos que selecionar, não estou sabendo fazer. Outra dificuldade é pesquisar e ver tudo que foi inserido na planilha DADOS, via formulário. Como faço?

  • @Wtoia
    @Wtoia 4 года назад

    bom dia, Douglas! Na quarta forma o combobox esta com valores únicos, no entanto para tornar essa forma em ordem alfabética , Há novo comando ou se faz junção dos dos últimos. Como pode ser feita essa rotina? Grato

  • @edmilsontrader2985
    @edmilsontrader2985 4 года назад

    BOM IA FIZ TUDO CERTO O EXCEL RODOU CERTO INIIALIZOU A USERFORM MAS A CAIXA CONTINUA VASIA E ISSO E TODAS AS 4 OPÇÕES DE PREENCHIMENTO QUE VC ENSINA

  •  4 года назад

    OI DOUGLAS... E SE O TEXTO FOR MUITO GRANDE E PASSAR DA COMBOBOX?
    COMO RESOLVE ESSE PROBLEMA?

  • @alexprates404
    @alexprates404 5 лет назад

    Pessoal alguém para dar uma dica com multi-página e Combobox juntas.

    • @sidneyparada3155
      @sidneyparada3155 5 лет назад

      Olá Alex. Manda seu e-mail que eu tenho uma planilha que talvez servira para vc,

    • @alexprates404
      @alexprates404 5 лет назад

      Muito obrigado
      alexprates.1975@gmail.com

  • @robertocorrea6329
    @robertocorrea6329 2 года назад

    achei bem interessante a aula, mas quando eu crio um ComboBox com uma lista de horas e seleciono um horário, o que aparece é um número decimal. Como faço pra resolver isso?

    • @doug_godoy
      @doug_godoy  3 месяца назад

      Deve converter o número para horas, pode usar a função Format()