Notifications
Clear all

Gerar TXT de um intervalo Especifico

10 Posts
2 Usuários
0 Reactions
2,172 Visualizações
(@xandrinho)
Posts: 0
Estimable Member
Topic starter
 

Doutores, Estou perdido e por mais que tente, tenho mto que aprender...
Vejam se podem me ajudar ainda nesta planilha. Meu objetivo, é gerar um txt conforme arquivo anexo.
Ele gera corretamente para o intervalo J, mas preciso que gere o txt do Intervalo U. Não consigo analisar no código o que esta errado. Anexei um txt do intervalo U, é assim que o mesmo deveria gerar, mas tem alguma coisa errado e não consigo descobrir. Conseguem por favor, me ajudarem?

 
Postado : 22/05/2017 4:52 am
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

Você quer retornar no arquivo TXT apenas os dados da coluna T é isso?

Se esse for o caso usa o procedimento abaixo:

Sub ExecutarSalvarTXT(mPlan As Worksheet, mPathSave As String)
    Dim iArq As Long
    Dim Rng As Range
    Dim LinhaFinal As Long
    
    
    FileTxt = FreeFile
    LinhaFinal = mPlan.Cells(Cells.Rows.Count, "T").End(xlUp).Row
    
    Open mPathSave & "" & mPlan.Name & ".txt" For Output As FileTxt
    
    For Each Rng In Range("T3:T" & LinhaFinal) 'Aqui você altera o intervalod a célula no qual você quer salvar.
        Print #FileTxt, Rng.Text
    Next

Close FileTxt

    MsgBox "Novo arquivo salvo em: " & mPathSave & "" & mPlan.Name & ".txt", vbInformation

End Sub

Nesse procedimento irá criar um arquivo TXT e fazer um laço dentro da range ("T3:T" & "até a utlima linha") e inserir em cada linha do arquivo TXT.

Seria isso?

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 22/05/2017 5:59 am
(@xandrinho)
Posts: 0
Estimable Member
Topic starter
 

Pietro, Bom Dia!!!

Primeiramente obrigado pela atenção....
Fiz o teste...mas o código cria o arquivo TXT em branco...Ou seja não leva as informações da coluna T...Pode continuar me ajudando?

 
Postado : 22/05/2017 7:40 am
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

Está correto. Esqueci de incluir a referência da Worksheet no laçi. Tentar agora.

Sub ExecutarSalvarTXT(mPlan As Worksheet, mPathSave As String)
    Dim iArq As Long
    Dim Rng As Range
    Dim LinhaFinal As Long
    
    
    FileTxt = FreeFile
    LinhaFinal = mPlan.Cells(Cells.Rows.Count, "T").End(xlUp).Row
    
    Open mPathSave & "" & mPlan.Name & ".txt" For Output As FileTxt
    
    For Each Rng In mPlan.Range("T3:T" & LinhaFinal) 'Aqui você altera o intervalod a célula no qual você quer salvar.
        Print #FileTxt, Rng.Text
    Next

Close FileTxt

    MsgBox "Novo arquivo salvo em: " & mPathSave & "" & mPlan.Name & ".txt", vbInformation

End Sub

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 22/05/2017 9:29 am
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

Só um detalhe. Pelo exemplo que você enviou, esse procedimento só funcionaria na planilha Informacoes01. Nas demais não. Está correto?

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 22/05/2017 9:31 am
(@xandrinho)
Posts: 0
Estimable Member
Topic starter
 

Funcionou perfeito...teria como também disponibilizar à 2ª aba (informacoes02)?

já na aba informacoes03 não precisa, pois vou exclui-la. Teria como?

 
Postado : 22/05/2017 10:42 am
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

mas existirá apenas essas duas abas nessa mesma estrutura sempre?

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 22/05/2017 11:32 am
(@xandrinho)
Posts: 0
Estimable Member
Topic starter
 

Isso mesmo somente duas sempre nesta mesma estrutura...

 
Postado : 22/05/2017 12:48 pm
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

Ok. Adptei a essa necessidade. Dúvidas é só falar.

Sub ExecutarSalvarTXT(mPlan As Worksheet, mPathSave As String)
    Dim Coluna As Long
    Dim Rng As Range
    Dim LinhaFinal As Long
    Dim stLinha As String
    
    
    FileTxt = FreeFile
    LinhaFinal = mPlan.Cells(Cells.Rows.Count, "T").End(xlUp).Row
    
    Open mPathSave & "" & mPlan.Name & ".txt" For Output As FileTxt
    
    Select Case mPlan.Name
    Case "Informacoes01"
        For Each Rng In mPlan.Range("T3:T" & LinhaFinal) 'Aqui você altera o intervalod a célula no qual você quer salvar.
            Print #FileTxt, Rng.Text
        Next
    
    Case "Informacoes02"
        For Each Rng In mPlan.Range("C7").CurrentRegion 'Aqui você altera o intervalod a célula no qual você quer salvar.
            If Rng.Column < Coluna Then
                Print #FileTxt, stLinha
                Coluna = Rng.Column
                stLinha = Rng.Text & Chr(9)
            Else
                stLinha = stLinha & Rng.Text & Chr(9)
                Coluna = Rng.Column
            End If
        Next
        
        Print #FileTxt, stLinha
    
    Case Else
        MsgBox "Planilha não configura para ser executada.", vbCritical
        Exit Sub
    End Select

Close FileTxt

    MsgBox "Novo arquivo salvo em: " & mPathSave & "" & mPlan.Name & ".txt", vbInformation

End Sub

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 22/05/2017 1:21 pm
(@xandrinho)
Posts: 0
Estimable Member
Topic starter
 

Show de Bola perfeito, mto obrigado.

Valeu mesmo!!!

 
Postado : 24/05/2017 5:47 am