Notifications
Clear all

codigo/macro que percorre e executa linha por linha

13 Posts
2 Usuários
0 Reactions
3,193 Visualizações
(@ericaffj)
Posts: 38
Trusted Member
Topic starter
 

Boa noite
Gente, nao entendo de programação, porem criei com ajuda de vcs rsrs... um codigo que exporta o conteudo de uma planilha de acordo com um layout, até ai tudo bem, porem estou tendo um enorme e gigantesco trabalho, pois sao varias linhas, o codigo que tenho ele prepara os dados daquela linha de acordo com o layout, e exporta, ai para a linha seguinte gostaria que fizesse a mesma coisa, porem eu tenho que fazer o mesmo codigo para a outa linha também, e sao mais de 50 linhas.. ta enorme o codigo...

segue parte da planilha em anexo para ver se podem me ajudar...

obrigadaaa.

 
Postado : 31/05/2012 8:31 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Erica, se os campos forem "exportados" conforme estão cadastrados (não recebem nenhum caracter adicional), não há necessidade de fazer a "preparação" dos mesmos.
Tb para "mudar" de linha, não é necessario um codigo para cd uma, mas sim atribuir uma variavel à linha que vai se incrementando "automaticamente"
Tem varias maneiras; pode ser assim:

Sub CommandButton1_Click()
    Caminho = ThisWorkbook.Path & Application.PathSeparator
    arquivo = "exportado.txt"
    Open Caminho & arquivo For Output As #1

Worksheets("dados").Activate

linha = 2
    Do While Cells(linha, 1) <> ""
    
        Cpo133 = Application.WorksheetFunction.Rept(0, 7 - Len(Cells(linha, 4))) & _
                               Application.WorksheetFunction.Substitute(Cells(linha, 4), "", "") ' prepara linha 2 coluna 4 e completa com 0
        
        
    Dados = Cells(linha, "A") & Cells(linha, "B") & Cells(linha, "C") & Cpo133 & Cells(linha, "E") & _
    Cells(linha, "F") & Cells(linha, "G") & Cells(linha, "H") & Cells(linha, "I") ' exporta os dados para arquivo txt

    
    Print #1, Dados

    linha = linha + 1
    Loop

    Close
End Sub
 
Postado : 31/05/2012 10:07 am
(@ericaffj)
Posts: 38
Trusted Member
Topic starter
 

Certo consegui fazer algumas adaptações, e agor apreciso de mais uma ajuda, no caso esse codigo começa e exportar a parit da 1° linha e coluna, e se quisesse que começasse a partir A10 por exemplo?

abrigadaa...

 
Postado : 31/05/2012 12:13 pm
(@ericaffj)
Posts: 38
Trusted Member
Topic starter
 

Amigo, deu certo consegui é so colocar na linha = 10...

Agora como faço para parar sabe tipo quando chegar na linha 80 ele para, que ai tem outro codigo e outros valores diferentes sabe...

obrigadaaa... e desculpas tantas pergunta.. rsrs

 
Postado : 31/05/2012 12:44 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Pode utilizar For .. next ao inves do Do While.. Loop

    Sub CommandButton1_Click()
        Caminho = ThisWorkbook.Path & Application.PathSeparator
        arquivo = "exportado.txt"
        Open Caminho & arquivo For Output As #1

    Worksheets("dados").Activate

  For  linha = 10 to 80 'Aqu determina o inicio da linha e o final
 
            Cpo133 = Application.WorksheetFunction.Rept(0, 7 - Len(Cells(linha, 4))) & _
                                   Application.WorksheetFunction.Substitute(Cells(linha, 4), "", "") ' prepara linha 2 coluna 4 e completa com 0
           
           
        Dados = Cells(linha, "A") & Cells(linha, "B") & Cells(linha, "C") & Cpo133 & Cells(linha, "E") & _
        Cells(linha, "F") & Cells(linha, "G") & Cells(linha, "H") & Cells(linha, "I") ' exporta os dados para arquivo txt

       
        Print #1, Dados

        next

        Close
    End Sub
 
Postado : 31/05/2012 1:15 pm
(@ericaffj)
Posts: 38
Trusted Member
Topic starter
 

