none
ComboBox com Macro RRS feed

  • Pergunta

  • Olá, boa noite.

    Tenho um relatório e um pequeno banco de dados. No relatório criei uma macro e atribui a uma ComBoBox que contem um nome. Quando clico nessa Combo a macro deveria salvar o relatório no banco de dados de acordo com o vínculo da Combo que está numa determinada celula. Ex. o 1º nome da combo tem o vinculo 1 então ele salva no banco na linha 1 coluna x, se for o 2º nome, salva na linha 2 coluna x. O problema é que a macro só roda depois que seleciono um nome na combo. Logo, se o vinculo era 1, quando seleciono outro nome na combo, ao invés dela salvar na linha 1 o vinculo muda e ela acaba salvando errado. Alguem teria uma sugestão. Grato

    segunda-feira, 16 de abril de 2018 23:50

Todas as Respostas

  • Option Explicit
    
    Private Sub ComboBox1_Change()
    Dim lin As Long
    lin = ComboBox1.ListIndex + 1
    Plan1.Range("A" & lin).Value = ComboBox1.Value
    End Sub
    
    
    
    Private Sub UserForm_Initialize()
    ComboBox1.AddItem ("Pera")
    ComboBox1.AddItem ("Manga")
    
    End Sub
    


    A melhor forma de agradecer e votar como util e / ou marcar como resposta. Anderson Diniz diniabr2011@gmail.com

    terça-feira, 17 de abril de 2018 03:45
  • Bom dia Anderson. Desde já, agradeço pela atenção. Entretanto, creio não ter sido claro o suficiente. Eis minha questão:

    Tenho uma combobox (caixa de combinação) controle Drop-Down (inserido na célula, não é um formulário). Como disse anteriormente, esse controle tem um vínculo em um célula. E atribui uma macro à esse controle. Quando clico nele a macro deveria salvar o relatório no banco de dados de acordo com o vínculo Ex. o 1º nome do controle ele salva na linha 1, se for o 2º nome, salva na linha 2. O problema é que a macro só roda depois que seleciono um nome no controle. Logo, se o vinculo era 1, quando seleciono outro nome no controle, ao invés dela salvar na linha 1 o vinculo muda (por exemplo para 2), agora o que era pra ser salvo na linha 1, será salvo na linha 2.

    Gostaria de saber se tem como adicionar um evento change ao controle. Ou seja, a macro tem que ser executada antes de um novo nome ser selecionado. (Obs. sou iniciante no VBA. Não sei programar direito. Não sei nem se isto é possível.)

    domingo, 22 de abril de 2018 15:36