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