Notifications
Clear all

Abrir planilha em outro diretório

9 Posts
1 Usuários
0 Reactions
3,617 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Estou no diretório - ThisWorkbook.Path & ( C:Casateste.xls - por exemplo)

Como abrir panilhas dentro de outro diretório. (D:Escritoriotestado.xls ou C:Escritoriotestado.xls - por exemplo) ou seja não importa se é c:; d;; e: etc.... com Path.

Agradeço a ajuda

Carlos Novaes :roll:

 
Postado : 21/11/2011 8:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Defina o novo Diretorio usando ChDir :

    Sub Abrir_LocalPasta()

        Set fs = CreateObject("Scripting.FileSystemObject")
       
        MsgBox CurDir ' Só para certificar do Caminho atual
       
        'Coloque aqui o Caminho e Pasta que deseja abrir
        ChDir "D:MeusArquivos"
       
        MsgBox CurDir
       
        'Definido o diretorio, a caixa de dialogo abrirá no local definido acima
        FiletoOpen = Application _
        .GetOpenFilename("Excel (.xls), .xls", , "Selecione a planilha")
       
        If FiletoOpen <> False Then
            WdlFolder = fs.getParentFolderName(FiletoOpen)
            WdlNome = fs.GetFileName(FiletoOpen)
        Else
            Exit Sub
        End If
       
    End Sub

Agora para alterar novamente a Letra da Unidade, utilize :

ChDrive "M" 'Se trocar o diretorio sem trocar a letra não funciona
ChDir "M:MeusArquivos"

[]s

 
Postado : 21/11/2011 8:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite Mauro

Eu NÃO quero colocar na macro ( ChDir "D:" ) ou outro drive por exemplo ( ChDir "F:") assim posso usar em qual drive inclusive em PenDrive. Quanto ao diretório tudo bem é fixo mas o drive não.

Não sei se me fiz claro, se tiver jeito agradeço

Abraços
Carlos Novaes :roll:

 
Postado : 22/11/2011 5:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Carlos, agora que citou a questão do PenDrive que me lembrei que já havia respondido uma duvida parecida, pensei que tinha sido aqui no Planilhando, mas não foi, e em minhas pesquisas encontrei o Tópico que por acaso tambem foi uma pergunta sua no Forum do Tomas no Tópico abaixo :
Diretorio
http://www.tomasvasquez.com.br/forum/vi ... hDir#p6756

E como não retornou, pensei que já havia resolvido, então segue o que respondi :

Novaes, vamos por parte :
Como citou :
Assim posso usar até em PenDrive, ou em qual quer PC.
Imagino que os arquivos estarão em locais variáveis, então para utilizar ChDir, devemos informar explicitamente na Rotina que não é o seu caso, pelo que entendi, quer transportar os arquivos, então devemos utilizar tambem a opção :
ChDrive - Para alterar tambem a Letra da Unidade, exemplo :
ChDrive "D" 'Se trocar o diretorio sem trocar a letra não funciona
e depois :
ChDir "D:MeusArquivos"

O "x" da questão é que a Letra pode variar de PC para PC, ainda mais a Letra que é atribuída automaticamente para Pen-Drive, dificultando definirmos explicitamente na rotina.

Então minha sugestão, se a intensão for realmente que transportara os arquivos, é utilizar :
ThisWorkbook.Path - Irá captar o Caminho do arquivo.
podendo ser adaptada, para :
Workbooks.Open (ThisWorkbook.Path & "Cadastro2.xls") - Supondo que o arquivo está no mesmo diretorio, irá abrir o mesmo.

Resumindo, em ThisWorkbook.Path, capturamos o caminho onde o arquivo está sendo executado.
Veja no Forum do Tomas (link acima) onde indiquei outros posts sobre o assunto, e tambem veja aqui no Planilhando o Tópico abaixo:
Thisworkbook.Path
viewtopic.php?f=10&t=2324&p=10005&hilit=ChDir#p10005

[]s

 
Postado : 22/11/2011 6:01 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite Mauro

As pasta de planilhas estão em diretórios diferente.

Abraços

Carlos Novaes :roll:

 
Postado : 22/11/2011 8:27 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Carlos, se o local do arquivo que quero abrir, não tem endereço (Path) fixo, a única maneira e bem mais demorada seria ter uma rotina para pesquisar em todas as Pastas e Drives do PC pelo nome do arquivo e quando localizado atribuir o Path, sinceramente, não acho o ideal, imagine o tempo de procura em um Drive de 500gb particionado em 4 partes com mais de 20000 pastas, lembrando que com o uso de um pendrive, como eu disse acima, a letra é variavel e ainda tem a letra associada ao Drive de CD e outros componentes que possa ter no pc, tipo leitores de cartões de memória.

Sendo assim, eu aconselho ou transportar todos os arquivos que quer em uma unica pasta, ou usar a rotina para abrir a Caixa de Dialogo para selecionar o arquivo, o GetOpenFilename.

Se algum colega tiver alguma outra sugestão, se tiver uma solução em VBA ainda não atingi este nivel.

abraços

 
Postado : 22/11/2011 8:51 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Observação: No excel 2010, quando vc muda as planilhas de pasta, unidade de disco, etc. Ao abrir o arquivo no excel 2010 ele verifica e vincula todas as planilhas automaticamente, mesmo que estavam em rede.

 
Postado : 23/11/2011 2:16 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

sitevivo, interessante, mas pelo que entendi o que o nosso colega pretende.

Tenho um Arquivo "A.xls", não importa em qual drive, do qual atravez de uma rotina irá abrir o Arquivo "B.xls" que estava originalmente em :

ThisWorkbook.Path & ( C:CasaB.xls)
então copio o Arquivo "B.xls" para o meu PenDrive onde o mesmo apos ser plugado no PC assumiu a Letra "F", sendo assim na rotina a instrução que se encontra na rotina em A.xls para abrir o arquivo no Path definido não irá encontra-lo, pois a mesma deveria ser :
ThisWorkbook.Path & ( F:CasaB.xls)

Não sei se esta funcionalidade do excel 2010 irá assimilar esta situação, lembrando que a letra atribuida a um PenDrive é variavel pois depende de cada maquina.
Sendo assim, não tem como eu captar esta variável, a não ser que faça a busca no pc.

[]s

 
Postado : 23/11/2011 5:23 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Envia as planilha que eu faço um teste no Excel 2010.

 
Postado : 24/11/2011 10:13 am