Página 1 de 1

[RESOLVIDO] Carregar RowSource de Listbox a partir de outra aba da Planilha.

Enviado: 05 Jul 2021 às 21:15
por dant008
Boa noite pessoal! Estou começando a programar no VB e estou com a seguinte situação pra preencher um Listbox:

Tem um ListBox de nome ListBoxEstrategias no formulário que criei. Se eu colocar ListBoxEstrategias.RowSource = "A3:B4", funciona para carregar o listbox! Mas aí pega da própria aba.

Na aba "2 - História e Fundamentos", tem um botão "Calcular Pontos de Estratégias para aumentar Lucros" que carrega o listbox. Eu queria preencher conforme comparação com a celula B3, daí eu vou na aba "Configurações Avançadas".

Quando eu quero pegar da aba Configurações Avançadas eu coloco Worksheets("Configurações Avançadas").Range("Q33:R39"). Funciona na hora de comparar com o campo B3, mas não funciona na hora de associar ao RowSource do listBox

A ideia de percorre o Range, funcionaria, mas tava tentando só colocar o range de uma vez pra preencher. Sabe se tem alguma forma?
Sistema de Avaliação - Macro 2 G.xlsm
O código abaixo que faço o IF e anexei a planilha.
Código: Selecionar todos
Private Sub UserForm_Initialize()
    ListBoxEstrategias.ColumnCount = 1
    ListBoxEstrategias.Font.Size = 10
    ListBoxEstrategias.Font.Name = "Verdana"
    'ListBoxEstrategias.RowSource = "A3:B4"

If Range("B3").Value = Worksheets("Configurações Avançadas").Range("Q32").Value Then
    ListBoxEstrategias.RowSource = Worksheets("Configurações Avançadas").Range("Q33:R39")

ElseIf Range("B3").Value = Worksheets("Configurações Avançadas").Range("Q41").Value Then
    ListBoxEstrategias.RowSource = Worksheets("Configurações Avançadas").Range("Q33:R39")

ElseIf Range("B3").Value = Worksheets("Configurações Avançadas").Range("Q50").Value Then
    ListBoxEstrategias.RowSource = Worksheets("Configurações Avançadas").Range("Q42:R48")

Else
MsgBox "TESTE"
End If
End Sub

Re: Carregar RowSource de Listbox a partir de outra aba da Planilha.

Enviado: 05 Jul 2021 às 23:15
por osvaldomp
Experimente:
Código: Selecionar todos
Private Sub UserForm_Initialize()
 Dim rng As Range
  ListBoxEstrategias.ColumnCount = 2
  ListBoxEstrategias.Font.Size = 10
  ListBoxEstrategias.Font.Name = "Verdana"
  ListBoxEstrategias.ColumnWidths = "10 cm;2 cm"
  Set rng = Sheets("Configurações Avançadas").[Q31:Q77].Find([B3])
  Set rng = rng.Offset(1).Resize(7, 2)
  ListBoxEstrategias.RowSource = Sheets("Configurações Avançadas").Range(rng.Address).Address(external:=True)
End Sub
#
Ajuste manualmente a largura e a altura do Form e da TextBox. Veja a figura abaixo.

Imagem

Re: Carregar RowSource de Listbox a partir de outra aba da Planilha.

Enviado: 06 Jul 2021 às 03:19
por dant008
Cara! Funcionou perfeitamente! Sensacional! Muito obrigado pela ajuda! To caçando aqui como marcar como resolvido! heheh

Re: Carregar RowSource de Listbox a partir de outra aba da Planilha.

Enviado: 06 Jul 2021 às 08:16
por osvaldomp
Olá, @dant008 .

Que bom que você resolveu a sua demanda. :)

Quanto ao encerramento do tópico não está disponível ainda no fórum.( :?: )
Para contornar você pode editar o título do tópico na sua primeira postagem e adicionar [RESOLVIDO] no início.