Página 1 de 1
Menu Suspenso
Enviado: 23 Mar 2018 às 15:38
por oribesjr
Boa tarde. Não manjo de programação no excel, mas diante da necessidade de criar um menu suspenso, encontrei o seguinte código para a minha demanda:
Sub Menu_Lista()
Application.CommandBars(“Workbook tabs”).ShowPopup
End Sub
Minha dúvida: Com este código consigo um menu suspenso que aparece e me permite a navegação por todas as planilhas em uma unica pasta de trabalho, contudo necessito delimitar quais planilhas quero que apareçam no Menu. O que altero neste código para conseguir isto?
Fico no aguardo. Obrigado!
Menu Suspenso
Enviado: 23 Mar 2018 às 16:18
por Basole
Para não aparecer o nome na lista, você deve ocultar a planilha.
Exemplo:
Código: Selecionar todosSub Listar_Abas()
With ThisWorkbook
If .Sheets.Count <= 10 Then
.Sheets("Plan3").Visible = False
Application.CommandBars("Workbook Tabs").ShowPopup 500, 225
.Sheets("Plan3").Visible = True
End If
End With
End Sub
Re: Menu Suspenso
Enviado: 26 Mar 2018 às 08:59
por oribesjr
Olá Basole. Quase deu certo. O problema é que a função é para ser usada em um menu com várias opções, ou seja, tenho um menu com por exemplo Planilhas 1 - Planilhas 2 - Planilhas 3. Cada item desses, tem por exemplos 4 opções. A sua fórmula, oculta por exemplo os itens da Planilhas 2 e Planilhas 3. Ok enquanto eu utilizar apenas o Planilhas 1. Mas ao tentar acessar os itens da Planilhas 2 ou Planilhas 3, dá erro na fórmula, pois os itens desses estão ocultos. Aguardo uma ajuda sua com a fórmula. De qualquer maneira agradeço já por tentar me ajudar. Grato!
Re: Menu Suspenso
Enviado: 26 Mar 2018 às 10:19
por Basole
Não entendi direito o seu enunciado.
Se puder anexar o seu arquivo, para tentar entender melhor o que precisa.
Menu Suspenso
Enviado: 26 Mar 2018 às 10:52
por oribesjr
Segue em anexo Basole.
Re: Menu Suspenso
Enviado: 26 Mar 2018 às 11:24
por Basole
Eu não entendi as combinações das planilhas (abas) que quer que fique visível e que apareça ou não no menu, mas tem que ter em mente que no Excel, pelo menos uma aba tem que ficar visível sendo assim, se for ocultar a aba A e C por exemplo, pelo menos a B tem que ficar visível.
Tem que seguir esta linha para criar as combinações.
Menu Suspenso
Enviado: 26 Mar 2018 às 11:57
por oribesjr
Então Basole, é um menu como o de um site. Eu não quero que desapareça nada. É que segundo sua fórmula, teria de ocultar algumas planilhas para dar certo. Eu quero simplesmente navegar entre as planilhas. Só que no Botão Formulário 1, eu quero que apareça apenas as opções Fornecedor 1 - Subcontrato A, Fornecedor 1 - Subcontrato B e Fornecedor 1 - Subcontrato C;
No Botão Formulário 2 que apareça Fornecedor 2 - Subcontrato A, Fornecedor 2 - Subcontrato B e Fornecedor 2 - Subcontrato C e assim, a mesma ideia para o botão Formulário 3. Quero apenas navegar entre as planilhas, como um menu de um site. Apenas isto.
Re: Menu Suspenso
Enviado: 26 Mar 2018 às 19:18
por Basole
Segue em anexo seu arquivo com as alterações.
Vejas se é isso que desejas
Menu Suspenso
Enviado: 27 Mar 2018 às 09:35
por oribesjr
Então Basole. Você entendeu certinho o que eu queria. Mas tente navegar pelas planilhas clicando nos links dos menus suspensos. Veja se os links que você clica, abrem as planilhas corretas. Pelo menos para mim, não abrem as planilhas corretas. Obrigado mais uma vez por tentar me ajudar.
Menu Suspenso
Enviado: 27 Mar 2018 às 09:46
por oribesjr
Resolvi. Eureka! Assim deu certo :
Sub Fornecedor1()
With ThisWorkbook
' Botão Formulário 1, eu quero que apareça apenas as opções Fornecedor 1 - Subcontrato A, Fornecedor 1 - Subcontrato B e
' Fornecedor 1 - Subcontrato C
' Mostra:
.Sheets("Fornecedor 1 - Subcontrato A").Visible = True
.Sheets("Fornecedor 1 - Subcontrato B").Visible = True
.Sheets("Fornecedor 1 - Subcontrato C").Visible = True
' Oculta:
.Sheets("Fornecedor 2 - Subcontrato A").Visible = False
.Sheets("Fornecedor 2 - Subcontrato B").Visible = False
.Sheets("Fornecedor 2 - Subcontrato C").Visible = False
.Sheets("Fornecedor 3 - Subcontrato A").Visible = False
.Sheets("Fornecedor 3 - Subcontrato B").Visible = False
.Sheets("Fornecedor 3 - Subcontrato C").Visible = False
.Application.CommandBars("Workbook Tabs").ShowPopup
.Sheets("Fornecedor 2 - Subcontrato A").Visible = False
.Sheets("Fornecedor 2 - Subcontrato B").Visible = False
.Sheets("Fornecedor 2 - Subcontrato C").Visible = False
.Sheets("Fornecedor 3 - Subcontrato A").Visible = False
.Sheets("Fornecedor 3 - Subcontrato B").Visible = False
.Sheets("Fornecedor 3 - Subcontrato C").Visible = False
End With
End Sub
Menu Suspenso
Enviado: 27 Mar 2018 às 09:48
por oribesjr
Agora outra dúvida para finalizar. Ao invés de eu precisar clicar no botão Fornecedor 1 para aparecer o menu suspenso por exemplo, tem como apenas passar o mouse por cima e já aparecer o menu suspenso?
Re: Menu Suspenso
Enviado: 27 Mar 2018 às 18:42
por Basole
oribesjr escreveu:Resolvi. Eureka! Assim deu certo :
Sub Fornecedor1()
With ThisWorkbook
' Botão Formulário 1, eu quero que apareça apenas as opções Fornecedor 1 - Subcontrato A, Fornecedor 1 - Subcontrato B e
' Fornecedor 1 - Subcontrato C
' Mostra:
.Sheets("Fornecedor 1 - Subcontrato A").Visible = True
.Sheets("Fornecedor 1 - Subcontrato B").Visible = True
.Sheets("Fornecedor 1 - Subcontrato C").Visible = True
' Oculta:
.Sheets("Fornecedor 2 - Subcontrato A").Visible = False
.Sheets("Fornecedor 2 - Subcontrato B").Visible = False
.Sheets("Fornecedor 2 - Subcontrato C").Visible = False
.Sheets("Fornecedor 3 - Subcontrato A").Visible = False
.Sheets("Fornecedor 3 - Subcontrato B").Visible = False
.Sheets("Fornecedor 3 - Subcontrato C").Visible = False
.Application.CommandBars("Workbook Tabs").ShowPopup
.Sheets("Fornecedor 2 - Subcontrato A").Visible = False
.Sheets("Fornecedor 2 - Subcontrato B").Visible = False
.Sheets("Fornecedor 2 - Subcontrato C").Visible = False
.Sheets("Fornecedor 3 - Subcontrato A").Visible = False
.Sheets("Fornecedor 3 - Subcontrato B").Visible = False
.Sheets("Fornecedor 3 - Subcontrato C").Visible = False
End With
End Sub

Não entendi que alteração voce fez, pois ficou exatamente como no exemplo da minha postagem anterior.
Quanto a outra sua dúivida.
A CaixaDeTexto não tem o evento moveMouse, então tive que inseri um Rotulo (label active-x) transparente, para acionar a macro ao posicionar o cursor do mouse. Para o 1º fornecedor, foi bem mas a partir do 2º ao posicionar o cursor, o 1º item da lista do menu é selecionado automaticamente. Se fosse para executar a macro acho que até iria bem, mas como são duas ações, abrir o menu e selecionar, não ficou de acordo como esperado.
Veja se esta outra opção com aba customizada na fixa de opções lhe atende. Neste caso também não tem o evento mouse, tem que clicar para aparecer o menu. A vantagem é que não precisa colocar os botões de fornecedores em todas as abas, como esta no seu modelo.

Menu Suspenso
Enviado: 28 Mar 2018 às 15:25
por oribesjr
Bacana Basole. Muito obrigado pela ajuda que tem me dado. Sucesso!