Página 1 de 1

Excluis 50 primeiras de cada

Enviado: 08 Mai 2017 às 10:35
por Ronibarros
Caríssimos,
Tenho uma relação, como o exemplo anexo, muito mais extensa, claro. Gostaria de saber como faço para pular as cinquenta primeiras linhas cada município e excluir as demais, levando em consideração a coluna MUNICÍPIOS, que está em vermelho.

Re: Excluis 50 primeiras de cada

Enviado: 08 Mai 2017 às 14:04
por osvaldomp
Olá, Roni.

Se você quiser experimentar uma solução via macro, teste o código abaixo.
Código: Selecionar todos
Sub ExcluiAlémDe50Repetições()
 Dim m As Long, b As Long, c As Long
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
   For b = 2 To Cells(Rows.Count, 2).End(3).Row
    c = Application.CountIf([B:B], Cells(b, 2))
    If c > 50 Then Range(Cells(b + 50, 1), Cells(b + c - 1, 1)).Clear
    b = b + c - 1
   Next b
   [A:A].SpecialCells(xlBlanks).EntireRow.Delete
  Application.Calculation = xlCalculationAutomatic
  Application.ScreenUpdating = True
End Sub

Excluis 50 primeiras de cada

Enviado: 08 Mai 2017 às 14:27
por Ronibarros
Muito bem, agora só para fins didáticos: se os nomes dos municípios estivesses na coluda H, seria só alterar a linha " c = Application.CountIf([B:B], Cells(b, 2))", no item [B:B]?

Re: Excluis 50 primeiras de cada

Enviado: 08 Mai 2017 às 15:16
por Ronibarros
osvaldomp escreveu:Olá, Roni.

Se você quiser experimentar uma solução via macro, teste o código abaixo.
Código: Selecionar todos
Sub ExcluiAlémDe50Repetições()
 Dim m As Long, b As Long, c As Long
  Application.ScreenUpdating = False
  Application.Calculation = xlCalculationManual
   For b = 2 To Cells(Rows.Count, 2).End(3).Row
    c = Application.CountIf([B:B], Cells(b, 2))
    If c > 50 Then Range(Cells(b + 50, 1), Cells(b + c - 1, 1)).Clear
    b = b + c - 1
   Next b
   [A:A].SpecialCells(xlBlanks).EntireRow.Delete
  Application.Calculation = xlCalculationAutomatic
  Application.ScreenUpdating = True
End Sub
MUITO OBRIGADO, CARA. RESOLVIDO.