Iae pessoal, sou novo aqui no forum, estou automatizando uma planilha e então comecei a ver um pouco de VBA, resolvi gerar um código que importa um arquivo .csv que está em um diretório específico, depois ele faz um corte em nas colunas que não vou precisar e depois é feito algumas formatações, o problema é o seguinte, o código funciona quando quer e infelizmente não tenho conhecimento necessário na linguagem para consegui resolver sozinho vou colocar aqui o meu código e tentar explicar meu cenário desde já muito obrigado.
comentei o código, esse foi um código gerado pelo excell e eu dei uma editada de leve
Sub macroAtualizaDadosPedidos()
'
' macroAtualizaDadosPedidos Macro
' atualiza histórico de pedidos
' realiza a sequencia de passos para atualizar os pedidos
'
Call importarPed
Call formatarPedidos
Call colocarFiltros
Call formatarColunas
Call removePedSemDev
End Sub
Sub formatarPedidos()
'
' formatarPedidos Macro
' deixa o arquivo de pedidos no formato padrão
' remove algumas colunas do arquivo de pedidos
'
Range("B:B,F:F,H:H,I:I,J:J,N:N,O:O,P:P,Q:Q,R:R,S:S,T:T,U:U,X:X,Y:Y").Select
Range("Y1").Activate
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
Range( _
"B:B,F:F,H:H,I:I,J:J,N:N,O:O,P:P,Q:Q,R:R,S:S,T:T,U:U,X:X,Y:Y,Z:Z,AB:AB,AD:AD"). _
Select
Range("AD1").Activate
ActiveWindow.SmallScroll ToRight:=14
Range( _
"B:B,F:F,H:H,I:I,J:J,N:N,O:O,P:P,Q:Q,R:R,S:S,T:T,U:U,X:X,Y:Y,Z:Z,AB:AB,AD:AD,AK:AK,AL:AL,AP:AP,AQ:AQ,AR:AR,AS:AS" _
).Select
Range("AS1").Activate
ActiveWindow.SmallScroll ToRight:=12
Union(Range( _
"BH:BH,B:B,F:F,H:H,I:I,J:J,N:N,O:O,P:P,Q:Q,R:R,S:S,T:T,U:U,X:X,Y:Y,Z:Z,AB:AB,AD:AD,AK:AK,AL:AL,AP:AP,AQ:AQ,AR:AR,AS:AS,AX:AX,AY:AY,AZ:AZ,BC:BC,BD:BD,BE:BE,BF:BF" _
), Columns("BG:BG")).Select
Range("BH1").Activate
ActiveWindow.SmallScroll ToRight:=9
Selection.Delete Shift:=xlToLeft
ActiveWindow.ScrollColumn = 48
ActiveWindow.ScrollColumn = 44
ActiveWindow.ScrollColumn = 39
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 1
Cells.Select
Cells.EntireColumn.AutoFit
Range("A1").Select
End Sub
Sub importarPed()
'
' importarPed Macro
' faz a importação do arquivo .csv
'
Dim url As String
url = "C:bancoRNPEDIDOS.CSV"
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & url, Destination:=Range("$A$1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Sub colocarFiltros()
'
' colocarFiltros Macro
' coloca filtros no cabeçalho
'
'
Range("A1:AK1").Select
Selection.AutoFilter
End Sub
Sub formatarColunas()
'
' formatarColunas Macro
' formata o tamanho das colunas
'
'
Cells.Select
Cells.EntireColumn.AutoFit
End Sub
Sub removePedSemDev()
'
' removePedSemDev Macro
' remove pedidos sem devolução
' remove os pedidos sem devolução e os pedidos consignados
'
Range("A2").Select
ActiveWindow.SmallScroll ToRight:=17
ActiveSheet.Range("$A$1:$AK$50117").AutoFilter Field:=27, Criteria1:=Array( _
"170", "171", "20", "3", "5", "50", "553", "99"), Operator:=xlFilterValues
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 1
ActiveWindow.SmallScroll ToRight:=4
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Rows("55:50392").Select
Selection.Delete Shift:=xlUp
ActiveWindow.SmallScroll ToRight:=13
ActiveSheet.Range("$A$1:$AK$48897").AutoFilter Field:=27
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveWindow.SmallScroll ToRight:=2
Columns("T:T").Select
ActiveSheet.Range("$A$1:$AK$48897").AutoFilter Field:=20, Criteria1:="0"
Rows("2:50123").Select
Range("C2").Activate
Selection.Delete Shift:=xlUp
ActiveSheet.Range("$A$1:$AK$1699").AutoFilter Field:=20
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("A2").Select
End Sub
Postado : 17/08/2016 12:39 pm