... Assinatura do site por 3 anos + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$182,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Separador de Menu nos Menus de Atalhos

Usuário Marcelo:

Boa noite,

no link: usandoaccess.com.br/tutoriais/criar-menus-de-atalho-com-vba-ou-macro

Há funções para criar os menus de atalho.

Gostaria de saber como inserir um separador para melhor organizar os menus.

Desde já, grato.

Suporte:

Marcelo, usando macro é bem fácil, mas pelo VBA não encontrei ainda o comando para implementar o separador.

Veja se este exemplo atende, implementando uma linha tracejada. Acrescente a parte em vermelho no código e teste.

Public Function fncCriarMenuRelatorio()
Dim cb As CommandBar
Dim A As String
On Error Resume Next
A = "AtalhoRelatorio" 'nome do atalho
If Application.CommandBars(A).enabled Then Application.CommandBars(A).Delete
Set cb = fncAddMenu(A, True)
Call fncAddBotao(cb, 4, "&Imprimir", "=fncImprimir()") 'botão Imprimir
Call fncAddBotao(cb, 201, "&PDF", "=fncGerarPDF()") 'botão Gerar PDF
Call fncAddBotao(cb, 0, "---------------------", "")
Call fncAddBotao(cb, 0, "&Zoom 50", "=fncZoom(50)") 'Botão Zoom 50
Call fncAddBotao(cb, 247, "&Configurar Página", "=fncConfigurarPagina()")
Set cb = Nothing
End Function


 

Usuário Marcelo:

Opa, grato pela sugestão!

Antes de implementara sua dica, busquei descobrir como implementar o separador nativo do CommandBar.

Daí, depois de muito pesquisar, consegui.  E fiz uma pequena alteração na sua função de adicionar botão ao menu.

Veja como ficou:

Public Function fncAddBotao(menu As CommandBar, faceid As Long, caption As String, _
onaction As String, Optional id As Integer = 1, _ 
Optional Separador As Boolean) As CommandBarButton

    Dim cbb As CommandBarButton
    Set cbb = menu.Controls.Add(msoControlButton, id, , , True)

    With cbb
        .caption = caption
        .onaction = onaction
        .Style = msoButtonAutomatic
        .faceid = faceid
        .BeginGroup = Separador
    End With

End Function

Daí, para exibir o separador, basta setar o parâmetro Separador para True.

Por exemplo, considere o menu:

Clientes
Cidades
Produtos
Categoria de produtos

Digamos que eu queira que haja um separador entre Cidades e Produtos.

Para isso, basta eu setar para true o parâmetro Separador do botão Produtos.

Isso faz com que o VBA entenda que há um novo grupo de botões a partir do botão produtos.

Grato mais uma vez, Avelino!!

Suporte:

Marcelo, muito obrigado pelo feedback !

Estarei atualizando o projeto.

 


 

 


Não há comentário

Envie seu comentário: