Auxílio - Criação M...
 
Notifications
Clear all

Auxílio - Criação Macro VBA

4 Posts
3 Usuários
0 Reactions
865 Visualizações
(@farnezifx)
Posts: 2
New Member
Topic starter
 

Amigos, tenho um problema que tenho de resolver aqui, mas isso ultrapassa meus conhecimentos técnicos acerca de VBA e gostaria de um auxílio.
Possuo uma planilha, que chamarei de Planilha Base, com as sheets "Alpha", "Beta", Gama" e "Zeta".
Existem "n" perfis de usuários e cada perfil pode visualizar somente algumas sheets dessa planilha. Vamos chamá-los de "Perfil 1", "Perfil 2" e "Perfil 3"

Preciso desenvolver uma Macro que copie a Planilha Base e mostre somente as sheets que o perfil em questão possa visualizar, ocultando as outras sheets.
Como são muitos perfis, não poderei fazer isso manualmente.

Penso em criar uma macro que, primeiro, abra e faça uma cópia da Planilha Base.
Que leia uma listagem de perfis que estará em uma sheet da própria planilha da macro.
Em seguida ela irá validar quais sheets devem permanecer visíveis ou não (ocultando as que não), dadas as autorizações do perfil e aplicar isso na cópia aberda da Planilha Base.
Dar a essa nova planilha, já organizada de acordo com o perfil, o nome do próprio perfil.
Fechá-la.
Seguir com a leitura da listagem de perfis e refazer o processo até que a listagem de perfis se finde.

Agradeço desde já o auxílio!

 
Postado : 14/01/2015 8:11 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Não deu pra entender muito bem.

Pra que copiar a Planilha Base?

Se vc definir perfis, não pode simplesmente ocultar as planilhas usando o atributo xlsheetveryhidden?

Observação, se vc tem um número definido de perfis, então vc só precisa criar uma cópia da Planilha Base para cada perfil. Depois, é só duplicar as planilhas (honestamente, eu levo muito mais tempo para criar uma macro do que para duplicar arquivos no windows, não tanto pela demora em rodar a macro, mas pela facilidade de duplicar arquivos, que ocorre em PG 2^n. Considerando que vc vá rodar a macro uma única vez, não compensaria.

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 14/01/2015 8:17 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu entendi.
o que vc chama de Planilha Base é na verdade um arquivo com algumas planilhas.

Vc vai criar uma planilha com perfis e ao lado dos perfis, a lista de planilhas que cada perfil pode visualizar.

Eu entendo que se vc quer uma macro pra isso, deve haver muitos perfis ou muitos arquivos, e se vc quer um código, também imagino que vc nao vai rodar isso uma só vez.
Se vc tem 100 planilhas, ou 100 perfis, enfim, isso pode ser um trabalho mto demorado...

Enfim, vc precisa primeiro criar essa planilha com os perfis... vc escolhe como distribuir as informações, mas eu sugiro que coloque o nome do perfil uma unica vezm e os nomes das planilhas que cada perfil tem acesso, à direita... é uma forma... outra forma é repetir os nomes de cada perfil numa coluna, e na coluna do lado, em cada linha, escrever o nome de cada planilha (mais parecido com banco de dados)...

Daí, COMPACTE o seu arquivo e disponibilize para que possamos escrever a macro pra vc!

;-)

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 14/01/2015 8:37 am
(@farnezifx)
Posts: 2
New Member
Topic starter
 

É por ai mesmo Fernando.
Fiz o seguinte, criei planilhas pequenas, com o mesmo layout de dados das "originais", para que tudo se facilite.
Tem um diretório onde está a Planilha Base e um outro diretório que é para onde as planilhas já ajustadas a cada perfil devem ser salvas.
Temos também a planilha Macro, que é onde a Macro será executada e onde estão listados os perfis e a que cada planilha cada um desses poderá ter acesso.

Realmente terei um trabalho grande para montar o código inteiro dada a quantidade final de planilhas e perfis, mas tenho um "esqueleto" de o como fazer, de resto eu me arranjo. Eu até sei, por lógica de programação, o como fazer o que tentei descrever no meu post anterior, o que me falta é conhecimento de VBA para fazê-lo.
Muito obrigado pela ajuda que estão me prestando pessoal!!

 
Postado : 14/01/2015 1:13 pm