Boa tarde pessoal,
Estou aqui com uma dúvida.
EU tenho uma sheet em excel em que tenho 3 combobox.
Acontece que quero que a combobox3 (Utilizadores) preencha os dados conforme o que for selecionado na combobox1 (função) ou combobox2 (departamento).
Acontece que só uma é selecionada (cbo1 ou cbo2)
com o código abaixo, consigo que ao selecionar a combobox1, a combobox3 seja populada com os dados que quero. Mas quero também que ao selecionar a combobox2 seja feita a mesma ação.
É possível na sheet ComboboxFunçãoOP, eu ter as 3 colunas com os dados da comboboxs (Função, departamento, Utilizadores) ?
Já tentei acrescentar código mas sem sucesso por isso deixei apenas os dados que ao escolher valor da combobox1, define a source para a combobox3
Agradeço a vossa ajuda.
Obrigado.
Estou aqui com uma dúvida.
EU tenho uma sheet em excel em que tenho 3 combobox.
Acontece que quero que a combobox3 (Utilizadores) preencha os dados conforme o que for selecionado na combobox1 (função) ou combobox2 (departamento).
Acontece que só uma é selecionada (cbo1 ou cbo2)
com o código abaixo, consigo que ao selecionar a combobox1, a combobox3 seja populada com os dados que quero. Mas quero também que ao selecionar a combobox2 seja feita a mesma ação.
É possível na sheet ComboboxFunçãoOP, eu ter as 3 colunas com os dados da comboboxs (Função, departamento, Utilizadores) ?
Já tentei acrescentar código mas sem sucesso por isso deixei apenas os dados que ao escolher valor da combobox1, define a source para a combobox3
Agradeço a vossa ajuda.
Obrigado.
Código:
Option Explicit
Private dic As Object
Private Sub Worksheet_Activate()
Dim x, r
Set dic = CreateObject("Scripting.Dictionary")
With Sheets("ComboboxFunçãoOP")
For Each r In .Range("A2", .Range("A65536").End(xlUp))
If Not IsEmpty(r) And Not dic.exists(r.Value) Then
dic.Add r.Value, Nothing
End If
Next
End With
x = dic.keys
Me.ComboBox1.List = x
End Sub
Private Sub ComboBox1_Change()
Dim a, i As Long, y
With Sheets("ComboboxFunçãoOP")
a = .Range("a2").CurrentRegion.Resize(, 2)
End With
With CreateObject("scripting.dictionary")
.comparemode = vbTextCompare
For i = 2 To UBound(a, 1)
If Not IsEmpty(a(i, 1)) And Me.ComboBox1 = a(i, 1) Then
If Not .exists(a(i, 2)) Then .Add a(i, 2), Nothing
End If
Next
y = .keys
With Me.ComboBox3
.Clear
.List = Application.Transpose(y)
End With
End With
End Sub