Explicação de códig...
 
Notifications
Clear all

Explicação de código

28 Posts
3 Usuários
0 Reactions
4,164 Visualizações
(@wessley)
Posts: 55
Trusted Member
Topic starter
 

Boa noite,

Já faz um tempo que estou tentando extrair dados de um TXT. Eu encontrei esse código que segue em anexo, porém eu gostaria de entender como ele funciona para que eu possa adaptá-lo ao meu TXT.
Se me ajudarem, desde já agradeço.

 
Postado : 29/04/2015 6:47 pm
(@wessley)
Posts: 55
Trusted Member
Topic starter
 

Obrigado pela sua atençao, eu teria que colar esse código na minha planilha. ?? o que devo fazer para adptar esse codigo a minha planilha ?

 
Postado : 03/05/2015 4:39 pm
(@edcronos)
Posts: 1006
Noble Member
 

não, isso é apenas parte do desenvolvimento
é para não ter a planilha cheia de formulas
simplesmente vai evitar um monte de processo desnecessário,

pq os valores de retorno das formulas que é inserido na plan dados
vão direto para um array e apenas onde tiver dado evitando leitura a mais

eu não terminei pq tive que segui um padrão já existente na macro
e como são valores diferentes linha a linha não dá para fazer substituindo automático

a macro original cria uma linha com a formula coluna a cada coluna pegando o texto correspondente e então copia a linha e cola nas outras linhas

do jeito que estou indicando não vai precisar e ainda vai ser mais rapido a transferência para a planilha de destino

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 03/05/2015 4:50 pm
(@wessley)
Posts: 55
Trusted Member
Topic starter
 

Boa noite. sua ideia seria otima só que os meus conhecimentos em vba é bem limitado vou entender se nao querer me ajudar mais por eu estar ocupando o seu tempo. Desde ja agradeço sua atenção e colaboração em me ajudar até aqui. Vou pesquisar mais pra aprender e tentar elaborar essa função no vba.

 
Postado : 03/05/2015 7:44 pm
(@edcronos)
Posts: 1006
Noble Member
 

então termina de fazer a modificação da parte que coloquei e poste para mim terminar de fazer a rotina,
depois disso só vai faltar o loop

se vc tivesse feito oq eu pedi , que era adicionar uma linha com o nomes compatíveis do txt dos campos que vc quer, já estaria pronto
eu tive que segui o codigo e procurar uma alternativa

essa alternativa foi usar a mesma formula que está na macro e passar ela para o array em um loop para então passar para a planilha de destino

no caso seria para substituir essa formula que é adicionada em todas as linhas da macro original
FormulaLocal = "=SE(ARRUMAR(EXT.TEXTO(A39;55;1))=""1"";ARRUMAR(EXT.TEXTO(A39;1;8)))"
é a mesma que eu mandei, mas para usar no vba e apenas o valor
vou tirar as partes que não vão mais ser processarias na macro

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 03/05/2015 8:18 pm
(@wessley)
Posts: 55
Trusted Member
Topic starter
 

Caro colega boa noite, eu realmente quero ajudar vc no que eu puder qual nomes que vc esta querendo que eu te passe ? Qual linha que eu devo arrumar pois nao consegui entender muito bem? Vc quer o meu wats ai ficaria melhor pra eu te passa mais informacoes 43 9194_3420

 
Postado : 03/05/2015 10:09 pm
(@edcronos)
Posts: 1006
Noble Member
 

colega eu não estou precisando de ajuda nesse quesito

o assunto começou no forum, e acho justo continuar aqui, mesmo pq não vejo no que facilitaria ser pelo wats
se vc quiser "Se" ajudar, pelo menos leia oq eu escrevi anteriormente

primeiro vc pediu explicação do codigo,
se vc prestar atenção, no decorrer eu expliquei oq ele faz

segundo, eu pedi para colocar os textos equivalentes do txt na planilha, e vc não quis
"explanou" que tinha um codigo que fazia oq vc queria mas que demorava muito

pois bem, eu tive que entender como a macro trabalha
e para diminuir o custo de processamento defini uma solução
que é usar a mesma formula que tem na macro, mas definir ela apenas no codigo como valor e dentro de um array para transportar diretamente para a planilha para qual se destina
assim podendo se excluir varios processos auxiliares da macro original

