Views

Important:

Quaisquer necessidades de soluções e/ou desenvolvimento de aplicações pessoais/profissionais, que não constem neste Blog podem ser tratados como consultoria freelance à parte.

...

11 de novembro de 2013

VBA Excel - Populando Listbox com Multi-Colunas - Multi-column List


O Listbox pode conter múltiplas colunas de dados.

Usaremos a propriedade .ColumnWidths para configurar a largura individual das colunas.

Configurar como largura zero,ocultará a coluna que não desejamos que apareça.

Neste exemplo abaixo o listbox mostrará o nome completo do estado, sendo que a segunda coluna ficará oculta contendo as abreviações dos estados. O usuário visualizará e escolherá o seu estados, mas o resultado final no documento será a abreviação do estado.





Segue o código:

Option Explicit
Private Sub UserForm_Initialize()
Dim arrStateName() As String
Dim arrStateAbbv() As String
Dim i As Long

  Use a função Split para retornar um array unidimensional. 
  Let arrStateName = Split("Select State|Alabama|Alaska|Arizona|" _
             & "Arkansas|California|Connecticut|Etc.", "|")
  Let arrStateAbbv = Split(" |AL|AK|AZ|AR|CA|CT|Etc", "|")

  'Use a propriedade .ColumnWidth para ajustar a largura das colunas.  O 0 as esconde.

  Let ListBox1.ColumnWidths = "60;0"
  For i = 0 To UBound(arrStateName)
    ' Use o método .AddItem para adicionar multicolunas em cada linha da matriz.
    ListBox1.AddItem
    'Use o método .List para registrar os dados nas linhas e colunas específicas.
    Let ListBox1.List(i, 0) = arrStateName(i)
    Let ListBox1.List(i, 1) = arrStateAbbv(i)
  Next i
lbl_Exit:
  Exit Sub
End Sub

Private Sub CommandButton1_Click()
   Dim oRng As Word.Range
   Dim oBM As Bookmarks
  
  Set oBM = ActiveDocument.Bookmarks
  Set oRng = oBM("Address").Range
  Let oRng.Text = TextBox1.Text
  oBM.Add "Address", oRng
  Set oRng = oBM("City").Range
  Let oRng.Text = TextBox2.Text
  oBM.Add "City", oRng
  Set oRng = oBM("State").Range

  'Use the listbox hidden column data. Note columns are indexed starting with 0.

  Let oRng.Text = ListBox1.Column(1)
  oBM.Add "State", oRng
  Set oRng = oBM("Zip").Range
  Let oRng.Text = TextBox3.Text
  oBM.Add "Zip", oRng
  Me.Hide
  Set oRng = Nothing
  Set oBM = Nothing

lbl_Exit:
  Exit Sub
End Sub


Deixe os seus comentários! Envie este artigo, divulgue este link na sua rede social...


Tags: VBA, Excel, Listbox, userform, populate popular, multi-column, multi-colunas, 


Nenhum comentário:

Postar um comentário

eBooks VBA na AMAZOM.com.br

Vitrine