Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Barra de menus em Userform sem o uso de API's - ATUALIZADO

Fórum para agrupar todas as propostas de modelos de planilhas de Excel que essa comunidade consegue imaginar. Teve uma idéia? Produziu algo bem bacana? Esse é o lugar!

Moderador: Rafael Monteiro

srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Barra de menus em Userform sem o uso de API's - ATUALIZADO

Mensagem por srobles »

Fala pessoal, blza?

Bem, não sei se postei no lugar certo, qualquer coisa peço desculpas antecipadamente.

Venho há algum tempo pensando em como fazer uma barra de menus em formulários, e creio eu, que consegui elaborar um que fosse funcional. Digo que elaborei um, após ter estudado muitos modelos que faziam ou não uso de API's. Este modelo não usa API's, apenas os controles ListBox e TextBox, e conta com um editor de menus.

Os dois unicos inconvenientes deste menu são :

1) - Com qualquer botão ativo, ao focar outro botão, este não se ativa de forma automática; *** RESOLVIDO ***
2) - Não é possível inserir separadores nas opções e sub-menus. *** RESOLVIDO ***

Neste modelo que estou disponibilizando aqui, creio que não estou agindo de má fé com nenhum dos colegas aqui, já que escrevi todo o código. Todavia, se o fizer, peço desculpas.

Peço aos colegas, que testem o mesmo e por favor, dêem sugestões, criticas e etc.

Para acessar o mesmo :

Usuário : admin
Senha : Acesso#01

Usuário : teste
Senha : mudar123 (Senha padrão para novos usuários)

