Ir ao conteúdo
  • Cadastre-se

Nome do usuário no excel


Posts recomendados

Estou tendo uma dificuldade, estou tentando criar uma fórmula que sempre que um usuário alterar algo dentro de uma planilha, o nome desse usuário se auto-preenchera na célula em que se encontra esta fórmula. Utilizei os códigos no VBA mencionados no link abaixo, mas assim que os usuários clicam em "Habilitar Conteúdo" da planilha, a fórmula não funciona mais.

 

http://www.tomasvasquez.com.br/blog/microsoft-office/vba-retornando-o-nome-do-usuario-logado

Link para o comentário
Compartilhar em outros sites

Pelo que entendi...o problema é que após realizar as alterações, aparece na célula o nome ex.: (usuario A), salva e fecha a planilha. 
Quando novo Usuário (usuario B), abre a mesma, as células que continham o nome (usuario A), são alteradas para o nome do usuário que esta alterando a planilha (usuario B),não ficando salvo assim o usuário que fez a alteração, mas sim o usuário que está com a planilha aberta.

 

Se for isso mantenha a sua Funcao UsuarioRede() no Modulo Padrão e insira este codigo (abaixo), no modulo da respectiva Planilha (aba):

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Formula = "=UsuarioRede()" Then
        Target.Value = UsuarioRede
    End If

End Sub

Ou se deseja para todas as planilhas (abas), cole no modulo de EstaPasta_de_trabalho:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 If Target.Formula = "=UsuarioRede()" Then
        Target.Value = UsuarioRede
    End If
End Sub

Como utilizar: -> Na celula desejada, digite a Funcao UsuarioRede como fazia anteriormente -> =NomeUsuario() e a macro irá sobrepor a formula com nome do usuario atual, automaticamente.

Link para o comentário
Compartilhar em outros sites

Pessoal, obrigado pelo retorno, mas vou tentar explicar novamente o que necessito.

 

O Problema: O Usuário A abre a planilha, no topo, vai aparecer uma mensagem com a opção "Habilitar Conteúdo", por ser uma planilha com VBA não confíavel. O usuário clica na opção e então a fórmula toma ação e preenche com o nome "Usuário A". O Usuário B realiza o mesmo processo e a célula se preenche com o nome "Usuário B". Quando o Usuário A abre a planilha, a célula já não preenche mais com o nome dele, nem mostra a opção "Habilitar Conteúdo".

 

O que eu preciso: Uma fórmula (com ou sem código no VBA) que preencha uma célula com o nome do usuário que abriu a planilha, no momento em que ele alterar qualquer dado da mesma. Uma fórmula que pode ser tomada como exemplo, seria a "AGORA", as únicas diferenças entre a que necessito e a fórmula "AGORA", é que a "AGORA" se atualiza no momento em que a planilha é aberta e retorna o valor da data e hora.

Link para o comentário
Compartilhar em outros sites

Pelo que entendi.. pelo menos parte do que precisa eu respondi no meu ultimo post.

 

Cole o codigo abaixo, no modulo de EstaPasta_de_trabalho: (vide img)

e para a macro seja executada automaticamente use a sua função =UsuarioRede() na celula desejada.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
 If Target.Formula = "=UsuarioRede()" Then
        Target.Value = UsuarioRede
        Target.OffSet(,1).Value = Vba.Now
    End If
End Sub

45585_imagem.jpg

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...