Wagner boa tarde, obrigado por contribuir, deu certo, porém adaptei mais uma tabela com o mesmo conceito da macro anterior.
Agora ficou assim, a macro cópia dados da coluna G3:G22 se for <> 0 e colocar em ordem decrescente na coluna P3:P22 e cópia dados da coluna J3:J22 se for <> 0 e coloca em ordem decrescente na coluna AB3:AB22.
Código:
Sub Copiar()
Dim i As Integer
Dim k As Integer
k = 3 'Variável para controlar a linha de destino
For i = 3 To 22 'Percorre "Plan1" da linha 3 até a 22
Application.ScreenUpdating = False
'Se o valor da célula da coluna "H" e "J" for diferente de 0
If Sheets("Plan1").Cells(i, "H").Value <> 0 And Sheets("Plan1").Cells(i, "J").Value <> 0 Then
Sheets("Plan1").Cells(k, "Q").Value = Sheets("Plan1").Cells(i, "H").Value
Sheets("Plan1").Cells(k, "AB").Value = Sheets("Plan1").Cells(i, "J").Value
k = k + 1 'Incrementa o valor de "k" para que o intervalo seguinte seja copiado na linha de baixo.
End If
Next
Application.ScreenUpdating = True
End Sub
Sub Ord_Decrescente()
Application.ScreenUpdating = False
Range("Q2:R22").Select
ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("Q3:Q22"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Plan1").Sort
.SetRange Range("Q2:R22")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("AB2:AC22").Select
ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("AB3:AB22") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Plan1").Sort
.SetRange Range("AB2:AC22")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Application.ScreenUpdating = True
End Sub
Preciso que a macro execute automaticamente no ato da alteração das duas colunas.
silva_jmp
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 13/01/2014 11:49 am