Jump to content

Pasta os meus documentos


Recommended Posts

Bom dia

Tenho um ficheiro Excel numa pasta num servidor, este ficheiro é utilizado por vários utilizadores e tem por finalidade guardar um ficheiro de resumo na pasta os meus documentos em cada PC de cada utilizador.

Como o caminho para essa pasta varia de utilizador para utilizador há alguma forma de saber qual a localização da referida pasta para os vários utilizadores?

Obrigado desde já.

Link to comment
Share on other sites

Olá Pedro

Não sei se o teu objectivo é que seja identificado o caminho para ".../osmeusdocumentos/pastaarquivo" para que seja lá sempre guardado ou se o teu código obriga sempre a definir essa pasta. (alguma confusão naquilo que escrevi).....

Porque não deixas o local de gravação ser definido pelo utilizador no seu PC? Tipo:

Sub Exportar_Resumo()

Dim Export_Resumo

On Error GoTo Sair


Export_Resumo = Application.GetSaveAsFilename(, "Microsoft Excel Workbook (*.xls), *.xls")

Sheets("Resumo").Copy

ActiveWorkbook.SaveAs Filename:=Export_Resumo, FileFormat:=xlNormal

ActiveWindow.Close


Sair:

End Sub

Ou semelhante....

Cumprimentos,

Miguel

Link to comment
Share on other sites

Ok vê se assim funciona!!!

Sub Exportar_Resumo()

Dim wb As Workbook

Worksheets("Resumo").Copy
Set wb = ActiveWorkbook

wb.SaveAs "c:\documents and settings\" & Environ("username") & "\Os meus documentos\pasta arquivo\Resumo" _
& Format(Now(), "dd_mm_yyyy -hh mm") & ".xlsx"


wb.Close
End Sub

Caso a directoria c:\ não seja a do windows, penso que assim também funciona (identificar a raiz):

Sub Exportar_Resumo()

Dim wb As Workbook

Worksheets("Resumo").Copy
Set wb = ActiveWorkbook

wb.SaveAs (SYSTEMDRIVE & "\documents and settings\" & Environ("username") & "\Os meus documentos\pasta arquivo\Resumo" _
& Format(Now(), "dd_mm_yyyy -hh mm") & ".xlsx")


wb.Close
End Sub

Ou ainda: os dois casos acima e caso a pasta "pasta arquivo" não exista, então criar:

Sub Exportar_Resumo()

Dim wb As Workbook
Dim criar_pasta

If Dir(SYSTEMDRIVE & "\documents and settings\" & Environ("username") & "\Os meus documentos\pasta arquivo\", vbDirectory) = "" Then
    criar_pasta = MsgBox("A directoria não existe. Deseja cria-la?", vbYesNo)
     
    If criar_pasta = vbYes Then
        MkDir SYSTEMDRIVE & "\documents and settings\" & Environ("username") & "\Os meus documentos\pasta arquivo\"
    End If
End If

Worksheets("Resumo").Copy
Set wb = ActiveWorkbook

wb.SaveAs (SYSTEMDRIVE & "\documents and settings\" & Environ("username") & "\Os meus documentos\pasta arquivo\Resumo" _
& Format(Now(), "dd_mm_yyyy -hh mm") & ".xlsx")


wb.Close
End Sub

Estou a considerar (nos 2 primeiros casos) que existe uma pasta nos meus documentos com o nome "pasta arquivo".

Para identificar os vários exports feitos, uma vez que estou a designar o nome Resumo com estático, a data e hora que foi feito o save.

Atenção que estou também a considerar que a folha a ser gravada se chama "Resumo".

Cumprimentos,

Miguel

Link to comment
Share on other sites

Atenção que no Windows 7 a pasta de utilizadores não é documents and settings, é users.

De qualquer modo Environ("USERPROFILE") devolve a pasta do utilizador, ou caso queiras mesmo saber qual a pasta de documentos do utilizador, mesmo que possater mudado o nome ou a ter colocado em qualquer local de qualquer disco (no meu caso, tenho dois discos e fiz isso), podes usar uma função como esta:


Public Function PastaSistema(NumPasta As Integer) As String
    Dim objFSO As Object
    Dim objShell As Object
    Dim objFolder As Object
    Dim objFolderItem As Object
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.NameSpace((NumPasta))  ' Ver Lista
    If objFolder Is Nothing Then
        PastaSistema = ""
    Else
        Set objFolderItem = objFolder.Self
        PastaSistema = objFolderItem.Path
    End If
End Function


'====================================
'         PASTAS DO WIN7 x86 e x64
'====================================

'Lista de Pastas
'-----------------------------------
' Num  --  Nome  =   Pasta por defeito

' 2  --  Programas(User) = C:\Users\[utilizador]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
' 5  --  Os Meus Documentos = C:\Users\[utilizador]\Documents
' 6  --  Favoritos(User) = C:\Users\[utilizador]\Favorites
' 7  --  Arranque(User) = C:\Users\[utilizador]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
' 8  --  Itens recentes = C:\Users\[utilizador]\AppData\Roaming\Microsoft\Windows\Recent
' 9  --  SendTo = C:\Users\[utilizador]\AppData\Roaming\Microsoft\Windows\SendTo
'11  --  Menu Iniciar = C:\Users\[utilizador]\AppData\Roaming\Microsoft\Windows\Start Menu
'13  --  A Minha Música =
'14  --  Os Meus Vídeos =
'16  --  Ambiente de trabalho = C:\Users\[utilizador]\Desktop
'17  --  Computador = C:
'20  --  Fonts = C:\Windows\Fonts
'22  --  Menu Iniciar = C:\ProgramData\Microsoft\Windows\Start Menu
'23  --  Programas = C:\ProgramData\Microsoft\Windows\Start Menu\Programs
'24  --  Arranque = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
'25  --  Ambiente de Trabalho Público = C:\Users\Public\Desktop
'26  --  Roaming = C:\Users\[utilizador]\AppData\Roaming
'27  --  Printer Shortcuts =
'28  --  Local = C:\Users\[utilizador]\AppData\Local
'29  --  Arranque = C:\Users\[utilizador]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
'30  --  Arranque = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
'31  --  Favoritos = C:\Users\[utilizador]\Favorites
'32  --  Temporary Internet Files =
'33  --  Cookies = C:\Users\[utilizador]\AppData\Roaming\Microsoft\Windows\Cookies
'34  --  History =
'35  --  ProgramData = C:\ProgramData
'36  --  Windows = C:\Windows
'37  --  System32 = C:\Windows\System32
'38  --  Program Files (x86) = C:\Program Files (x86)
'39  --  As Minhas Imagens =
'40  --  [utilizador] = C:\Users\[utilizador]
'41  --  SysWOW64 = C:\Windows\SysWOW64
'42  --  Program Files (x86) = C:\Program Files (x86)
'43  --  Common Files = C:\Program Files (x86)\Common Files
'45  --  Templates = C:\ProgramData\Microsoft\Windows\Templates
'46  --  Documentos Públicos = C:\Users\Public\Documents
'48  --  Ferramentas Administrativas =
'49  --  Ligações de rede =
'53  --  Música Pública = C:\Users\Public\Music
'54  --  Imagens Públicas =
'55  --  Vídeos Públicos =
'-------------------------------------------------

O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.