Notifications
Clear all

Instrução Environ

12 Posts
7 Usuários
0 Reactions
2,104 Visualizações
(@tiago_s)
Posts: 24
Eminent Member
Topic starter
 

Galera,

To precisando de uma ajuda com a instrução Environ, gostaria de:
1- Criar uma relação de usuários onde constasse uma relação entre o nome do usuário e o nome do computador logado na rede para cada usuário da lista;
2- É possível colocar uma planilha em rede para vários usuários acessarem ao mesmo tempo?
Desde já obrigado.

 
Postado : 06/04/2017 10:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

É possível criar esta lista sim mas vc teria que pedir pra todos abrirem *(individualmente, um de cada vez) seu arquivo com macro, para que a macro capturasse essa informação e escrevesse na planilha e salvasse.

Vc poderia também, gravar esta informação num access, assim é garantido que todos conseguirão gravar estas informações ao abrirem o xlsm...

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

 
Postado : 06/04/2017 10:59 pm
(@tiago_s)
Posts: 24
Eminent Member
Topic starter
 

Fernando,
Estou fazendo um projeto no excel mais voltado para cálculo/consulta, onde não necessidade de salvar informações.
Como poderia fazer uma relação de usuários que pudesse acessar uma planilha usando a instrução Environ, com nome do usuário e nome do computador em rede, as duas condições, para cada usuário?

 
Postado : 07/04/2017 5:37 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Tiago_S,

Bom dia!

Você deseja que somente usuários autorizados acessem seu arquivo? É isso? Se for isso você pode elaborar uma planilha onde constem, por exemplo, Matrícula, Nome do Computador na rede e Nome do Usuário do Micro e criar um formulário que será carregado na inicialização do arquivo, solicitando o LOGIN e SENHA do usuário. Daí é só fazer uma verificação dos dados entrados nesse formulário com o que estiver registrado na planilha e permitir ou negar o acesso.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 07/04/2017 5:53 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Fernando,
Estou fazendo um projeto no excel mais voltado para cálculo/consulta, onde não necessidade de salvar informações.
Como poderia fazer uma relação de usuários que pudesse acessar uma planilha usando a instrução Environ, com nome do usuário e nome do computador em rede, as duas condições, para cada usuário?

Vc não salva informações, beleza, mas vc quer uma lista de usuários que acessam. Essa lista sim deverá ser salva em algum local... certo?
Não tem como vc rodar a macro e identificar todo mundo que PODE rodar seu sistema. Tem como coloocar a macro no sistema e identificar quem está rodando o sistema, salvando este dado em outro local...
Por isso a pergunta de ONDE vc deseja salvar esta informação é importantíssima... Se for salvar num outro XLSX, ou num TXT, tem-se que se preocupar com o status de somente leitura.... por isso um access poderia ser melhor...
vc tb pode gravar um arquivo na rede *(no mesmo endereço do xlsm) com nome de usuario.. .e dentro os dados que vc quiser,,,....

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

 
Postado : 07/04/2017 6:39 am
 ti02
(@ti02)
Posts: 34
Eminent Member
 

Você só precisa saber previamente qual o nome dos usuarios que vao acessar , assim nao vai ter conflito de acesso entre as planilhas .

para deixar mais de uma pessoa acessar a planilha vai em revisão e compartilhar planilha.

Sub REGISTROACESSO()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Worksheets("REGISTRO").Select
'VERIFICANDO QUAL USUARIO'
If Environ("USERNAME") = "informatica.jca" Then
Range("B2").Value = Environ("Computername")
Range("A2").Value = Environ("USERNAME")
user = Environ("USERNAME")
Range("C2").Value = Now()
ElseIf Environ("USERNAME") = "caio.g" Then
Range("B3").Value = Environ("Computername")
Range("A3").Value = Environ("USERNAME")
user = Environ("USERNAME")
Range("C3").Value = Now()
End If
'MsgBox "Bem vindo(a), " & user

'GRAVANDO REGISTRO NA COLUNA CORRESPONDENTE DE ACORDO COM CADA USUARIO'
'REFERENTE AO USUARIO INFORMATICA.JCA'
If Range("A2").Value = "informatica.jca" Then
Range("E2").Select
Do
If Not IsEmpty(ActiveCell.Offset(0, 0).Value) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell.Offset(0, 0).Value)
ActiveCell.Offset(0, 0).Value = Range("A2").Value
ActiveCell.Offset(0, 1).Value = Range("B2").Value
ActiveCell.Offset(0, 2).Value = Range("C2").Value

End If