Perfeitoo.. agardeço... por enquanto é soó muito obrigada...

 
Postado : 31/05/2012 2:00 pm
(@ericaffj)
Posts: 38
Trusted Member
Topic starter
 

Boa noite
veja que nao demorei para ter mais duvidas ein rsrs..
fiz umas adaptações e dentre elas tem uma verificação que se nao tiver valor em qualquer linha da coluna A ele nao exporte essa linha, porem ele tambem nao esta exportanto o resto das linhas seguintes onde esta certo. coloquei a planilha anexo com exemplo..

obrigadaaa novamente...

abraços :)

 
Postado : 31/05/2012 8:06 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Erica, cumpra as regras do fórum, os arquivos devem ser compactados!!!

O seu arquivo será deletado, favor posta-lo compactado!!

Veja Nossas Regras em:
viewtopic.php?f=7&t=203

Att

 
Postado : 01/06/2012 5:32 pm
(@ericaffj)
Posts: 38
Trusted Member
Topic starter
 

Boa noite
veja que nao demorei para ter mais duvidas ein rsrs..
fiz umas adaptações e dentre elas tem uma verificação que se nao tiver valor em qualquer linha da coluna A ele nao exporte essa linha, porem ele tambem nao esta exportanto o resto das linhas seguintes onde esta certo. coloquei a planilha anexo com exemplo..

obrigadaaa novamente...

desculpas ao moderador por nao ter compactado a planilha...

 
Postado : 01/06/2012 8:41 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Erica, troque seu código por este abaixo...

Aproveitei para organizar um pouco o código.

Sub CommandButton1_Click()
    Dim UltimaLinha As Long
    Dim Linha As Long
    Dim Caminho As String
    Dim Arquivo As String
    Dim Cpo133 As String
    Dim Dados As String
    
    Caminho = ThisWorkbook.Path & Application.PathSeparator
    Arquivo = "exportado.txt"
    Open Caminho & Arquivo For Output As #1

    Worksheets("dados").Activate

    UltimaLinha = Range("A" & Rows.Count).End(xlUp).Row
    
    For Linha = 2 To UltimaLinha
        Cpo133 = String(7 - Len(Cells(Linha, 4)), "0") & Cells(Linha, 4)
        Dados = Cells(Linha, "A") & Cells(Linha, "B") & Cells(Linha, "C") & Cpo133 & Cells(Linha, "E") & _
        Cells(Linha, "F") & Cells(Linha, "G") & Cells(Linha, "H") & Cells(Linha, "I") ' exporta os dados para arquivo txt
        Print #1, Dados
    Next
    Close #1
End Sub
 
Postado : 02/06/2012 5:50 am
(@ericaffj)
Posts: 38
Trusted Member
Topic starter
 

bom dia
porem, ele exporta o restante da linha, tem como nao exportar a linha inteira em que nao tinha o valor....

 
Postado : 02/06/2012 6:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Desculpe... tinha esquecido de colocar uma condicional:

Sub CommandButton1_Click()
    Dim UltimaLinha As Long
    Dim Linha As Long
    Dim Caminho As String
    Dim Arquivo As String
    Dim Cpo133 As String
    Dim Dados As String
   
    Caminho = ThisWorkbook.Path & Application.PathSeparator
    Arquivo = "exportado.txt"
    Open Caminho & Arquivo For Output As #1

    Worksheets("dados").Activate

    UltimaLinha = Range("A" & Rows.Count).End(xlUp).Row
   
    For Linha = 2 To UltimaLinha
        If Cells(Linha, 1) <> "" Then
            Cpo133 = String(7 - Len(Cells(Linha, 4)), "0") & Cells(Linha, 4)
            Dados = Cells(Linha, "A") & Cells(Linha, "B") & Cells(Linha, "C") & Cpo133 & Cells(Linha, "E") & _
            Cells(Linha, "F") & Cells(Linha, "G") & Cells(Linha, "H") & Cells(Linha, "I") ' exporta os dados para arquivo txt
            Print #1, Dados
        End If
    Next
    Close #1
End Sub
 
Postado : 02/06/2012 6:05 pm
(@ericaffj)
Posts: 38
Trusted Member
Topic starter
 

obrigadaaa...

ficou otimo..

 
Postado : 03/06/2012 12:06 pm