Planilha Excel VBA busca dados ComboBox lançamentos Estes macros e procedimentos do aplicativo Microsoft Excel VBA(Visual Basic Application) usando o Evento de planilha WorksheetChange(), ao escrever, abre um Userform que carrega objeto ComboBox na condição
MultiSelect, e preenche na folha de planilha os itens de múltiplas escolha.
Private Sub UserForm_Initialize()
Set vDicionario = CreateObject(“Scripting.Dictionary”)
Set vf = Saber2 ‘ observe que aqui eu uso a folha de código da folha de planilha
Set vCliente = vf.Range(“A2:A” & vf.[A65000].End(xlUp).Row)
Set vMarca = vf.Range(“b2:b” & vf.[b65000].End(xlUp).Row)
Set vModelo = vf.Range(“c2:c” & vf.[c65000].End(xlUp).Row)
vIdentifica = vCliente
For i = 1 To UBound(vIdentifica, 1)
vDicionario(vIdentifica(i, 1)) = 1
Next i
Me.ComboBox1.List = vDicionario.keys
Me.ComboBox1.SetFocus
SendKeys “{F4}”
End Sub
‘//==============’
Private Sub ComboBox1_Change()
Set vDicionario = CreateObject(“Scripting.Dictionary”)
d = Application.Match(Me.ComboBox1, vCliente, 0)
Me.ComboBox2.Clear
Me.ComboBox3.Clear
For i = d To d + Application.CountIf(vCliente, Me.ComboBox1) – 1
vDicionario(vMarca(i).Value) = 2
Next i
Me.ComboBox2.List = vDicionario.keys
Me.ComboBox2.SetFocus
SendKeys “{F4}”
End Sub
Private Sub ComboBox2_Change()
If Me.ComboBox2 <> “” Then
Me.ComboBox3.Clear
d = Application.Match(Val(Me.ComboBox2), vMarca, 0)
If IsError(d) Then d = Application.Match(Me.ComboBox2, vMarca, 0)
For i = d To d + Application.CountIf(vMarca, Me.ComboBox2) – 1
Me.ComboBox3.AddItem vModelo(i)
Next i
Me.ComboBox3.SetFocus
SendKeys “{F4}”
End If
End Sub
Private Sub ComboBox3_Change()
ActiveCell.Offset(, 0) = Me.ComboBox1.Value
ActiveCell.Offset(0, 1) = Me.ComboBox2
ActiveCell.Offset(, 2) = Me.ComboBox3
Unload Me
End Sub
‘//==========’EVENTOS WorkSheetChange() ao Escrever na folha de planilha
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([d2:d20], Target) Is Nothing And Target.Count = 1 Then
Target.Offset(1, -3).Select
End If
End Sub
‘Evento Selection Change() da folha de planilha — ao selecionar uma célula em determinada área de células na folha de planilha veja o Método (Intersect) que define área a ser sensibilidade
‘pelo Select (Evento)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([b2:b20], Target) Is Nothing And Target.Count = 1 Then
If Target.Offset(, -1).Value = “” Then
MsgBox (“Digite um Nome na Coluna[A]”), vbCritical, “Escola Saberexcel VBA Estudos®”
Target.Offset(, -1).Select
Exit Sub
End If
UserForm1.Top = Target.Top + 110 – Cells(ActiveWindow.ScrollRow, 1).Top
UserForm1.Left = 150
UserForm1.Show
End If
End Sub
‘busca com muita simplicidade treinamentos:
Sub busca_simples_treinamento()
Set f = Sheets(“bd”)
Set vMarca = f.Range(“b2:b” & f.[b65000].End(xlUp).Row)
x = Val(“12000”)
d = Application.Match(x, vMarca, 0)
End Sub
Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Escola Saberexcel VBA Estudos® – Treinamentos com Macros, Fórmulas e Funções.
Baixe o exemplo de planilha contendo os macros acima:
Planilha Excel VBA busca dados Comboboxes lancamentos