'REFERENTE AO USUARIO CAIO.G'
If Range("A3").Value = "caio.g" Then
Range("H2").Select
Do
If Not IsEmpty(ActiveCell.Offset(0, 0).Value) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell.Offset(0, 0).Value)
ActiveCell.Offset(0, 0).Value = Range("A3").Value
ActiveCell.Offset(0, 1).Value = Range("B3").Value
ActiveCell.Offset(0, 2).Value = Range("C3").Value

End If
    'LIMPAR DADOS DE USUARIOS DO REGISTRO'
    Range("A2:C100").Select
    Selection.ClearContents
    Range("A1").Select
    
'----------------------------------'

ActiveWorkbook.Save
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
 
Postado : 07/04/2017 8:18 am
(@tiago_s)
Posts: 24
Eminent Member
Topic starter
 

Boa Tarde Galera,

Agradeço a atenção,

Minha ideia a princípio é deixar uma planilha na rede somente consulta, para esse projeto, não vejo necessidade de registro de acesso do usuário, pois a planilha tem finalidade de fazer cálculos e algumas consulta financeiras, mas achei interessante a ideia de registro, que sabe para projetos futuros.
No intuito de "proteger" ou "restringir" o acesso do usuários, gostaria que o usuário que fosse acessar, tivesse como condição o nome do pc e o nome da maquina logada na rede na Lista de acesso.
Tipo: Usuário Fernando - Nome do PC: Fernando e Nome em Rede PC01, Usuário wag - Nome do PC WAG e Nome em Rede PC02, Usuário ti02 - Nome do PC TI02 e Nome em Rede PC03, ...

Conseguir desse jeito, mais faltou o da REDE

Sub Usuario_Acesso()
If VBA.Environ("username") <> "Cadastro" Then
MsgBox "Este App não está autorizado para esse computador!", vbCritical, "USO NÃO AUTORIZADO"
Application.DisplayAlerts = False  
Application.Quit
ActiveWorkbook.Close savechanges:=False          
Application.DisplayAlerts = True              
Else
Exit Sub  
End If
End Sub

Não tenho muito conhecimento em VBA alguém poderia deixar um modelo anexado, para ter uma base.

 
Postado : 07/04/2017 12:28 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Tiago, boa tarde.

Como não trabalho com rede, desculpa se estiver dando alguma bola fora, ok? Mas acredito que o Environ não recupera essa informação que vc está procurando, vc precisaria de uma estratégia mais poderosa.

Acho que se vc esgravatasse um pouco a poderosa API Windows Management Instrumentation (WMI) vc poderia explorar com bastante profundidade o sistema em busca desses parâmetros, através de uma query WQL.

Caso vc não conheça e queira ter uma idéia, dê uma olhadela neste artigo em VBA Brazil Specialist: Exponha os segredos do sistema WMI API com o VBA (Só não se assuste com o tubarão, rsrsrsr).

No próprio artigo tem alguns links interessantes também para aprofundar-se no assunto.

Se quiser usar early binding, faça referência à biblioteca Microsoft WMI Scripting V1.2 Library.

 
Postado : 07/04/2017 1:55 pm
(@tiago_s)
Posts: 24
Eminent Member
Topic starter
 

Boa Noite Galera,

Valeu pela dica Edson tem muitos assuntos interessante no link indicado

Para dificultar "um pouco" o acesso há planilha pensei em usar o Username And USERDOMAIN, já que pelo usuário de Rede está difícil
Alguém poderia dar um ajuste no código? Abraço

 
Postado : 10/04/2017 10:27 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Cara se nao precisa registrar nao complica, nao entendo pq o povo complica.

Cria uma tabela com usuario e senha.

Cria um formulario onde o usuario seja obrigado a digitar o usuario e a senha para abrir o arquivo.

Se o usuario nao estiver na lista ele nao abre o arquivo.

Simples e direto.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 11/04/2017 5:52 am
(@teleguiado)
Posts: 142
Estimable Member
 

Tiago_S veja se é isso.

Obrigado.

Teleguiado.
E-mail: [email protected]

 
Postado : 11/04/2017 7:33 am
(@tiago_s)
Posts: 24
Eminent Member
Topic starter
 

Boa Tarde Galera,

Marcelo, pensei nessa possibilidade de usuário e senha, porém, NO MEU CASO, não seria o mais indicado, pois é mais "seguro" restringir o acesso a planilha ficando vinculada ao computador do que a combinação de usuário e senha, pois o mesmo código de senha e usuário poderia ser usado por muitos usuários (não autorizados).

Descobrir a instrução Environ e pelo pouco que vi tem muitos recursos interessantes.

Teleguiado, valeu pelo ajuste. Fiz uma pequena... modificação!!! Acho que até o momento vai "dificultar e/ou restringir um pouco" o acesso.

Se Alguém tiver outra ideia... Estou sempre disposto a aprender, Abraços.

 
Postado : 11/04/2017 2:05 pm