Notifications
Clear all

Salvar planilha em TXT separado por ;

6 Posts
3 Usuários
0 Reactions
1,554 Visualizações
(@rafatecc)
Posts: 15
Active Member
Topic starter
 

Boa tarde Galera!

Até achei algo parecido no fórum porem não consegui colocar com minhas necessidades, tenho uma planilha onde faço alterações de valores, e quando termino preciso salvar um arquivo txt separado por ; para o sistema ERP ler, porem não consigo desenvolver essa função no VBA. Alguém poderia passar alguma programação para quando acionada ler a planilha e salvar em txt separado por ; e salvar em um local especifico?

Vlw

 
Postado : 19/07/2017 1:49 pm
(@fpsousas)
Posts: 5
Active Member
 

Boa noite amigos.

Estou com uma planilha onde gerei uma programacao em VBA para que pudesse extrair dessa planilha os dados e gerar um arquivo TXT para que eu faca importacao no meu programa.
Eu consegui ja boa parte do processo que eh extrair os dados e gerar o arquivo. Porem, preciso que nesse arquivo gerado haja um delimitador ";" entre as colunas.
Anexo segue o meu arquivo e o c'odigo gerado. Se puderem me dar um auxilio, ficarei grato.
O layout dever'a ser assim:
Data - Valor - Historico - Debito - Credito - Empresa
03/04/2017;2000;PAGTO DE ENERGIA;5;7;040 - ONDE - 2000 eh 20,00, 5 - conta de debito, 7 conta de cr'edito, e 040 - codigo da empresa no meu sistema.

 
Postado : 23/07/2017 8:54 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Segue um modelo/possibilidade, veja se consegue adaptar a sua realidade.

Sub CommandButton1_Click()
Dim myFile As String, cellValue As String
Dim rng As Range
Dim i As Integer, j As Integer

'Determina nome e local do arquivo txt
myFile = Application.GetSaveAsFilename(InitialFileName:=vbNullString, FileFilter:="Text Files (*.data),*.data")
'Determina range a ser exportada, atraves da seleção na planilha
Set rng = Selection

'Abre arquivo txt para gravação de dados
Open myFile For Output As #1

'Inicia o loop pelas linhas da range selecionada
For i = 1 To rng.Rows.Count
    'Inicia o loop pelas colunas da range selecionada
    For j = 1 To rng.Columns.Count
        If j = 1 Then
        'Sendo a celula da primeira coluna não acrescenta o separador
            cellValue = rng.Cells(i, j).Value
        Else
        'Acrescenta o separador entre as demais celunas/coluna
        'OSeparador esta entre aspas duplas
            cellValue = cellValue & ";" & rng.Cells(i, j).Value
        End If
    'Vai para a proxima coluna
    Next j
    'Grava a linha no arquivo txt
    Print #1, cellValue
'Vai para a proxima linha
Next i

'***Fecha o arquivo Txt
Close #1
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/07/2017 6:37 am
(@fpsousas)
Posts: 5
Active Member
 

Reinaldo,

Eu incluo isso na programação da planilha que eu enviei, ou refaço a programação substituindo o que criei pelo que você mandou?
Fiz o texte das duas formas é só gerou um arquivo que dentro só continha o nome INDICE

 
Postado : 24/07/2017 1:55 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Como disse deve ser adaptado a sua realidade.
Deverá substituir a sua rotina atual.
Atenção a range RNG; baseia-se na seleçao feita na planilha. Se criou apenas com o nome indice, e porque o cursor está posicionada em uma unica celula com essa descriçaõ.
Antes de executar a rotina selecione uma range maior em sua planilha.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 25/07/2017 12:03 pm
(@rafatecc)
Posts: 15
Active Member
Topic starter
 

Boa tarde!

Consegui resolver com o código disponibilizado!

obrigado.

 
Postado : 03/08/2017 2:02 pm