Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#65547
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
Você não está autorizado a ver ou baixar esse anexo.
Editado pela última vez por dant008 em 07 Jul 2021 às 09:20, em um total de 1 vez.
#65558
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
dant008 agradeceu por isso
#65561
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.
dant008 agradeceu por isso
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord