Ir para conteúdo
Fórum Script Brasil
  • 0

Abrir dois arquivos texto num mesmo código


Zow

Pergunta

Pessoal,

Estou fazendo uma Macro que lê dados de um arquivo texto, gera uma planilha com esses dados organizados e abre e edita outro arquivo texto com apenas alguns dos dados.

Não estou conseguindo colocar a abertura e manipulação em um único código. pois quando vou abrir o segundo arquivo para edição, me retorna a mensagem de que o arquivo já está aberto.

É possível abrir dois arquivos texto ao mesmo tempo?

como posso fazer isso?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Segue o código:

While (paciência)

Ajuda++

rsrsrs :blush:

Option Explicit
Public Sub carregavolumetotal()
    'Variáveis para uso no loop
    Dim Arquivo As Integer
    Dim CaminhoArquivo As String
    Dim TextoArquivo As String
    Dim TextoProximaLinha As String
    Dim ContadorLinha As Long
   
'Declaração de variáveis para uso no arquivo
    Dim nome As String

    'Configura a leitura do arquivo
    Arquivo = FreeFile
    
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'LISTAGEM DOS ARQUIVOS (essa função eu baixei da net e serviu pro meu caso, então não mudei)
    'Ela abre os arquivos de um diretório e vai listando eles, no meu caso usei isso para que os arquivos fossem sendo manipulados automaticamente.
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Dim oSearch As FileSearch

   Dim strDirName As String:  strDirName = InputBox("Digite o caminho do diretório:", "Caminho")
   Dim strPrompt As String: strPrompt = strDirName & Chr(13) & Chr(13)
   Dim I As Long

   Set oSearch = Application.FileSearch

   With oSearch

      .LookIn = strDirName
      .SearchSubFolders = False
      .Filename = "*.*"
      .Execute
      If .FoundFiles.Count > 0 Then

         For I = 1 To .FoundFiles.Count
            strPrompt = strPrompt & .FoundFiles(I) & Chr(13)
    
    
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'INICIO DA PROGRAMAÇÃO: RECEBE O NOME DOS ARQUIVOS, CRIA PLANILHA E IMPRIME A INFORMAÇÃO
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    'Abre o arquivo para leitura
    Open .FoundFiles(I) For Input As Arquivo
    ContadorLinha = 1

    'Lê o conteúdo do arquivo linha a linha
    Do While Not EOF(Arquivo)
        Line Input #Arquivo, TextoProximaLinha
        TextoProximaLinha = TextoProximaLinha & vbCrLf
        TextoArquivo = TextoArquivo & TextoProximaLinha
        
        'Armazenando as informações de cada linha do texto nas poições relativas 
        'OBS: AQUI O ARQUIVO É GIGANTESCO, ENTÃO VOU RESUMIR
        
        INFO = Mid(TextoProximaLinha, 1, 2)
        INFO2 = Mid(TextoProximaLinha, 3, 8)
        INFO3 = Mid(TextoProximaLinha, 11, 2)
             
             
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Preenche as colunas na planilha 
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        
        ThisWorkbook.Sheets("planilha").Cells(ContadorLinha, 1).Value = INFO1
        ThisWorkbook.Sheets("planilha").Cells(ContadorLinha, 2).Value = INFO2

 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' NESTA PARTE EU QUERIA ABRIR UM OUTRO ARQUIVO TEXTO E EDITÁ-LO COM AS INFORMAÇÕES DENTRO DESSE MESMO LOOP!!!!
' MAS QUANDO USO O OPEN, ELE DIZ QUE O ARQUIVO JÁ ESTÁ ABERTO!!!
' 
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''     
        
        ContadorLinha = ContadorLinha + 1
    Loop
        
        
    'Coloca na janela de verificação imediata
    Debug.Print TextoArquivo

    'Fecha o arquivo
    Close Arquivo
    
        
    'Preenchendo as colunas da planilha
    
    ThisWorkbook.Sheets("planilha").Cells(1, I).Value = nome
      
    'CONTINUAÇÃO DO FOR DA LISTAGEM DE ARQUIVOS
    
Listagem:
 Next I
      Else
         strPrompt = strPrompt & "No files found."
      End If

      ' Display the file list in a message box.
      MsgBox strPrompt

   End With
  
End Sub

Link para o comentário
Compartilhar em outros sites

  • 0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'

' NESTA PARTE EU QUERIA ABRIR UM OUTRO ARQUIVO TEXTO E EDITÁ-LO COM AS INFORMAÇÕES DENTRO DESSE MESMO LOOP!!!!

' MAS QUANDO USO O OPEN, ELE DIZ QUE O ARQUIVO JÁ ESTÁ ABERTO!!!

'

'

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

E está mesmo !

se ao chegar nessa parte você não mais necessitar usar o primeiro arquivo, feche-o...com a instrução "Close #suaVariavel".

Se ainda vai precisar do mesmo aberto, aconselho a utilizar mais um FreeFile... ou para simplificar, ao invés de criar variáveis usar apenas números...tipo:

Open .FoundFiles(I) For Input As #1

Open .FoundFiles(I) For Input As #2

Bem, é minha sugestão... pois você está usando o editor VBA do Excel, e poucas vezes o utilizo... :rolleyes:

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...