- 18 Ago 2016 às 22:42
#14113
Senhores, mais uma vez venho solicitar ajuda, como ja havia falado anteriormente ainda sou novo na parte de desenvolvimento mas com muito custo e leitura estou chegando la.
Bem a minha solicitação é: tenho uma planilha com determinados campos compra, saque , pagto
em determinado diretorio da minha maquina gero varios relatorios em *.TXT, onde atualmente vou abrindo um a um e imputando os dados, gostaria de saber se a posibilidade em um VBA localizar determinado arquivo e inserir o valor que eu preciso em determinada celula.
No maximo que eu consegui foi lendo e juntando alguns codigos chegar no vba abaixo. Porem ainda nao me atende, pois sempre le todos arquivos em TXT e acaba sobrepondo valores.
Segue anexo a planilha que tenho e 02 exemplos dos arquivos em TXT que eu gero.
Sub importar()
Dim myDir As String, fn As String, txt As String, a(), i As Long, ff As Integer
Dim Ficheiro As String
Dim rg As Range
Dim S As String, N As Long, C As Integer, X As Variant
localizarlinhabranco
myDir = "C:\Documents\Desenvolvimento\Indicadores\"
fn = Dir(myDir & "*.TXT")
Set rg = ActiveCell
Do While fn <> ""
ff = FreeFile
Open myDir & "\" & fn For Input As #ff
Do Until EOF(1)
Line Input #1, S
C = 0
X = Split(S, ";")
For N = 3 To UBound(X)
If X(N) <> "" Then
rg.Offset(0, C) = X(N)
C = C + 1
End If
Next N
Set rg = rg.Offset(0, 0)
Loop
Close #ff
fn = Dir()
Loop
' With ThisWorkbook.Sheets(1).Range("a1")
' For i = 1 To N
' .Offset(i - 1).Resize(, UBound(a(i)) + 1).Value = a(i)
' Next
' End With
End Sub
Sub localizarlinhabranco()
linha = 1
celula = ActiveCell.Value
While celula <> ""
ActiveCell.Offset(1, 0).Activate
celula = ActiveCell.Value
linha = linha
Wend
End Sub
Bem a minha solicitação é: tenho uma planilha com determinados campos compra, saque , pagto
em determinado diretorio da minha maquina gero varios relatorios em *.TXT, onde atualmente vou abrindo um a um e imputando os dados, gostaria de saber se a posibilidade em um VBA localizar determinado arquivo e inserir o valor que eu preciso em determinada celula.
No maximo que eu consegui foi lendo e juntando alguns codigos chegar no vba abaixo. Porem ainda nao me atende, pois sempre le todos arquivos em TXT e acaba sobrepondo valores.
Segue anexo a planilha que tenho e 02 exemplos dos arquivos em TXT que eu gero.
Sub importar()
Dim myDir As String, fn As String, txt As String, a(), i As Long, ff As Integer
Dim Ficheiro As String
Dim rg As Range
Dim S As String, N As Long, C As Integer, X As Variant
localizarlinhabranco
myDir = "C:\Documents\Desenvolvimento\Indicadores\"
fn = Dir(myDir & "*.TXT")
Set rg = ActiveCell
Do While fn <> ""
ff = FreeFile
Open myDir & "\" & fn For Input As #ff
Do Until EOF(1)
Line Input #1, S
C = 0
X = Split(S, ";")
For N = 3 To UBound(X)
If X(N) <> "" Then
rg.Offset(0, C) = X(N)
C = C + 1
End If
Next N
Set rg = rg.Offset(0, 0)
Loop
Close #ff
fn = Dir()
Loop
' With ThisWorkbook.Sheets(1).Range("a1")
' For i = 1 To N
' .Offset(i - 1).Resize(, UBound(a(i)) + 1).Value = a(i)
' Next
' End With
End Sub
Sub localizarlinhabranco()
linha = 1
celula = ActiveCell.Value
While celula <> ""
ActiveCell.Offset(1, 0).Activate
celula = ActiveCell.Value
linha = linha
Wend
End Sub