pois bem caro colega,
infelizmente eu sou irritante e quero ver funcionando do jeito que imaginei
mas caso vc insista em não contribuir com o "seu próprio trabalho" eu simplesmente irei terminar a macro por mim mesmo, mas não irei disponibilizar

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 04/05/2015 6:31 am
(@wessley)
Posts: 55
Trusted Member
Topic starter
 

bom dia, esta em anexo a planilha com dados do txt e a primeira linha da planilha esta com as colunas com os nomes iguais do txt, cujo sao os dados que pretento extrair. Seria isso que vc esta me pedindo ?? se nao for nao estou entendendo direito o que vc quer que eu te envie. se puder me mandar uma imagem ou alguma coisa pra eu entender melhor ficaria melhor.

 
Postado : 04/05/2015 12:03 pm
(@edcronos)
Posts: 1006
Noble Member
 

vc Acaso leu essa parte?

tem que terminar de ajustar as linhas de comando

coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 4, 1), 25, 10))

no caso adicionar em um array apenas os valores e apenas uma verificação de posição sem encher a planilha de formulas

como não vai ter formulas na plan fica mais rapido
e é só fazer um loop
alem de que vai mandar os valores diretos para a planilha notas fiscais

onde tem
.Trim(Mid(Cells((L - 4) + 8,
tem que deixar
.Trim(Mid(Cells((L - 4) + 8,1),

isso vai ler o valor na planilha e adicionar em uma coluna no array
depois é só adicionar o array na planilha

Sheets("DADOS").Select
    Dim coluno(1 To 1, 1 To 30)
    With Application.WorksheetFunction
    L = 4
    If .Trim(Mid(Cells(L, 1), 9, 15)) = "Estabelecimento" Then
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 4, 1), 25, 10))

    coluno(L2, 2) = .Trim(Mid(Cells((L - 4) + 5, 1), 25, 10)) 'tem que completar linha por linha 
    coluno(L2, 3) = .Trim(Mid(Cells((L - 4) + 6,1), 25, 10))

    coluno(L2, 4) = .Trim(Mid(Cells((L - 4) + 8, 25, 20)))   '.Trim(Mid(Cells((L - 4) + 8,1),25,10))
    coluno(L2, 5) = .Trim(Mid(Cells((L - 4) + 11, 25, 20)))
    coluno(L2, 6) = .Trim(Mid(Cells((L - 4) + 26, 25, 100)))

    coluno(L2, 7) = .Trim(Mid(Cells((L - 4) + 9, 25, 20)))
 ' coluno(L2, 7) tem que trocar os 1 por uma numeração sequencial, isso corresponde as colunas

    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 16, 64, 20)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 17, 64, 20)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 23, 64, 20)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 25, 71, 14)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 4, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 5, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 8, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 10, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 11, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 13, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 16, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 18, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 19, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 20, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 22, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 23, 101, 1000)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 33, 22, 17)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 34, 10, 10)))
    coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 34, 25, 15)))
    End If

sobre criar a linha foi no inicio--------
não vou parar oq já comecei, favor ler o meu pedido nessa parte de cima
-----------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------

