Notifications
Clear all

Caminho padrão em todos os computadores

5 Posts
3 Usuários
0 Reactions
1,067 Visualizações
 ever
(@ever)
Posts: 36
Eminent Member
Topic starter
 

Boa tarde galera,

Tenho uma planilha que vou enviar para diferentes vendedores, ela tem uma macro pra gerar pdf do arquivo, até aí tudo bem! Só que ao enviar para os vendedores preencher essas planilhas nos seus computadores pessoais, eles nao conseguem gerar o pdf por que o caminho onde ele vai salvar é diferente. Preciso de uma linguagem padrão que sirva para todos os sistemas operacionais, que ao gerar o pdf, o arquivo seja salvo no desktop.

Espero que possam me ajudar, brigadão!

 
Postado : 03/12/2014 12:28 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Veja se te ajuda:

http://stackoverflow.com/questions/1755 ... ss-of-user

http://www.mrexcel.com/forum/excel-ques ... sktop.html

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 03/12/2014 12:40 pm
 ever
(@ever)
Posts: 36
Eminent Member
Topic starter
 

Dei uma olhada, mas não manjo muito. Por gentileza, me ajuda a colocar isso na minha fórmula?
A minha fórmula está travada para gerar o pdf somente após preencher alguns campos, mas a dificuldade pra mim está em salvar o arquivo. Basicamente em encontrar um diretório padrão para o desktop.
Segue minha fórmula atual

Sub AleVBA_1365()
Dim MyArray As Range
Dim WS As Worksheet
Set WS = Sheets("Pedido")
Set MyArray = WS.Range("A5, A7, A9")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("A14, A16")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("A11, A14, A16")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("G7, N5, N9")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("O11, P9, P14")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("P16, T7, V9")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("W5, Z7, AC12")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
      
Set MyArray = WS.Range("AC14, AC16")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("P14, P16")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
            
        'Gera meu PDF
            destino = "C:UsersUserDesktopPedido "
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        destino & Range("AC7").Value & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False

    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
End Sub
 
Postado : 03/12/2014 12:50 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Bom, peguei o bonde andando desse código que o alexandre fez, mas tente assim:

Sub AleVBA_1365()
Dim MyArray As Range
Dim WS As Worksheet
Set WS = Sheets("Pedido")
Set MyArray = WS.Range("A5, A7, A9")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("A14, A16")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("A11, A14, A16")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("G7, N5, N9")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("O11, P9, P14")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("P16, T7, V9")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("W5, Z7, AC12")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
      
Set MyArray = WS.Range("AC14, AC16")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
      
Set MyArray = WS.Range("P14, P16")
    If IsEmpty(MyArray) Then
        MsgBox "Favor preencher as células vazias!"
      Else
            
        'Gera meu PDF
            destino = "C:Users" & Environ$("Username") & _
    "DesktopPedido "
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        destino & Range("AC7").Value & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False

    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
    End If
End Sub

Apenas troquei esta linha:

destino = "C:UsersUserDesktopPedido "

Por esta:

destino = "C:Users" & Environ$("Username") & _
"DesktopPedido "

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 03/12/2014 1:37 pm
(@luiz-elias)
Posts: 26
Eminent Member
 

Pessoal, bom dia!

Acho que assim também funciona:

destino = Environ("USERPROFILE") & "DesktopPedido"

O USERPROFILE já vai capturar o caminho C:UsersNome_do_Usuario

 
Postado : 04/12/2014 7:11 am