• Welcome to LusoRobótica - Robótica em Português.
 

[VBA Excell] Preencher combobox

Started by ivitro, 08 de September de 2014, 11:36

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ivitro

Olá, precisava de ajuda numas linhas de código.

num programa de excel que estou a fazer para preencher um combobox uso estas linhas:

   
    Dim rFG As Range 

    'Empty ClientComboBox
    ClientComboBox.Clear
   
    'Fill Client with sheet("client").column
    With Sheets("folha1")
        Set rFG = .Range("B2", .Cells(.Rows.Count, 2).End(xlUp))
    End With
    ClientComboBox.List = rFG.Value


Isto tá a funcionar bem e foi a maneira mais simples que encontrei para preencher a combobox mas o objectivo agora era preencher a combobox com duas colunas da folha 1, a começar em A2 e B2.

Alguma dica de como posso modificar a função .Range("B2", .Cells(.Rows.Count, 2).End(xlUp))?

MRData

Testa com isto :

   
    With Sheets("folha1")
        ClientComboBox.RowSource = _
        "'" & .Name & "'!" & .Range("B2", .Range("L65536").End(xlUp)).Address
    End With
"We are legion"

jm_araujo

   
    'Empty ClientComboBox
    ClientComboBox.Clear
   
    'Fill Client with sheet("client").column
    With Sheets("folha1")
        For Each CBItem In .Range("B2", .Cells(.Rows.Count, 2).End(xlUp))
            ComboBox1.AddItem CBItem.Value
        Next
        For Each CBItem In .Range("C2", .Cells(.Rows.Count, 3).End(xlUp))
            ComboBox1.AddItem CBItem.Value
        Next
    End With


Podia ser tudo num só "For" se as duas colunas tiverem o mesmo numero de itens, e não importar que a lista fique B2,C2,B3,C3...

ivitro

Não está a dar :\

O que eu preciso é que cada linha da combobox tenha duas colunas preenchidas com duas colunas da folha.

tipo isto:

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films


fazer o range de A2 e B2 corresponder à lista da combobox.

ivitro

Entretanto já consegui resolver o problema :D


ComboBox1.ColumnCount = 2
    ComboBox1.Clear
    Dim rFG As Range
   
    'Fill Client with sheet("client").column
    With Sheets("folha1")
        Set rFG = .Range("A2:B2", .Cells(.Rows.Count, 2).End(xlUp))
    End With
    ComboBox1.List = rFG.Value


não sabia que dava para fazer assim. Obrigado pela ajuda