none
Zerar o contador toda vez que mudar de linha RRS feed

  • Pergunta

  • Estou com o seguinte problema: tenho dois contadores dento do meu código, porem quero que toda vez que mudar para a proxima linha o contLinha1 (segundo contador) fique zerado e começe a contar novamente, lembrando que exitem 32 colunas quando ele voltar para a 1 da proxima linha teria que zerar e começar a contar novamente... estou quebrando a cabeça e nada...

    Sub Macro2()
    
        Application.ScreenUpdating = False
        
        coluna = 1
        cont = 2
        linha = 7
        contLinha = 7
        contLinha1 = 0
        
        codigoCampo = "0000"
        he = "02"
        sl = "000"
        sql = "00"
        
        dt = Format(Date, "DDMMYYYY")
        
        
        Sheets("Concluidos").Select
                                                        'sequencia'RD'SQL'CAM'SC
        Cells(1, 1).Value = "00000000001000000549755813888000000000000000009000000C"
        Cells(2, 1).Value = "0000000000200000054975581388800000000000000010829000007689002000189"
        Cells(3, 1).Value = "00000000003000000549755813888000000000000000203130000EMBRAER S A"
        Cells(4, 1).Value = "00000000004000000549755813888000000000000000304130000O"
        Cells(5, 1).Value = "00000000005000000549755813888000000000000000409030000" & dt
        Cells(6, 1).Value = "000000000060000005497558138880000000000000005091300000014"
        
            
        Sheets("BaseDados").Select
        
        While Range("a" & cont).Value <> ""
            coluna = 1
            
                    While coluna <= 32
                        valor = Cells(cont, coluna).Value
                        If coluna = 20 And valor = "" Then
                           coluna = coluna + 1
                        Else
                        Sheets("Concluidos").Select
                            
                            
                            
                           If coluna = 1 Then
                              codigoCampo = "0902"
                              sql = "00"
                              End If
                              
                            If coluna = 2 Then
                              codigoCampo = "0422"
                              sql = "00"
                              End If
                                  
                            If coluna = 3 Then
                              codigoCampo = "0418"
                              sql = "00"
                             End If
                            
                            If coluna = 4 Then
                              codigoCampo = "0195"
                              sql = "00"
                             End If
                            
                             If coluna = 5 Then
                              codigoCampo = "0197"
                              sql = "00"
                             End If
                                        
                             If coluna = 6 Then
                              codigoCampo = "0200"
                              sql = "00"
                             End If
                             
                             If coluna = 7 Then
                              codigoCampo = "0199"
                              sql = "00"
                             End If
                             
                             If coluna = 8 Then
                              codigoCampo = "0390"
                              sql = "00"
                             End If
                             
                             If coluna = 9 Then
                              codigoCampo = "0201"
                              sql = "00"
                             End If
                             
                                       
                             If coluna = 10 Then
                              codigoCampo = "0386"
                              sql = "00"
                             End If
                             
                             If coluna = 11 Then
                              codigoCampo = "0386"
                              sql = "01"
                             End If
                               
                             If coluna = 12 Then
                              codigoCampo = "0370"
                              sql = "00"
                             End If
                             
                             If coluna = 13 Then
                              codigoCampo = "0371"
                              sql = "00"
                             End If
                             
                             If coluna = 14 Then
                              codigoCampo = "0371"
                              sql = "01"
                             End If
                             
                             If coluna = 15 Then
                              codigoCampo = "0371"
                              sql = "02"
                             End If
                             
                             If coluna = 16 Then
                              codigoCampo = "0373"
                              sql = "00"
                             End If
                             
                             If coluna = 17 Then
                              codigoCampo = "0373"
                              sql = "01"
                             End If
                             
                             If coluna = 18 Then
                              codigoCampo = "0373"
                              sql = "02"
                             End If
                             
                             If coluna = 19 Then
                              codigoCampo = "0373"
                              sql = "03"
                             End If
                             
                             If coluna = 20 Then
                              codigoCampo = "0810"
                              sql = "00"
                             End If
                             
                             
                             If coluna = 21 Then
                              codigoCampo = "0911"
                              sql = "00"
                             End If
                             
                             If coluna = 22 Then
                              codigoCampo = "0911"
                              sql = "01"
                             End If
                                                   
                             If coluna = 23 Then
                              codigoCampo = "0911"
                              sql = "02"
                             End If
                             
                             If coluna = 24 Then
                              codigoCampo = "0911"
                              sql = "03"
                             End If
                             
                             If coluna = 25 Then
                              codigoCampo = "0911"
                              sql = "04"
                             End If
                             
                             If coluna = 26 Then
                              codigoCampo = "0911"
                              sql = "05"
                             End If
                             
                             If coluna = 27 Then
                              codigoCampo = "0911"
                              sql = "06"
                             End If
                             
                             If coluna = 28 Then
                              codigoCampo = "0911"
                              sql = "07"
                             End If
                             
                             If coluna = 29 Then
                              codigoCampo = "0911"
                              sql = "08"
                             End If
                                    
                             If coluna = 30 Then
                              codigoCampo = "0292"
                              sql = "00"
                             End If
                             
                             If coluna = 31 Then
                              codigoCampo = "0292"
                              sql = "01"
                             End If
                             
                             If coluna = 32 Then
                              codigoCampo = "0292"
                              sql = "02"
                             End If
                                      
                             Cells(linha, 1).Value = "00000000" & Format(CStr(contLinha), "###000") & "00000054975581388800000000000" & he & Format(CStr(contLinha1), "###000") & codigoCampo & sql & "00" & valor
                             
                             
                              
                             If contLinha >= 1000 Then
                                If contLinha1 >= 993 Then
                                
                                Cells(linha, 1).Value = "0000000" & Format(CStr(contLinha), "####0000") & "00000054975581388800000000000" & he & Format(CStr(contLinha1), "####0000") & codigoCampo & sql & "00" & valor
                                
                                End If
                             End If
                             
                                                    
                             linha = linha + 1
                             coluna = coluna + 1
                             contLinha = contLinha + 1
                             contLinha1 = contLinha1 + 1
                             Sheets("BaseDados").Select
                             
                     End If
                   Wend
             
    
          cont = cont + 1
        'contLinha = contLinha + 1
        'contLinha1 = contLinha1 + 1
        Wend
        
        Sheets("Concluidos").Select
        
        dt = Format(Date, "YYMMDD")
        
        varColuna = 1
        varLinha = 1
        varConteudo = 1
        Do While varConteudo <> Empty
        varLinha = varLinha + 1
        varConteudo = Cells(varLinha, varColuna).Value
        varLinha = varLinha + 1
        Loop
       
        
        Cells(64461, 1).Value = "0000000" & Format(CStr(contLinha), "#####00000") & "000000549755813888999999999999900009080000CADASTRONIS.D" & dt & ".S01"
        Cells(64462, 1).Value = "0000000" & Format(CStr(contLinha + 1), "#####00000") & "0000005497558138889999999999999001091200000000000" & CStr(varLinha - 1)
        
        
        
        
        Sheets("Concluidos").Select
        
        
        template_file = ActiveWorkbook.FullName
     
        fileSaveName = Application.GetSaveAsFilename( _
        InitialFileName:="CADASTRONIS" + _
        VBA.Strings.Format(Now, "mmddyyyy") + ".txt", _
        fileFilter:="Text Files (*.txt), *.txt")
         
        If fileSaveName = False Then
        Exit Sub
        End If
         
           
        Dim newBook As Workbook
        Dim plan As Worksheet
        Set newBook = Workbooks.Add
           
         
        ThisWorkbook.ActiveSheet.Copy Before:=newBook.Sheets(1)
         
           
        For Each plan In newBook.Sheets
        If plan.Name <> ActiveSheet.Name Then
        newBook.Worksheets(plan.Index).Delete
        End If
        Next
         
        
        newBook.SaveAs Filename:= _
        fileSaveName, FileFormat:=xlTextWindows, _
        CreateBackup:=False
         
        
        newBook.Close SaveChanges:=True
        Set newBook = Nothing
         
        MsgBox "O arquivo foi exportado com sucesso! ", vbInformation, "Exportar arquivos"
            
        Application.ScreenUpdating = True
        
    End Sub
    

    sexta-feira, 15 de setembro de 2017 18:05

