Caixa de Combinação carregada com SQL usando (Db2 - banco de dados IBM)

O Banco de Dados da IBM (Db2) já consta no Excel, desta forma é possível criar consultas em SQL no Excel. Os dados são processados na memória Ram, 
o que agiliza os processos. Neste exemplo vamos carregar 2 listas de validações com os dados de outra planilha, usando a SQL para filtrar e agrupar os dados,
a primeira linha da planilha será usada para gerar o campo no registro na SQL.
Estado
São Paulo
São Paulo
Bahia
Bahia
Bahia
Bahia
São Paulo
Minas Gerais
Minas Gerais
Minas Gerais
Minas Gerais
Minas Gerais
São Paulo
São Paulo
São Paulo
São Paulo
Bahia
Bahia
Minas Gerais
Cidade
Mairiporã
Mauá
Feira de Santana
Serrinha
Itaberaba
Brumado
Osasco
Varginha
Belo Horizonte
Pirapóra
Sete Lagoas
Três Marias
Sorocaba
Santos
Cotia
Campinas
Vitória da Conquista
Caculé
Ipatinga
Baixar Exemplo

Cole o código abaixo no módulo que você criou.

'-----------------------------------------------------------------------------
' Incluir referência: 'Microsoft DAO 3.6 Object Library'
'-----------------------------------------------------------------------------
Sub Carregar_Drop_down1()
Dim Db2 As Database
Dim RSt2 As Recordset

Worksheets("Principal").Shapes("Drop_down1").ControlFormat.RemoveAllItems 'Limpar combo
Set Db2 = OpenDatabase(ThisWorkbook.Path & "\" & ThisWorkbook.Name, False, False, "Excel 8.0")
Set RSt2 = Db2.OpenRecordset("SELECT Estado FROM [Dados$] GROUP BY Estado;")

Call Carregar_Drop_down2(RSt2("Estado"))

While Not RSt2.EOF
Worksheets("Principal").Shapes("Drop_down1").ControlFormat.AddItem Format(RSt2("Estado"), "dd/mm/yy")
RSt2.MoveNext
Wend

Worksheets("Principal").Shapes("Drop_down1").ControlFormat.ListIndex = 1 'Inserir primeira linha na janela da combo
MsgBox "Base carregada com sucesso!!", vbInformation, "Informação"
End Sub

Sub Drop_down_1() 'pegar item selecionado
With Worksheets("Principal").Shapes("Drop_down1").ControlFormat
Call Carregar_Drop_down2(.List(.Value))
End With
End Sub
Sub Carregar_Drop_down2(Drop_down1) 'carregar comb2 com item selecionado na combo1
Worksheets("Principal").Shapes("Drop_down2").ControlFormat.RemoveAllItems 'Limpar combo

'SQL-DB2

Set Db2 = OpenDatabase(ThisWorkbook.Path & "\" & ThisWorkbook.Name, False, False, "Excel 8.0")
Set RSt2 = Db2.OpenRecordset("SELECT Estado, Cidade FROM [Dados$] WHERE Estado like (" & "'" & Drop_down1 & "'" & ") GROUP BY Estado, Cidade;")

While Not RSt2.EOF
Worksheets("Principal").Shapes("Drop_down2").ControlFormat.AddItem RSt2("Cidade")
RSt2.MoveNext
Wend

Worksheets("Principal").Shapes("Drop_down2").ControlFormat.ListIndex = 1 'Inserir primeira linha na janela da combo

RSt2.Close
Db2.Close
End Sub