Ir ao conteúdo

Posts recomendados

Postado

Bom dia.

 

     Criei uma planilha de conversão em que abro uma pasta Excel que recebo via download de um servidor HTTP e altero o padrão da distribuição dos dados para upload no SAP. Através de uma Listbox seleciono o arquivo a ser convertido, salvo no servidor local e elimino o anterior.

    O problema é que tenho que manualmente retirar da pasta Downloads e colocar numa específica e possuo mais de 50 usuários que fazem uso essa aplicação, e naturalmente há remanejamento de pessoas o que torna o trabalho impossível de gerir.

     

      Gostaria de saber como fazer a aquisição do endereço da pasta Downloads de forma dinâmica, não através de caixa de diálogo, onde possa utilizar o comando chdir já implementado no Listbox. Pois a ideia é a menor interação possível entre usuário e aplicação.

 

Obrigado pela ajuda

 

Frederico Koch

Postado

No código utilizo uma coluna onde armazeno o nome dos arquivos que serão acessados pela Listbox

 

 

Private Sub CARREGA()
Application.ScreenUpdating = False
Call LIMPAR
Call LIMPA_LISTA
MyRow = 2


ChDrive "K:\DVTC_SPOM\ARQUIVOS DE PROJETOS\KAFFA" ****************'É AQUI QUE PRECISO ALTERAR
ChDir "K:\DVTC_SPOM\ARQUIVOS DE PROJETOS\KAFFA\"


     MyFile = Dir("*.xls") ''Seleciona todos os arquivos do Excel
    Do Until MyFile = "" ''(Conj. Até que)
        Cells(MyRow, 15) = MyFile ''( #1 Indica a coluna que serão inseridos os nomes de arquivos)
        MyRow = MyRow + 1 ''Seleciona o próximo arquivo .xls
        MyFile = Dir()
    Loop
Application.ScreenUpdating = True
UserForm1.ComboBox1.SetFocus
End Sub

Postado
8 minutos atrás, CasaDoHardware disse:

Não é possivel direcionar o download para uma pasta especifica?

 

Se o download for manual e você fizer pelo Chrome é possivel escolher a pasta.

O download é automático, na página do browser só aparece uma textbox onde você digita o número da nota e dá ok, entãoinicia o download direto. Não tenho como mudar isso.

Postado

Se você usa o Chrome da mudar sim.

 

Experimente!!
 

Abra o navegador

Clique nos ... a direita no alto da tela > Configurações

 

Na janela que abrir role ate avançado > Downloads

 

La você consegue alterar a pasta de download e ativar para salvar onde desejar manualmente.

 

 

  • Curtir 1
Postado
35 minutos atrás, CasaDoHardware disse:

Se você usa o Chrome da mudar sim.

 

Experimente!!
 

Abra o navegador

Clique nos ... a direita no alto da tela > Configurações

 

Na janela que abrir role ate avançado > Downloads

 

La você consegue alterar a pasta de download e ativar para salvar onde desejar manualmente.

 

 

Vou tentar esta tarde. Obrigado.

Postado

Boa noite, @Frederico.Koch

 

Um método mais simples, mas que pode não funcionar se o usuário moveu ou personalizou as pastas do sistema (caso de usuários avançados) seria:

 

PastaDownload = Environ("USERPROFILE") & "\Downloads"

  
Mas o método mais universal, abrangente e seguro seria usar o Shell, só é um pouco mais complexo:

 

 PastaDownload = CreateObject("Shell.Application").Namespace("knownfolder:{374DE290-123F-4565-9164-39C4925E467B}").Self.Path


 

Postado
12 minutos atrás, Edson Luiz Branco disse:

Boa noite, @Frederico.Koch

 

Um método mais simples, mas que pode não funcionar se o usuário moveu ou personalizou as pastas do sistema (caso de usuários avançados) seria:

 


PastaDownload = Environ("USERPROFILE") & "\Downloads"

  
Mas o método mais universal, abrangente e seguro seria usar o Shell, só é um pouco mais complexo:

 


 PastaDownload = CreateObject("Shell.Application").Namespace("knownfolder:{374DE290-123F-4565-9164-39C4925E467B}").Self.Path


 

Precisa de algum módulo específico?

Postado

Não é necessário, Frederico, pois a expressão já acessa diretamente o Shell sem ter que marcar referências antecipadamente ou seja, usa Late Binding e não Early Binding. E o Shell faz parte de todo e qualquer sistema Windows.

É só usar a expressão como está: dimensione a variável PastaDownload como String e use-a  em seu módulo normalmente.

  • Obrigado 1
Postado
3 horas atrás, Edson Luiz Branco disse:

Não é necessário, Frederico, pois a expressão já acessa diretamente o Shell sem ter que marcar referências antecipadamente ou seja, usa Late Binding e não Early Binding. E o Shell faz parte de todo e qualquer sistema Windows.

É só usar a expressão como está: dimensione a variável PastaDownload como String e use-a  em seu módulo normalmente.

@Edson Luiz Branco Funcionou perfeitamente, bastou inserir no comando ChDrive desta forma:

 

ChDrive CreateObject("Shell.Application").Namespace("knownfolder:{374DE290-123F-4565-9164-39C4925E467B}").Self.Path

 

Muito obrigado, agora posso replicar a planilha para os outros usuários sem maiores problemas.

 

Att,

 

Frederico

adicionado 26 minutos depois
42 minutos atrás, Frederico.Koch disse:

@Edson Luiz Branco Funcionou perfeitamente, bastou inserir no comando ChDrive desta forma:

 

ChDrive CreateObject("Shell.Application").Namespace("knownfolder:{374DE290-123F-4565-9164-39C4925E467B}").Self.Path

 

Muito obrigado, agora posso replicar a planilha para os outros usuários sem maiores problemas.

 

Att,

 

Frederico

 

Na verdade não funcionou, acessou a pasta Documentos...  abri o Regedit e procurei pelo endereço da pasta Downloads e confere com o descrito. 

Porém após alguns testes vi que precisava também do comando ChDir, então agora tá redondinho.

 

Obrigado

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...