none
Validação de Dados - Inteligente VBA RRS feed

  • Pergunta

  • Caros,

    gostaria de saber se é possível criar uma Validação de Dados (lista), onde ao digitar a primeira letra ou até uma palavra ele automaticamente filtre somente as opções para seleção? Pode sem em VBA.

    Grato

    terça-feira, 12 de novembro de 2013 14:06

Respostas

  • Crie um formulário com uma caixa de texto chamada TextBox1 and ListBox1 e insira o código a seguir num formulário:

    Private Sub TextBox1_Change()
      Dim wks As Excel.Worksheet
      Dim lngLast As Long
      Dim lng As Long
      Dim varAll As Variant
      Dim var As Variant
      
      Me.ListBox1.Clear
      With ThisWorkbook.Worksheets("Plan1")
        lngLast = .Cells(.Rows.Count, "A").End(xlUp).Row
        var = .Range("A2:A" & lngLast)
      End With
      For lng = LBound(var) To UBound(var)
        If var(lng, 1) Like "*" & Me.TextBox1 & "*" Then
          Me.ListBox1.AddItem var(lng, 1)
        End If
      Next lng
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    terça-feira, 19 de novembro de 2013 22:40
    Moderador

Todas as Respostas

  • Olá, boa tarde.

    Estou migrando sua dúvida para o fórum especializado em VBA, neste local você encontrará ajuda mais especializada sobre o assunto.

    Se precisar novamente de ajuda sobre o mesmo assunto post sua dúvida no endereço do fórum:

    http://social.msdn.microsoft.com/Forums/pt-br/home?forum=vbapt


    Obrigado por contactar o fórum Microsoft Technet!

    quinta-feira, 14 de novembro de 2013 17:11
    Moderador
  • Crie um formulário com uma caixa de texto chamada TextBox1 and ListBox1 e insira o código a seguir num formulário:

    Private Sub TextBox1_Change()
      Dim wks As Excel.Worksheet
      Dim lngLast As Long
      Dim lng As Long
      Dim varAll As Variant
      Dim var As Variant
      
      Me.ListBox1.Clear
      With ThisWorkbook.Worksheets("Plan1")
        lngLast = .Cells(.Rows.Count, "A").End(xlUp).Row
        var = .Range("A2:A" & lngLast)
      End With
      For lng = LBound(var) To UBound(var)
        If var(lng, 1) Like "*" & Me.TextBox1 & "*" Then
          Me.ListBox1.AddItem var(lng, 1)
        End If
      Next lng
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    terça-feira, 19 de novembro de 2013 22:40
    Moderador