essa parte que coloquei ai em cima é essa ...
ela é responsável de pegar os textos e colocar na posição certa, mas de maneira bem rudimentar
eu não lido com textos então tive que aprender como funciona e ver se funcionaria direto no vba

    Sheets("DADOS").Select
    Sheets("DADOS").Range("B4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A4;25;10));"""")"
    
    Sheets("DADOS").Range("c4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A5;25;10));"""")"
    
    Sheets("DADOS").Range("D4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A6;25;10));"""")"
    
    Sheets("DADOS").Range("E4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A8;25;20));"""")"
    
    Sheets("DADOS").Range("F4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A11;25;20));"""")"
    
    
    Sheets("DADOS").Range("G4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A26;25;100));"""")"

    Sheets("DADOS").Range("H4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A9;25;20));"""")"
   
    Sheets("DADOS").Range("I4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A16;64;20));"""")"
    
    Sheets("DADOS").Range("J4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A17;64;20));"""")"

Sheets("DADOS").Range("K4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A23;64;20));"""")"

Sheets("DADOS").Range("L4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A25;71;14));"""")"
    
    Sheets("DADOS").Range("M4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A4;101;1000));"""")"
    
    Sheets("DADOS").Range("N4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A5;101;1000));"""")"

Sheets("DADOS").Range("O4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A8;101;1000));"""")"
    
    Sheets("DADOS").Range("P4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A10;101;1000));"""")"
    
    Sheets("DADOS").Range("Q4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A11;101;1000));"""")"
    
    Sheets("DADOS").Range("R4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A13;101;1000));"""")"
    
    Sheets("DADOS").Range("S4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A16;101;1000));"""")"

Sheets("DADOS").Range("T4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A18;101;1000));"""")"

Sheets("DADOS").Range("U4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A19;101;1000));"""")"

Sheets("DADOS").Range("V4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A20;101;1000));"""")"

Sheets("DADOS").Range("W4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A22;101;1000));"""")"

Sheets("DADOS").Range("X4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A23;101;1000));"""")"

Sheets("DADOS").Range("Y4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A33;22;17));"""")"

Sheets("DADOS").Range("Z4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A34;10;10));"""")"

Sheets("DADOS").Range("AA4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";ARRUMAR(EXT.TEXTO(A34;25;15));"""")"

Sheets("DADOS").Range("AB4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A39;55;1))=""1"";ARRUMAR(EXT.TEXTO(A39;1;8));"""")"

Sheets("DADOS").Range("AC4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A39;55;1))=""1"";ARRUMAR(EXT.TEXTO(A39;17;5));"""")"

Sheets("DADOS").Range("AD4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A39;55;1))=""1"";ARRUMAR(EXT.TEXTO(A39;22;10));"""")"

Sheets("DADOS").Range("AE4").FormulaLocal = _
"=SE(ARRUMAR(EXT.TEXTO(A39;55;1))=""1"";ARRUMAR(EXT.TEXTO(A40;123;100));"""")"

If .Trim(Mid(Cells(L, 1), 9, 15)) = "Estabelecimento" Then
é essa parte
=SE(ARRUMAR(EXT.TEXTO(A4;9;15))=""Estabelecimento"";

coluno(L2, 1) = .Trim(Mid(Cells((L - 4) + 4, 1), 25, 10))
é essa
ARRUMAR(EXT.TEXTO(A4;25;10));"""")"

essa parte de baixo vai sair toda

Sheets("DADOS").Select
    Range("B4:AE4").Select
    Selection.Copy
    Range("B5:AE100000").Select
    
    ActiveSheet.Paste
    Application.CutCopyMode = False
     Range("B3").Select

'======================================================================
        Sheets("DADOS").Select
    Range("B4").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("NOTAS FISCAIS").Select
    ActiveWindow.SmallScroll Down:=-9
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

    Columns("AA:AA").Select
    Application.CutCopyMode = False
    ActiveWorkbook.Worksheets("NOTAS FISCAIS").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("NOTAS FISCAIS").Sort.SortFields.Add Key:=Range( _
        "AA2:AA99998"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("NOTAS FISCAIS").Sort
        .SetRange Range("A1:AD99998")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    Cells.Select
    Cells.EntireColumn.AutoFit
    Range("A1").Select

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 04/05/2015 12:32 pm
(@edcronos)
Posts: 1006
Noble Member
 

para acabar o assunto

Sub FILTRAR_NFS()
    Application.ScreenUpdating = False
    Sheets("DADOS").Select
    Range("A1").Select
    Range("A1", ActiveCell.SpecialCells(xlLastCell)).Clear    'limpa a planilha Dados
    
    
    With ActiveSheet.QueryTables.Add( _
    Connection:="TEXT;D:planilhasGERAL.txt", Destination:=Range("$A$1"))

        .Name = "FT0507.tmp"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

    Columns("A:A").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.EntireRow.Delete
    Range("A1").Select
    ActiveWindow.SmallScroll Down:=-6
    Columns("A:A").Select

    With Selection.Font
        .Name = "Courier New"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With

    Sheets("NOTAS FISCAIS").Select
    Range("A2", ActiveCell.SpecialCells(xlLastCell)).Clear ' limpa a plam de destino
    
    Sheets("DADOS").Select
    Dim Coluno(1 To 1, 1 To 30), Lf3 As Long
    
    With Application.WorksheetFunction
        Lf3 = Sheets("NOTAS FISCAIS").Cells(Rows.Count, 1).End(xlUp).Row + 1
        l2 = 1
        For l1 = 4 To Cells(Rows.Count, 1).End(xlUp).Row
            If .Trim(Mid(Cells(l1, 1), 9, 15)) = "Estabelecimento" Then
                l = l1 - 4
                Coluno(l2, 1) = .Trim(Mid(Cells(l + 4, 1), 25, 10))
                Coluno(l2, 2) = .Trim(Mid(Cells(l + 5, 1), 25, 10))
                Coluno(l2, 3) = .Trim(Mid(Cells(l + 6, 25), 10))
                Coluno(l2, 4) = .Trim(Mid(Cells(l + 8, 25), 20))
                Coluno(l2, 5) = .Trim(Mid(Cells(l + 11, 25), 20))
                Coluno(l2, 6) = .Trim(Mid(Cells(l + 26, 25), 100))
                Coluno(l2, 7) = .Trim(Mid(Cells(l + 9, 25), 20))
                
'**********essa parte em  comentantario vc deve ajustar e acionar

                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 16, 64, 20)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 17, 64, 20)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 23, 64, 20)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 25, 71, 14)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 4, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 5, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 8, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 10, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 11, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 13, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 16, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 18, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 19, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 20, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 22, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 23, 101, 1000)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 33, 22, 17)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 34, 10, 10)))
                '                Coluno(L2, 1) = .Trim(Mid(Cells(l + 34, 25, 15)))
                '    Coluno(L2,1)= AB4").FormulaLocal = "=SE(ARRUMAR(EXT.TEXTO(A39;55;1))=""1"";ARRUMAR(EXT.TEXTO(A39;1;8)))"
                '    Coluno(L2,1)= AC4").FormulaLocal = "=SE(ARRUMAR(EXT.TEXTO(A39;55;1))=""1"";ARRUMAR(EXT.TEXTO(A39;17;5)))"
                '    Coluno(L2,1)= AD4").FormulaLocal = "=SE(ARRUMAR(EXT.TEXTO(A39;55;1))=""1"";ARRUMAR(EXT.TEXTO(A39;22;10)))"
                '    Coluno(L2,1)= AE4").FormulaLocal = "=SE(ARRUMAR(EXT.TEXTO(A39;55;1))=""1"";ARRUMAR(EXT.TEXTO(A40;123;100)))"



                Sheets("NOTAS FISCAIS").Range("A" & Lf3, "AD" & Lf3).Value2 = Coluno 'cola o array montado na plan de destino
                Lf3 = Lf3 + 1 ' pula uma linha na plan destino
            End If
        Next
    End With

    Application.ScreenUpdating = True
End Sub

só falta terminar de completar as formulas
paro por aqui,

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 04/05/2015 1:14 pm
(@edcronos)
Posts: 1006
Noble Member
 

acho que depois dessa ninguem vai querer que eu responda aos seus topicos

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 04/05/2015 2:43 pm
(@wessley)
Posts: 55
Trusted Member
Topic starter
 

boa noite, verdade!! desculpas por tantas perguntas e estar te perturbando!! eu arrumei as linhas que estavam faltando eu renomeei sua macro "FILTRAR_NOTAS_FISCAIS" agora vou tentar quebrar a cabeça nas ultimas 4 colunas que seria. (item, tipo de unidade , qt. faturado, vlr do item). pois vai ter notas fiscais com varios itens e nao sei se ela vai organizar uma de baixo da outra. mais vou tentar aqui obrigado novamente pois com seu codigo ficou muito muito mais rapido.

 
Postado : 04/05/2015 4:11 pm
(@edcronos)
Posts: 1006
Noble Member
 

está aí com as 4 linhas,

não precisa da aba formulas
tirei tudo desnecessário

do jeito que falei inicialmente com busca pelo campo seria até mais lento do que essa que fiz,
mas se garantiria uma constância caso o padrão da nota fiscal mudasse
seria apenas mudar os nomes na planilha para continuar funcionando

mas bem, está aí funcionando
acho que já se pode colocar por resolvido

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 04/05/2015 5:20 pm
(@wessley)
Posts: 55
Trusted Member
Topic starter
 

Realmente vc resolveu meu problema obrigado pela atençao e colaboraçao desculpa qualquer coisa. Agora vou tentar em outros txt que eu uso no meu serviço valeuu

 
Postado : 04/05/2015 5:43 pm
Página 2 / 2