Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Avatar do usuário
Por JanilsonBrito
Posts Avatar
#15184
Senhores, mais uma vez preciso da ajuda de vocês.
preciso criar uma rotina que localiza determinado arquivo e importa os dados, porem preciso fazer isso com vários arquivos.
ex:
c:\arquivos\abc.txt; xyz.txt; def.txt
Consegui montar o vba para verificar 01 arquivo e importar, queria que a rotina continuasse até importar todos aquivos.
Me corrijam se eu estiver errado, minha rotina abaixo, localiza o arquivo abc.txt, se ele existe importa executando a rotina Importaarquivoabc , se não existe finaliza.
O que eu gostaria é: procura o arquivo abc.txt, se achar!Executa a rotina que importa o arquivo abc.txt, se não achar, vai procurar o próximo arquivo, xyz.txt. Se achar o arquivo xyz.txt executa a rotina que importa o mesmo se não achar, vai procurar o arquivo def.txt. etc....
Como tenho mais ou menos 10 arquivos para importar e todos com nomes diferentes, gostaria de criar uma unica rotina que fizesse isso, sendo que se caso não ache o arquivo não pare a rotina até o final.

Sub localiza_importa_arq()
Dim strPath As Variant
strPath = "\c:\arquivos\abc.txt"
If Dir(strPath) = vbNullString Then
strCheck = False
Else
strCheck = True
Importaarquivoabc
End If

End Sub
Por RodrigoRMC
#15311
Boa noite,

Crie uma Sub que recebe por parâmetro o nome arquivo a ser importado, essa função sabe abrir o arquivo e executar o processamento (Ex: Sub RecebeArquivoExecutaProcessamento

Crie uma Sub que que tenha um loop e chame a sub RecebeArquivoExecutaProcessamento toda vez que for necessária.
A sua lógica de IF/Else não funciona, tem que ser uma lógica de Do/Loop, For/Next, While/Wend.

Atenciosamente,
RodrigoRMC
Avatar do usuário
Por alexandrevba
Avatar
#15324
Bom dia!!
Tente.
Código: Selecionar todos
Sub UsePesquisaForum()
    Const strPath As String = "C:\SeuDiretórioAqui\"
    Dim strExtension As String
     
    Application.ScreenUpdating = False
    ChDir strPath

    strExtension = Dir(strPath & "*.txt")
     
    Do While strExtension <> ""
        'Código de importação
        strExtension = Dir
    Loop
    Application.ScreenUpdating = True
     
End Sub
Att
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord