Notifications
Clear all

Caminho da Área de Trabalho (Desktop) via VBA

5 Posts
4 Usuários
0 Reactions
1,128 Visualizações
(@paraujo)
Posts: 0
New Member
Topic starter
 

Olá,

Tenho uma planilha com uma aba de parâmetro, onde por exemplo a célula A2 eu gostaria que retornasse o endereço(caminho) do desktop do usuário (C:UsersparaujoDesktop) da máquina, porém de forma automática.

Alguém poderia me ajudar com um código VBA para retornar o caminho da Área de Trabalho da máquina do usuário?

Não sei se pode ser, mas poderia ser algo parecido como retornar o nome do usuário da máquina (exemplo abaixo):

Function NomeUsuario()
    NomeUsuario = Application.UserName
End Function

Daí em uma célula qualquer eu faço =NomeUsuario() e o nome do usuário da máquina retorna nessa célula.

Obrigado.

 
Postado : 10/11/2016 3:12 pm
(@mprudencio)
Posts: 0
New Member
 

Se vc quer o nome do usuario pode usar a instrução environ


Sub usuario ()


cells(1,1).value = Environ("UserName")

End Sub

 
Postado : 10/11/2016 4:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se vc quer o nome do usuario pode usar a instrução environ

Mas não é isso que ele quer.
Ele quer uma UDF *(função definida pelo usuário) que retorne o endereço físico da área de trabalho...

- Coloque a função num módulo qualquer:

Public Function AREA_DE_TRABALHO()
    AREA_DE_TRABALHO = VBA.Environ("USERPROFILE") & "DESKTOP"
End Function

- Agora pode escrever em qquer célula do Excel a seguinte fórmula:

=AREA_DE_TRABALHO()
 
Postado : 10/11/2016 7:46 pm
(@edsonbr)
Posts: 0
New Member
 

Mais uma:

Function CaminhoDesktop() As String
  Const ssfDESKTOPDIRECTORY As Integer = &H10
  Dim oShell As Object, oPastaEspecial As Object
    Set oShell = CreateObject("Shell.Application")
    Set oPastaEspecial = oShell.Namespace(ssfDESKTOPDIRECTORY)
    If Not oPastaEspecial Is Nothing Then
      CaminhoDesktop = oPastaEspecial.Self.Path
    End If
End Function
 
Postado : 10/11/2016 8:59 pm
(@paraujo)
Posts: 0
New Member
Topic starter
 

Olá,

Muito obrigado EdsonBR, fernando.fernandes e MPrudencio!!!

fernando.fernandes, acabei utilizando a sua ideia pois a que se encaixou perfeitamente no que eu precisava.
Obrigado galera!!

 
Postado : 11/11/2016 6:30 am