Notifications
Clear all

VBA gestao de centro de custos

7 Posts
2 Usuários
0 Reactions
1,705 Visualizações
(@chferreira)
Posts: 5
Active Member
Topic starter
 

Caros colegas,
Estou necessitando de ajuda fiz bastante por tentativa e erro, mas não estou obtendo muito sucesso, vou tentar detalhar para vocês, o cenário do problema, o que eu preciso e o que eu fiz até agora:

Cenário do problema:

Na empresa onde trabalho temos vários centros de custos e precisamos fazer a gestão desses centros de custos com cada gerente eu tenho que montar uma planilha de gestão para cada gerente, alguns gerentes são donos de mais de um Centro de custo e outros so tem um CC (centro de custo)
Existe uma planilha “RELATORIO” modelo com várias formulas e ela é automatizada a ponto de eu colocar o número do CC na célula “C1” e ela fazer todos os cálculos necessários.

O que eu preciso:

A proposta é a seguinte que ao invés de eu fazer uma planilha para cada gestor eu faça um arquivo único onde cada gestor tenha sua senha e login e e na célula “C1” apareça um dropdown somente com os CC pertencentes a ele, na célula “C1” ele não pode digitar nenhum valor so escolher um valor no dropdown porem eu uso o valor na célula “C1” para fazer cálculos ou seja a minhas formula tem que entender o texto exato que está sendo digitado na “C1”, além disso com base no login e senha de cada usuário eles terão acesso a determinadas abas dessas planilhas que são o resumo somando todos os CC que são dele.
Um gestor não pode conseguir visualizar o CC de custo de outro gestor.

O que fiz até agora:

Eu consegui fazer a parte do useform com o login e tudo mais (não muito automatizada, está bem manual o código, mas está funcionando em sua essência), consegui dar acesso somente nas planilhas visíveis para usuários específicos, o que eu não consigo é limitar o que é digitado em “C1” colocando o dropdown vinculado aos CC pertencentes ao usuário, lembrando que as minhas formulas tem que entender o valor em “C1” para que possam ser feito os cálculos.
Tentei usar validação de valores. Tentei usar combobox, tentei usar listbox mas cada um tem um problema que eu não consigo resolver, não conheço muito sobre VBA mas estou me esforçando para aprender, sera que alguém pode me ajudar de alguma forma ? qualquer comentário será bem vindo, e caso tenha algo na minha programação que eu fiz e vcs possam me ajudar a melhorar ficarei grato.

Usuários e senhas da planilha:
edson
12345

claudio
12345

ADMIN
ADMIN

 
Postado : 16/02/2017 6:27 pm
(@chferreira)
Posts: 5
Active Member
Topic starter
 

Primeira vez que estou usando aqui nao sei se o arquivo foi anexo mas segue do google drive:

https://drive.google.com/open?id=0B9c62 ... lhpekQ3Ujg
https://drive.google.com/open?id=0B9c62 ... zMtTXNubmc

 
Postado : 16/02/2017 6:39 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


CH, parece ser algo até simples e com muitas alternativas, em princípio.

Pode ser por Validação na própria célula - que aceita Listas - que podem ser determinadas através de seu UserForm inicial.

Ou por Caixa de Combinação (Formulários ou ActiveX) com vínculo ou atribuição de valor à célula.

Pode ser por OptionButton...

Etc.

Parece que teve intenção de anexar o arquivo. Tente novamente.

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

 
Postado : 16/02/2017 6:39 pm
(@chferreira)
Posts: 5
Active Member
Topic starter
 


CH, parece ser algo até simples e com muitas alternativas, em princípio.

Pode ser por Validação na própria célula - que aceita Listas - que podem ser determinadas através de seu UserForm inicial.

Ou por Caixa de Combinação (Formulários ou ActiveX) com vínculo ou atribuição de valor à célula.

Pode ser por OptionButton...

Etc.

Parece que teve intenção de anexar o arquivo. Tente novamente.

Caro edson, a planilha ta grande e nao to conseguindo anexar abaixo segue os links do google drive, desde ja agradeço a sua atenção e interesse em me ajudar

https://drive.google.com/open?id=0B9c6275u5gvsSURNYzF2ZENvc1E

 
Postado : 16/02/2017 7:02 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Está um pouco difícil trabalhar com seu arquivo.

Eu sugiro que seja atribuída uma Validação em C1 no login.

Para isso, precisa criar listas numa guia à parte, através de Nomes apenas ou através do próprio VBA.

De acordo com o login, determinada lista é atribuída na Validação.

Uma combinação de Ifs ou um Select pode resolver isso.

Segue exemplo abaixo, em que ccusto é a lista que será atribuída de acordo com o login.

Veja se consegue implementar.

Range("C1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=ccusto"
End With

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

 
Postado : 18/02/2017 10:47 am
(@chferreira)
Posts: 5
Active Member
Topic starter
 

Edson,

muito obrigado, ficou excelente a sua opção a unica coisa que esta atrapalhando é o fato de qualquer usuário poder digitar na célula "C1", ou seja ele consegue digitar um centro custo que nao seja da lista dele e as formula fazem os calculos porem apos os calculos aparecem uma msg de erro mas msm assim ele consegue visualizar o custos daquele CC que ele digitou, tem como eu impedir essa digitação ? ou alguma forma de TRAVAR os calculos dele so fazer o calculo do cc da lista ?
o codigo ficou assim:

If boxusuario.Text = "" And boxsenha.Text = "" Then
MsgBox " Digite Usuario e Senha ", vbInformation, "Erro"

ElseIf boxusuario.Text = "edson" And boxsenha.Text = "12345" Then
Unload LOGIN
Application.Visible = True
Range("C1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=EDSON"
End With

ElseIf boxusuario.Text = "claudio" And boxsenha.Text = "12345" Then
Unload LOGIN
Application.Visible = True
Sheets("SITE").Visible = xlSheetVisible
Sheets("CONSORCIO").Visible = xlSheetVisible
Sheets("PM").Visible = xlSheetVisible

Range("C1").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=CLAUDIO"
End With

 
Postado : 20/02/2017 6:59 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Segue exemplo com Caixa de Combinação (ActiveX) na Planilha.

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

 
Postado : 21/02/2017 12:54 pm