Boa tarde!!
Você abandonou seu tópico, se não foi o que esperava porque não respondeu.
Eu baixei o arquivo do minha ultima postagem (se é que vc viu minha ultima postagem), está rodando normal.
dentro do arquivo continha uma das suas solicitações que de forma presumida, resolvia o tópico.
Dentro arquivo tem as rotinas.
Código: Selecionar todosSub AleVBA_17808V3()
Dim InputRange As Range
Dim OutputCell As Range
Application.ScreenUpdating = False
Set InputRange = Sheets("Plan1").Range("H15:L23")
Set OutputCell = Sheets("Plan1").Range("AG2")
ActiveSheet.Range("AG:AI").ClearContents
[AG1].Value = "AleVBA"
For Each cll In InputRange
OutputCell.Value = cll.Value
Set OutputCell = OutputCell.Offset(1, 0)
Next
ActiveSheet.[AG1].CurrentRegion.RemoveDuplicates Columns:=1, Header:=xlYes
With ActiveSheet
[AH1].Value = "AleVBA2"
[AI1].Value = "AleVBA3"
[AJ1].Value = "AleVBA4"
.Range("AH2").Formula = "=MOD(ROWS(N$2:N2)-1,5)+1"
.Range("AH2").AutoFill .Range("AH2:AH50")
.Range("AI2").Formula = "=ROUNDUP(ROW($A1)/5,0)"
.Range("AI2").AutoFill .Range("AI2:AI50")
.Range("AJ2").Formula = "=IF(AG2="""","""",VLOOKUP(AG2,D:E,2,0))"
.Range("AJ2").AutoFill .Range("AJ2:AJ50")
.Range("AG1:AJ50").Value = .Range("AG1:AJ50").Value
End With
Call PartII
Call PartIII
ActiveSheet.Range("AG:AJ").ClearContents
Columns("Q:Ae").HorizontalAlignment = xlCenter
Application.ScreenUpdating = True
End Sub
Código: Selecionar todosSub PartII()
Columns("AG:AJ").Select
ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("AJ2:AJ82") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Plan1").Sort.SortFields.Add Key:=Range("AH2:AH82") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Plan1").Sort
.SetRange Range("AG1:AJ82")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Código: Selecionar todosSub PartIII()
Dim i As Long
For lContLinha = 2 To Range("AJ" & Rows.Count).End(3).Row
If Cells(lContLinha, "AJ") = "0 a 10" Then
Cells(lContLinha, "AG").Copy Cells(lContLinha, "Q").Offset(13, 0)
ElseIf Cells(lContLinha, "AJ") = "11 a 20" Then
Cells(lContLinha, "AG").Copy Cells(lContLinha, "S").Offset(10, 0)
ElseIf Cells(lContLinha, "AJ") = "21 a 30" Then
Cells(lContLinha, "AG").Copy Cells(lContLinha, "U").Offset(8, 0)
ElseIf Cells(lContLinha, "AJ") = "31 a 40" Then
Cells(lContLinha, "AG").Copy Cells(lContLinha, "W").Offset(6, 0)
ElseIf Cells(lContLinha, "AJ") = "41 a 50" Then
Cells(lContLinha, "AG").Copy Cells(lContLinha, "Y").Offset(3, 0)
ElseIf Cells(lContLinha, "AJ") = "51 a 60" Then
Cells(lContLinha, "AG").Copy Cells(lContLinha, "AA").Offset(-1, 0)
ElseIf Cells(lContLinha, "AJ") = "61 a 70" Then
Cells(lContLinha, "AG").Copy Cells(lContLinha, "AC").Offset(-3, 0)
ElseIf Cells(lContLinha, "AJ") = "71 a 80" Then
Cells(lContLinha, "AG").Copy Cells(lContLinha, "AE").Offset(-5, 0)
End If
Next lContLinha
End Sub
Att
Espero ter Ajudado.
Se a mensagem foi util Favor
Clicar na mãozinha.
Quando necessário, lembre se de marcar o tópico como
[RESOLVIDO].
Tenha um bom dia
