Armazenar Valor de Combobox em célula
Enviado: 17 Abr 2018 às 22:31
Boa noite.
Estou com um projeto de um pequeno sistema de registro de recados para o escritorio onde trabalho.
Já defini a maior parte do sistema e ele está funcionando corretamente. Cada recado adicionado ao sistema é direcionado à caixa de email do setor correspondente juntamente com o relato do cliente que ligou para nós.
Mas eu decidi incluir também a opção de registrar recados pessoais dos empregados. Para isso eu criei um subsistema que recolhe dados (nome, matrícula setor etc), os coloca em ordem alfabetica e dispus esses dados no formulário de registro dos recados. A telefonista apenas precisa selecionar a categoria "Ligação Pessoal" e o Combobox com a lista dos empregados é exibida. Até aí tudo normal.
Os dados dos empregados estão numa planilha chamada "Funcionarios". A coluna tem nome, a B a matricula, e a C o Setor. Muito embora eu tenha feito a exibição do combobox em 2 colunas (Código 01), eu não consigo fazer com que a matrícula do funcionário (coluna B), seja gravado na célula onde preciso, que está na planilha "Criterio", range B7, onde é gerada a mensagem de email personalizadas com os dados. (Código 02)
Estudei as opções .Find e .Offset. mas não tenho conhecimento suficiente para sair desse enrosco. O máximo que consegui foi selecionar o próprio nome do empregado (me.list_emp.value). Outra opção tentada foi me.listIndex(list_emp.list(0,1).value que, teoricamente, deveria me localizar na segunda coluna do meu combobox, justamente onde está a matrícula do funcionário. Mas o máximo que consegui foram erros de depuração e arrancar alguns fios de cabelo da minha cabeça.

Codigo 01:
Estou com um projeto de um pequeno sistema de registro de recados para o escritorio onde trabalho.
Já defini a maior parte do sistema e ele está funcionando corretamente. Cada recado adicionado ao sistema é direcionado à caixa de email do setor correspondente juntamente com o relato do cliente que ligou para nós.
Mas eu decidi incluir também a opção de registrar recados pessoais dos empregados. Para isso eu criei um subsistema que recolhe dados (nome, matrícula setor etc), os coloca em ordem alfabetica e dispus esses dados no formulário de registro dos recados. A telefonista apenas precisa selecionar a categoria "Ligação Pessoal" e o Combobox com a lista dos empregados é exibida. Até aí tudo normal.
Os dados dos empregados estão numa planilha chamada "Funcionarios". A coluna tem nome, a B a matricula, e a C o Setor. Muito embora eu tenha feito a exibição do combobox em 2 colunas (Código 01), eu não consigo fazer com que a matrícula do funcionário (coluna B), seja gravado na célula onde preciso, que está na planilha "Criterio", range B7, onde é gerada a mensagem de email personalizadas com os dados. (Código 02)
Estudei as opções .Find e .Offset. mas não tenho conhecimento suficiente para sair desse enrosco. O máximo que consegui foi selecionar o próprio nome do empregado (me.list_emp.value). Outra opção tentada foi me.listIndex(list_emp.list(0,1).value que, teoricamente, deveria me localizar na segunda coluna do meu combobox, justamente onde está a matrícula do funcionário. Mas o máximo que consegui foram erros de depuração e arrancar alguns fios de cabelo da minha cabeça.
Codigo 01:
Código: Selecionar todos
Código 02:
Private Sub UserForm_Initialize()
Me.txt_id = ThisWorkbook.Sheets("Recados").Range("BC1").Value
Lin = 1
Do Until ThisWorkbook.Sheets("Criterio").Cells(Lin, 3) = ""
comb_cat.AddItem ThisWorkbook.Sheets("Criterio").Cells(Lin, 3)
Lin = Lin + 1
Loop
Me.comb_cat.ListIndex = 0
With ThisWorkbook.Sheets("Funcionarios").Range("A:A").CurrentRegion
list_emp.List = .Offset(1).Resize(.Rows.Count - 1).Value
list_emp.ColumnCount = 2
End With
End Sub
Código: Selecionar todos
Private Sub list_emp_Change()
ThisWorkbook.Sheets("Criterio").Range("B7").Value = Me.list_emp.Value
End Sub