Com o campo de usuário em foco, tecle F12, forneça a senha do admin (por padrão Acesso#01) para exibir a aplicação do Excel.

O editor de menus foi retrabalhado, possibilitando adicionar até 10 níveis para cada item de menu (usem com cautela :lol: ) e que agora conta com o controle TreeView. Façanha que só foi possível após estudar o modelo do colega JoseA , que está disponível tanto aqui no fórum, quanto no blog.

Código retrabalhado também, seguindo os conselhos do Tomás, para evitar possíveis falhas na carga dos forms e na leitura das planilhas.

Versões do Office testadas e totalmente funcionais :

Office 2007 - x86 (32bits)
Office 2010 Professional - x86 (32bits)
Office 2013 Professional - x86 (32bits)

Screen Shot :
Menu_UserForm.png
Menu_UserForm.png (326.11 KiB) Exibido 10351 vezes
Um grande abraço aos colegas JoseA e Tomás pelas valiosas dicas.

Sem mais,

[]'s

Saulo
Anexos
Menu_Userform_vFinal.zip
(361.48 KiB) Baixado 544 vezes
Editado pela última vez por srobles em Dom Mar 05, 2017 6:11 pm, em um total de 13 vezes.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


bison
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qui Jun 18, 2015 10:39 am

Re: Barra de menus em Userform sem o uso de API's

Mensagem por bison »

Bom dia srobles.

Gostaria de parabenizar pois ficou ótimo, só gostaria de saber se consigo converter para 64 bits.
32 Bits Funciona Perfeito.

Tem Alguma forma para isso?


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Barra de menus em Userform sem o uso de API's

Mensagem por srobles »

bison, boa tarde!

Obrigado pelo apoio e aprovação.

Quanto a converte-lo para 64bits, creio que seja possível sim, porém a .OCX para esses controles são outras, logo as mesmas devem ser registradas na maquina (se não me engano, vc deve registrar ambas .OCX para x86 e x64 afim de evitar problemas).Há algum tempo atrás, li em um topico no fórum da Microsoft que bastava fazer isso e voilá.
Segue o link do fórum :

https://social.msdn.microsoft.com/Forum ... m=sbappdev

No decorrer do tópico tem o passo-a-passo de como fazer o procedimento.

[]s


bison
Acabou de chegar
Acabou de chegar
Mensagens: 4
Registrado em: Qui Jun 18, 2015 10:39 am

Re: Barra de menus em Userform sem o uso de API's

Mensagem por bison »

Bom dia srobles,

Muito obrigado pela ajuda, Estou estudando esse tópico bastante, porque presto serviço a cliente que tem 32bits e outros 64bits. e muito complicado trabalhar com as versões diferentes.
Ao abrir o controle da um erro la no Private Declare Function SendMessage Lib "user32.dll".... pesquisei bastante e para evitar esse erro e so colocar a seguinte expressão, Private Declare Ptrsafe Function SendMessage Lib "user32.dll"... abre normalmente tanto no 32 como no 64.
Agora o problema está endo o StatusBar... ele não reconhece no 64... fiz o procedimento que me passou da microsoft e não funcionou. coloquei o Control na mesma pasta e nada. A Microsoft poderia ajudar a gente em alguma atualização que seja compatível para os dois, assim evitaria muita dor de cabeça para gente.
Eu consigo Desabilitar a programação do StatusBar para ver se o programa roda sem ele? quero testar todos as possíveis causas desses erros de 32 e 64, para poder resolver os problemas dos clientes, e ate mesmo ajudar os colegas da profissão.

Grato. Obrigado pela Ajuda.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Barra de menus em Userform sem o uso de API's

Mensagem por srobles »

bison, boa tarde!

Verdade. Concordo plenamente. A falta de suporte entre as versões é o que mais incomoda, já que lemos em tudo que é lugar que o melhor é partir para plataforma .NET e afins e, sinceramente, prefiro "insistir no erro". :D

Para desabilitar a statusbar você deve excluir ou comentar todo o código referente ao controle de nome sttbar existente em frmLogin e no módulo mdl_frmPrincipal. Atente aos códigos contidos em mdl_frmPrincipal, tal como tsttbar, este é o que determina a posição da statusbar no frmPrincipal após o login.

Quaisquer dúvidas, sugestões ou críticas, estou á disposição.

[]s


mgrifoeis
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Sáb Mai 18, 2013 10:10 pm

Re: Barra de menus em Userform sem o uso de API's

Mensagem por mgrifoeis »

SROBLES
Baixei seu modelo e achei bastante interessante. Entretanto observei um inconveniente. Caso altere-se a sequencia e a numeração dos botões eles perdem totalmente o vinculo com as subrotinas associadas. Basicamente porque elas dependem dos codigos dos e estes estão hardcode (chumbadas) no codigo. Ex: opt20_Alterar_senha, o que nao é uma boa prática.
Logo sugiro que você pense em criar uma coluna adicional na planilha de cadastro de menus onde você coloca apenas o nome da subrotina existente sem que esta dependa do codigo (iD) do item de menu. Desta forma não importa a ordem de aparição ou o nro do item de menu, pois ele poderá ser sempre remetido a sub rotina associada. Inclusive você pode elevar e estender o editor de menus à funcionalidades incríveis e mais sofisticadas dando ao usuário a opção de além de criar o item e a seq de menus tbm associá-lo a respectiva subrotina. Um exemplo de sistema que faz isto é o OpenOffice que tem um editor de menus que permite inclusive fazer a reordenação e identação(recuo) dos itens (muito show)
PS.Ç A versao que baixei nao estava funcionando a aba de Opções do editr de menus.
Grato


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Barra de menus em Userform sem o uso de API's

Mensagem por srobles »

mgrifoeis, bom dia!

Obrigado pelo comentário e por compartilhar suas idéias e conhecimentos, amigo!

Estou trabalhando na adaptação de um novo código exatamente da forma que sugeriu, pois realmente é a melhor maneira. Este modelo eu desenvolvi pensando de outra maneira (errônea), que seria, o usuário Admin cria a estrutura do menu e as sub rotinas, e para os demais perfis de usuário, algumas opções deixariam de existir, não afetando o funcionamento. Hoje depois de analisar mais atentamente, vi que isso não poderia dar certo de forma alguma :D .
Fiquei interessado sobre o que disse sobre o OpenOffice e vou estudar isso, pois não conheço muito sobre o mesmo. Obrigado pela dica.
Assim que terminar de reestruturar todo o código , volto á disponibilizar o modelo aqui no fórum, e claro, contando com o apoio dos Mestres para torná-lo um arquivo que possa ser utilizado no dia-a-dia.

Mais uma vez, Obrigado.

[]s


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Barra de menus em Userform sem o uso de API's

Mensagem por srobles »

Fala galera!!!

Modelo atualizado conforme sugestão do colega mgrifoeis.

Quaisquer dúvidas, sugestões, críticas etc.. estou á disposição.

Abs á todos e obrigado pelos comentários.


jonasjtg
Colaborador
Colaborador
Mensagens: 32
Registrado em: Seg Jun 01, 2015 1:09 pm

Re: Barra de menus em Userform sem o uso de API's

Mensagem por jonasjtg »

Nao consigo acessa!


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Barra de menus em Userform sem o uso de API's

Mensagem por srobles »

jonasjtg,

O que você não consegue acessar? O link ou a planilha?

Aguardo retorno!.

Abs


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder