Notifications
Clear all

EXPORTAR ARQUIVO VBA

6 Posts
4 Usuários
0 Reactions
1,737 Visualizações
(@gilton)
Posts: 21
Eminent Member
Topic starter
 

boa noite,

estou exportanto arquivo vba e o mesmo está com caractere especial e não com as informações da planilha.

exemplo:

ÐÏࡱá > þÿ / þÿÿÿ y ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿ.

código da geração do arquivo txt.
If resultado = vbYes Then
MsgBox "Você acaba de confirmar a ação", vbInformation, "Atenção"
Dim dirCopia As String, nomeCopia As String
dirCopia = "C:SAP"
nomeCopia = "VRG_BR_REC_CCARD" & dataliquidacao & "1" & zhr & adm & bandeira & ".txt"
ActiveWorkbook.SaveAs Filename:= _
dirCopia + nomeCopia, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Else
MsgBox "Você acaba de recusar a ação"
End If

planilha

1924 VRG_BR_REC_CCARD_20161023 201610231704 000001
2924 BRLBRLUser 00000000000010020160831000000000032453REC516083100100000001 2016083120160831500001log1234526 201608315160831 0000000000324530000000000000002016083120160831BRSAOTCTCCR0000000001 00120160831 000002
2924 BRLBRLUser 00000000000010020160831000000000024700REC516083100100000002 2016083120160831500001log1234526 201608315160831 0000000000247000000000000000002016083120160831BRSAOTCTCCR0000000002 00120160831 000003
2924 BRLBRLUser 00000000000010020160831000000000123123REC516083100100000003 2016083120160831500001log1234526 201608315160831 0000000001231230000000000000002016083120160831BRSAOTCTCCR0000000003 00120160831 000004
2924 BRLBRLUser 00000000000010020160831000000000132423REC516081200100000004 2016083120160831500001log1234526 201608315160812 0000000001324230000000000000002016083120160831BRSAOTCTCCR0000000004 00120160831 000005
2924 BRLBRLUser 00000000000010020160831000000000023455REC516080200100000005 2016083120160831500001log1234526 201608315160802 0000000000234550000000000000002016083120160831BRSAOTCTCCR0000000005 00120160831 000006
2924 BRLBRLUser 00000000000010020160831000000000000443REC516081400100000006 2016083120160831500001log1234526 201608315160814 0000000000004430000000000000002016083120160831BRSAOTCTCCR0000000006 00120160831 000007
9000006 000008

alguem pode me ajudar

no aguardo, obrigado.

 
Postado : 24/10/2016 8:10 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa Noite Gilton,

O que você deseja exatamente? Uma macro para exportar informações da planilha em txt sem alterar o formato dos caracteres?

Disponibilize uma planilha de exemplo, assim fica mais fácil alguém ajudar.

att,

 
Postado : 24/10/2016 8:18 pm
(@gilton)
Posts: 21
Eminent Member
Topic starter
 

segue planilha, os dados são gravados na coluna a.

2924 BRLBRLUser 00000000000010020160831000000000032453REC516083100100000001 2016083120160831500001log1234526 201608315160831 0000000000324530000000000000002016083120160831BRSAOTCTCCR0000000001 00120160831 000002
2924 BRLBRLUser 00000000000010020160831000000000024700REC516083100100000002 2016083120160831500001log1234526 201608315160831 0000000000247000000000000000002016083120160831BRSAOTCTCCR0000000002 00120160831 000003
2924 BRLBRLUser 00000000000010020160831000000000123123REC516083100100000003 2016083120160831500001log1234526 201608315160831 0000000001231230000000000000002016083120160831BRSAOTCTCCR0000000003 00120160831 000004
2924 BRLBRLUser 00000000000010020160831000000000132423REC516081200100000004 2016083120160831500001log1234526 201608315160812 0000000001324230000000000000002016083120160831BRSAOTCTCCR0000000004 00120160831 000005
2924 BRLBRLUser 00000000000010020160831000000000023455REC516080200100000005 2016083120160831500001log1234526 201608315160802 0000000000234550000000000000002016083120160831BRSAOTCTCCR0000000005 00120160831 000006
2924 BRLBRLUser 00000000000010020160831000000000000443REC516081400100000006 2016083120160831500001log1234526 201608315160814 0000000000004430000000000000002016083120160831BRSAOTCTCCR0000000006 00120160831 000007

 
Postado : 26/10/2016 6:18 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Gilton,

Pelo seu código, vc não está exportando como texto mas salvando uma Pasta de trabalho com a extensão txt. Mal comparado, é como se vc fosse no explorer e somente renomeasse a extensão de um arquivo Excel para txt e tentasse abrir no notepad. Prá fazer um teste, tente ir no explorer e renomear um desses .txt que vc já criou para. xlsx prá ver se não abre ;) .

No seu código vc usou FileFormat:= xlNormal, que é uma enumeração usada prá estados de Janelas (enum XLWindowState) nem mesmo prá formatos de arquivos é, embora tenha o mesmo valor que a equivalente das c. enum XLFileFormat xlWorkbookNormal. Mas como vc quer a saída no formato tipo texto, tente usar FileFormat:= xlTextWindows , por exemplo.
Ou grave uma macro usando Arquivo > Exportar > Alterar tipo de dados > e escolha qual dos três sabores tipo texto prefere (separado por espaço, vírgula ou tabulação).

 
Postado : 26/10/2016 8:49 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Gilton,

Você esqueceu de anexar o arquivo.

att.

 
Postado : 26/10/2016 10:04 pm
Trindade
(@trindade)
Posts: 278
Reputable Member
 

Boa tarde, GILTON.

De uma olhada no código abaixo creio que possa te ajudar, levando em consideração que seus dados estão na Plan1 coluna A

Sub Exportartxt()

Dim Count As Integer
Dim iFF As Integer
Dim Arquivo As String

    ' ABRE A CAIXA DE DIALOGO PARA SELECIONAR ONDE DESEJA SALVAR O ARQUIVO
    Arquivo = Application.GetSaveAsFilename(InitialFileName:="Exportar_Arquivo_TXT", _
        fileFilter:="Texto formatado (separado por espaço) (*.txt), *.txt", _
        Title:="Especifique o nome do arquivo")

Count = 1
iFF = FreeFile

' RESPONSAVEL POR ESCREVER DENTRO DO ARQUIVO TXT SALVO 
Open Arquivo For Output As iFF

    ' ENQUANDO A CELULA DA COLUNA A NAO ESTIVE VAZIA VAI REALIZAR O LACO
    While Not VBA.IsEmpty(Plan1.Range("A" & Count))

        ' GRAVA AS INFORMACOES DA COLUNA A NO ARQUIVO TXT
        Print #iFF, Plan1.Range("A" & Count).Value
        
        ' INCREMENTA +1 CONFORME LACO
        Count = Count + 1

    Wend

' FINALIZA A ROTINA DE ESCREVE NO TXT
Close iFF

End Sub

Se a resposta foi útil! Clique na mãozinha ao lado do botão Citar.
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde.

 
Postado : 27/10/2016 10:13 am