Notifications
Clear all

dados da planilha para txt

5 Posts
2 Usuários
0 Reactions
1,266 Visualizações
(@mazzetto)
Posts: 2
Active Member
Topic starter
 

amigos,

preciso de uma ajuda, utilizo macro para transformar automaticamente um arquivo em TXT, mas minha dúvida é a seguinte : às vezes minha planilha contém 10 linhas, às vezes 50, outras 1000 linhas, como faço para automatizar ou mesmo informar na execução da geração do txt a composição de todas as linhas : supondo que nesta planilha tenha 500 linhas eu informar de A1 a A500 sem que eu tenha que estar alterando a macro

segue a macro que executo :
Sub XTo_txt()
' Author: Date: Contact:
' Exportando o conteúdo de uma planilha para um arquivo texto.

Dim nFile As String
Dim nSheet As String
Dim nExtension As String

Let nFile = "C:jrichard.CI02"
Let nSheet = "CONCATENADO"
Let nExtension = "A1:A1900" - quero deixar esta parte para eu informar pois pode ser 10/20/30 linhas vai depender do movimento do mêsOpen nFile For Output As #1

Sheets(nSheet).Select

For Each nOccurs In Range(nExtension)
Print #1, nOccurs
Next

Close #1

MsgBox "Exportado!",

Sheets(nSheet).Select
End Sub

 
Postado : 20/03/2012 10:21 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mazzeto, veja se é isto :

Sub XTo_txtMauro()
    ' Author: Date: Contact:
    ' Exportando o conteúdo de uma planilha para um arquivo texto.
    
    Dim nFile As String
    Dim nSheet As String
    Dim nExtension As String
    
        Dim sRange As Range
        Dim sRowInicio As Long
        Dim FinalRow As Long
    
        'Verifica a última linha preenchida
        FinalRow = Range("A65536").End(xlUp).Row
                
        'Define o Range Linha Inicial e Linha Final
        Set sRange = Range("A1" & ":A" & FinalRow)
    
    Let nFile = "C:jrichard.CI02"
    Let nSheet = "CONCATENADO"
    
            'Let nExtension = "A1:A1900"
            Let nExtension = sRange
    
    Open nFile For Output As #1
    
    Sheets(nSheet).Select
    
    For Each nOccurs In Range(nExtension)
    Print #1, nOccurs
    Next
    
    Close #1
    
    MsgBox "Exportado!"
    
    Sheets(nSheet).Select
End Sub

[]s

 
Postado : 20/03/2012 11:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Olá pessoal,

Me interessei pelo código, mas nao funcionou aqui, numa planilha que fiz para testá-lo.

"CONCATENADO" seria o nome do range de células?
o que seria o sheet em "nSheet"?

 
Postado : 22/03/2012 3:01 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Leandro
No codigo o termo "Concatenado" é a denominação de uma planilha(Sheet) existente no arquivo.
Não entendi a pergunta "O que seria o Sheet em nSheet"; nSheet é somente um termo (nome) dado para uma variavel, poderida ser qq outro nPlan por exemplo.
Veja o codigo (com uma pequena alteração) comentado, creio que lhe auxiliará

Sub XTo_txtMauro()
        ' Author: Date: Contact:
        ' Exportando o conteúdo de uma planilha para um arquivo texto.
       
        Dim nFile As String
        Dim nSheet As String
        Dim nExtension As String
        'Dim sRange As Range
        Dim sRowInicio As Long
        Dim FinalRow As Long
       
            'Verifica a última linha preenchida
            FinalRow = Range("A65536").End(xlUp).Row
                   
       'Aqui define o local onde será salvo e nome e extensão do arquivo
        Let nFile = "C:jrichard.CI02"
       'Aqui determina o nome da plan. que contem os dados a serem exportados
        Let nSheet = "CONCATENADO"
       
        'Aqui Define o Range Linha Inicial e Linha Final
        Let nExtension = "A1" & ":A" & FinalRow 'sRange
       
       'Aqui habilita o arquivo pre definido (nFile) a receber os dados exportados
        Open nFile For Output As #1
       
        'Aqui se posiciona na planilha definida
        Sheets(nSheet).Select
       'Aqui executa um loop na range definida para "gravar" cada linha (nOccurs) no arquivo (nFile)
        For Each nOccurs In Range(nExtension)
        Print #1, nOccurs
        Next
       'Aqui fecha o arquivo após todos registros haverem sido gravados
        Close #1
       '
        MsgBox "Exportado!"
       
        Sheets(nSheet).Select
    End Sub
 
Postado : 22/03/2012 3:36 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Ok Reinaldo...

Entendido.
Obrigado.

 
Postado : 22/03/2012 3:55 pm