collapse

* Posts Recentes

Resmas de Trotinetes por Njay
[Ontem às 17:49]


[Material] Compra de material por papamoscas
[15 de Fevereiro de 2019, 17:05]


Motor com travão por Alfredo Garcia
[13 de Fevereiro de 2019, 22:56]


Porta Arduino Baixando tensao por mauriciosouza100
[08 de Fevereiro de 2019, 13:39]


Fábricas de componentes electrónicos em Portugal? por SerraCabo
[07 de Fevereiro de 2019, 13:54]


Sistema embarcado movido a energia solar por Njay
[06 de Fevereiro de 2019, 15:01]


Tentanto reaver alguns conhecimentos de eletronica por filjoa
[06 de Fevereiro de 2019, 02:58]


bma180 avr por vasco
[03 de Fevereiro de 2019, 21:40]


3D Prusa hephestos da BQ por josecarlos
[30 de Janeiro de 2019, 18:43]


Gerador de lixo radioeléctrico III por SerraCabo
[29 de Janeiro de 2019, 19:40]

Autor Tópico: [VBA Excell] Preencher combobox  (Lida 1965 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
[VBA Excell] Preencher combobox
« em: 08 de Setembro de 2014, 11:36 »
Olá, precisava de ajuda numas linhas de código.

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

Código: [Seleccione]
   
    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))?

Offline MRData

  • Mini Robot
  • *
  • Mensagens: 81
Re: [VBA Excell] Preencher combobox
« Responder #1 em: 08 de Setembro de 2014, 13:04 »
Testa com isto :

Código: [Seleccione]
   
    With Sheets("folha1")
        ClientComboBox.RowSource = _
        "'" & .Name & "'!" & .Range("B2", .Range("L65536").End(xlUp)).Address
    End With
"We are legion"

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.470
  • NERD!
Re: [VBA Excell] Preencher combobox
« Responder #2 em: 08 de Setembro de 2014, 14:22 »
Código: [Seleccione]
   
    '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...

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: [VBA Excell] Preencher combobox
« Responder #3 em: 08 de Setembro de 2014, 15:44 »
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:
Código: [Seleccione]
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.

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: [VBA Excell] Preencher combobox
« Responder #4 em: 08 de Setembro de 2014, 15:48 »
Entretanto já consegui resolver o problema :D

Código: [Seleccione]
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