Notifications
Clear all

combobox listando nomes das Plan em um userfor

7 Posts
2 Usuários
0 Reactions
1,317 Visualizações
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

tentei mas não fui feliz,

como coloco os nomes das Abas sendo listadas em um combobox dentro de um userform?

os que achei listavam os nomes na planilha, para então fazer leitura em um combobox,
mas eventualmente as abas são pagadas.
achei outro que usava um codigo sub em separado para listar e o combobox ler, mas não consegui aplicar, não tinha uma planilha de exemplo para saber oq vai onde.

E se tiver como,
Listar os nomes das Macros, que estão em uma certo modulo, nesse caso qualquer coisa ajuda

Até...

 
Postado : 02/04/2014 5:00 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A questão do Combobox e nome das abas eu não compreendi.

Quanto a listar os nomes das macros, no link abaixo tem as rotinas para listar de um determinado modulo ou todos.
http://www.cpearson.com/excel/vbe.aspx
Veja os itens:
Listing All Procedures In A Module e Listing All Modules In A Project, mas vale a pena ler todas, ele todas as operações que se pode fazer referente a Modulos, apagar, copiar para outra, copiar aba deletando as rotinas, etc.

[]s

 
Postado : 02/04/2014 6:52 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

poxa valeu mesmo,
eu tinha feito a pergunta em outro forum a muito tempo, mas ninguém respondeu,
com isso de editar as macros eu posso colocar em pratica uma ideia antiga.

o combobox poderia até ficar para depois, mas como já iniciei vou terminar.

seria fazer uma listagem dos nomes das planilha em um combobox que está em um userform

peguei isso mas não sei como funciona.

Private Sub ComboBox1_Click()
    Sheets(ComboBox1.List(ComboBox1.ListIndex)).Select
End Sub

Private Sub UserForm_Initialize()
    For Each plan In Worksheets
        ComboBox1.AddItem plan.Name
    Next
End Sub
 
Postado : 02/04/2014 7:28 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

bem parece que estou com um outro problema a respeito

For Each plan In Worksheets
ComboBox1.AddItem plan.Name
Next

Uso essa palavra como variavel em todas as macros para retorno de nome de planilha
posso trocar apenas nessa macro ou vou ter que trocar nas outras que eu tenho ??

 
Postado : 02/04/2014 7:52 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

sobre a combobox já consegui,

coloquei na parte de codigo do userform
plan era apenas uma variavel comum e troquei para Sheetos para testar e funcionou, :P vai continuar

falta só aprender como usar o conteúdo selecionado.

 
Postado : 02/04/2014 8:11 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Em relaçãoa:

For Each plan In Worksheets, é somente uma expressão para poder identificar a que se refere, mas você ´pode colocar qualquer nome, se olhar na ajuda do VBA ela está da seguinte forma:
For Each ws In Worksheets, ou seja, são expressões que facilitam a identificação, quem le a rotina sabe que "sh" normalmente é utilizada para Sheet, ou sWh, ou se for referencia a uma outra Pasta(Arquivo) usamos wb para WorkBook, existe algumas expressoes padroes, mas muitos dão nomes da maneira que entendem, seria o mesmo quando identifcamos os controles "cbo" ComboBoc, "Opt" OptionButton" e por ai vai.

Quanto a rorina no geral, ao Iniciar o Form é adicionado os nomes das abas ao ComboBox, e ao selecionar um dos nomes a aba é selecionada.

[]s

 
Postado : 02/04/2014 8:17 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

nos meus teste eu entendi,

no caso não preciso dessa rotina, que seleciona a planilha escolhida.

Private Sub ComboBox1_Click()
    Sheets(ComboBox1.List(ComboBox1.ListIndex)).Select
End Sub

combobox funciona como uma caixa de texto pré carregada, em vez de escrever apenas seleciona um dos itens que já existe.

Private Sub Fixacopy_Click()
If Fixacopy = True Then Plan_list.Value = "Fixa"
If Fixacopy = False Then Plan_list.Value = ""
End Sub

Private Sub UserForm_Initialize()  'preenche combo box com nomes das planilhas
     For Each Sheetos In Worksheets
        Plan_list.AddItem Sheetos.Name
    Next
End Sub

pelo menos foi oq eu entendi

 
Postado : 02/04/2014 8:48 pm