Notifications
Clear all

Macro para Salvar Excel em TXT (separado por tabulação)

8 Posts
3 Usuários
0 Reactions
1,532 Visualizações
(@carmeloc)
Posts: 0
New Member
Topic starter
 

Ola galera....

O caso é o seguinte: tenho uma macro que no excel tem 7 abas (com dados diferentes) que salva cada aba num arqvuio individual em .txt para importar para o SAP.
Porem, nessa macro, a conversão deixa os dados com ".", mas preciso que seja ",".
Exemplo: sai com 24.000 porém preciso que seja 24,000.

Ja tentei milhoes de alterações sem sucesso.

Algum mestre ai pra me ajudar?

Abaixo a macro que estou usando....

Sub Separa()
 Application.ScreenUpdating = False
    Dim Novo As Workbook
    Dim Aba As Worksheet
    Dim Onde As String

    For Each Aba In ThisWorkbook.Worksheets
        Aba.Copy

        Set Novo = Workbooks(Workbooks.Count)

        Onde = ThisWorkbook.Path
        If Right(Onde, 1) <> "/" Then
            Onde = Onde & ""
        End If

        Novo.SaveAs Onde & Aba.Name, xlText
        Novo.Close
    Next
    Application.ScreenUpdating = True
End Sub
 
Postado : 21/08/2015 1:21 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Carmelo, o ideal seria anexar um modelo reduzido de acordo com as regras do forum para sabermos como estão estes dados.
Digo, pois fiz uma simulação com 3 abas nas quais digitei valores como citou mas com "ponto" 24.000 - 25.000 ...." e foi gerado 3 arquivos e os números com virgula.
"24,000"
"25,000"
"26,000"
"27,000"
"28,000"
"29,000"
"30,000"

 
Postado : 21/08/2015 1:44 pm
(@carmeloc)
Posts: 0
New Member
Topic starter
 

Olá Mauro...segue o excel com valores de simulação, mas que segue o o padrão que tenho.

Os dados estão com vircula, mas quando utlizo a macro, ele transfarma a , em .
Ai complica os dados na importação.

 
Postado : 21/08/2015 2:04 pm
(@trindade)
Posts: 0
New Member
 

Boa noite, CarmeloC

Da uma olhada nesse código se te ajuda:

Sub Separa()

Dim Novo As Workbook
Dim Aba As Worksheet
Dim Onde As String

    Application.ScreenUpdating = False
    
        For Each Aba In ThisWorkbook.Worksheets
            
            Aba.Copy
    
            Set Novo = Workbooks(Workbooks.Count)
    
            Onde = ThisWorkbook.Path
            If Right(Onde, 1) <> "/" Then
                Onde = Onde & ""
            End If
            
            Novo.SaveAs Onde & Aba.Name, xlText
            
            Rows("6:6").Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
            
            Novo.Close
            
        Next
    
    Application.ScreenUpdating = True
    
End Sub
 
Postado : 22/08/2015 9:17 pm
(@carmeloc)
Posts: 0
New Member
Topic starter
 

Trindade, valeu pela ajuda!

Mas o txt ainda continua trazendo com "." o txt.

 
Postado : 24/08/2015 4:32 am
(@carmeloc)
Posts: 0
New Member
Topic starter
 

Pessoal, consegui resolver. Alterei no SAP a importação a representatividade decimal, e deu certo.

PRA FICAR PERFEITO: so precisaria de inserir na macro, um "Sim" para substituir arquivo, e um "ok" para salvar.
Como é um processo que terei que repetir varias vezes, deixaria mais facil também deixar autimativo isso.

Como ficaria nessa macro que temos?

Agradeço desde já o tempo e atenção na ajuda!!!

 
Postado : 24/08/2015 6:44 am
(@trindade)
Posts: 0
New Member
 

Bom dia, Carmel C.

Creio que deve estar falando das mensagem de aviso do Excel:

Depois do Application.ScreenUpdating = False

Application.DisplayAlerts = False

Antes do Application.ScreenUpdating = True

Application.DisplayAlerts = True

Application.DisplayAlerts = True

 
Postado : 24/08/2015 10:07 am
(@carmeloc)
Posts: 0
New Member
Topic starter
 

Valeu Trindade!!!!!!! Isso mesmo...

abs

 
Postado : 24/08/2015 10:35 am