Página 1 de 1

Excel VBA - Combobox em ordem alfabética

Enviado: 05 Set 2019 às 08:15
por Leonardo7
Bom dia amigos,

Preciso do apoio de vcs para editar o código abaixo da minha Combobox. O que eu necessito é que o código coloque os valores em ordem alfabética.
Código: Selecionar todos
Private Sub UserForm_Initialize()

    Dim OCOLLECTION As New Collection
    Dim VARVALUE As Variant
    Dim I As Long
    
    On Error Resume Next
    For Each VARVALUE In wshBD.Range("B2:B" & wshBD.Range("B65536").End(xlUp).Row)
        OCOLLECTION.Add VARVALUE, VARVALUE
    Next
    
    For I = 1 To OCOLLECTION.Count
        ComboBoxPesq.AddItem OCOLLECTION.Item(I)
    Next I
    

End Sub

Excel VBA - Combobox em ordem alfabética

Enviado: 05 Set 2019 às 09:02
por Jimmy
Olá Leonardo,

Poderia anexar a planilha, ou um modelo dela, para que trabalhemos em cima dela?

Jimmy San Juan

Re: Excel VBA - Combobox em ordem alfabética

Enviado: 05 Set 2019 às 09:30
por Leonardo7
Jimmy escreveu:Olá Leonardo,

Poderia anexar a planilha, ou um modelo dela, para que trabalhemos em cima dela?

Jimmy San Juan
Bom dia Jimmy,

Segue planilha em anexo. Muito obrigado pelo apoio.

Re: Excel VBA - Combobox em ordem alfabética

Enviado: 05 Set 2019 às 10:16
por babdallas
Veja se ajuda. Fiz isso antes de voc~e enviar o arquivo.
Código: Selecionar todos
Private Sub UserForm_Initialize()

    Dim coll As Object
    Dim vrtArr  As Variant
    Dim VARVALUE As Variant
    Dim I As Long
    
    Set coll = CreateObject("System.Collections.ArrayList")
   
    On Error Resume Next
    For Each VARVALUE In wshBD.Range("B2:B" & wshBD.Range("B65536").End(xlUp).Row)
        coll.Insert VARVALUE, VARVALUE
    Next
    
    coll.Sort
    
    vrtArr = coll.ToArray
    
    ComboBoxPesq.List vrtArr
    
    Set coll = Nothing
End Sub

Re: Excel VBA - Combobox em ordem alfabética

Enviado: 05 Set 2019 às 10:36
por babdallas
Ajustei o código.
Código: Selecionar todos
Private Sub UserForm_Initialize()
    Dim coll As Object
    Dim vrtArr  As Variant
    Dim VARVALUE As Variant
    Dim I As Long
    
    Set coll = CreateObject("System.Collections.ArrayList")
   
    On Error Resume Next
    For Each VARVALUE In wshBD.Range("B2:B" & wshBD.Range("B65536").End(xlUp).Row)
        If Not coll.contains(VARVALUE.Value2) Then
            coll.Add VARVALUE.Value2
            coll.Insert VARVALUE.Value2, VARVALUE.Value2
        End If
    Next
    
    coll.Sort
    vrtArr = coll.ToArray
    frmPesquisa.ComboBoxPesq.List = vrtArr
    Set coll = Nothing
End Sub

Re: Excel VBA - Combobox em ordem alfabética

Enviado: 05 Set 2019 às 12:29
por Leonardo7
babdallas escreveu:Ajustei o código.
Código: Selecionar todos
Private Sub UserForm_Initialize()
    Dim coll As Object
    Dim vrtArr  As Variant
    Dim VARVALUE As Variant
    Dim I As Long
    
    Set coll = CreateObject("System.Collections.ArrayList")
   
    On Error Resume Next
    For Each VARVALUE In wshBD.Range("B2:B" & wshBD.Range("B65536").End(xlUp).Row)
        If Not coll.contains(VARVALUE.Value2) Then
            coll.Add VARVALUE.Value2
            coll.Insert VARVALUE.Value2, VARVALUE.Value2
        End If
    Next
    
    coll.Sort
    vrtArr = coll.ToArray
    frmPesquisa.ComboBoxPesq.List = vrtArr
    Set coll = Nothing
End Sub
Muito obrigado babdallas! Funcionou perfeitamente.