Respostas

  •                          contLinha = contLinha + 1
                             contLinha1 = 0
    Após aumentar contLinha, contLinha1 volta a valer 0

    Anderson Diniz


    • Editado AndersonFDiniz2 sexta-feira, 15 de setembro de 2017 18:36
    • Sugerido como Resposta AndersonFDiniz2 sexta-feira, 15 de setembro de 2017 18:37
    • Marcado como Resposta WillGreco terça-feira, 19 de setembro de 2017 13:41
    sexta-feira, 15 de setembro de 2017 18:35

Todas as Respostas

  •                          contLinha = contLinha + 1
                            
    Nessa linha o contLinha aumenta, então significa que mudou de linha.

    Anderson Diniz

    • Sugerido como Resposta AndersonFDiniz2 sexta-feira, 15 de setembro de 2017 18:37
    • Marcado como Resposta WillGreco terça-feira, 19 de setembro de 2017 13:41
    • Não Marcado como Resposta WillGreco terça-feira, 19 de setembro de 2017 13:41
    sexta-feira, 15 de setembro de 2017 18:33
  •                          contLinha = contLinha + 1
                             contLinha1 = 0
    Após aumentar contLinha, contLinha1 volta a valer 0

    Anderson Diniz


    • Editado AndersonFDiniz2 sexta-feira, 15 de setembro de 2017 18:36
    • Sugerido como Resposta AndersonFDiniz2 sexta-feira, 15 de setembro de 2017 18:37
    • Marcado como Resposta WillGreco terça-feira, 19 de setembro de 2017 13:41
    sexta-feira, 15 de setembro de 2017 18:35