Notifications
Clear all

Estrutura de Repetição excluir Linha inteira

5 Posts
2 Usuários
0 Reactions
1,113 Visualizações
(@ericksant)
Posts: 109
Estimable Member
Topic starter
 

Prezados,
bom dia,

Gostaria de criar uma macro onde seguisse a seguinte lógica... Caso o valor seja = 10,00 ou vazio, excluir a linha inteira...

Acho que vendo o anexo fica mais fácil de entender, coloquei como ficaria o resultado na planilha2....

Mais uma vez, Obrigado!

 
Postado : 11/07/2018 10:09 am
(@ericksant)
Posts: 109
Estimable Member
Topic starter
 

Amigos,

tentei fazer o seguinte...

    

Sub teste()

Application.ScreenUpdating = False
    
    Dim UltimaLinha As Long
  
    UltimaLinha = Planilha1.Range("A" & Rows.Count).End(xlUp).Row

    For i = 1 To UltimaLinha
        If (Planilha1.Range("C" & i).Value = 10)  or (Planilha1.range("C"&i).value = "") Then
              Rows(i).Delete
        End If
    Next i
    
    MsgBox "Concluído!"

End Sub

Mas mesmo assim ele ignora as linhas sem valor e parte pra próxima...

 
Postado : 11/07/2018 12:18 pm
(@klarc28)
Posts: 971
Prominent Member
 

Mensagem apagada pelo usuário

 
Postado : 11/07/2018 12:20 pm
(@ericksant)
Posts: 109
Estimable Member
Topic starter
 

Esse código até funciona, mas eu tenho que rodar ele 2x pra ele não deixar nenhuma linha com a coluna C sem valor...

Se você rodar ele 1x, ele deixa varias linhas com a coluna C sem valor, se rodar mais uma vez, ele faz a limpeza que tinha que ter feito anteriormente...

pq ?

 
Postado : 11/07/2018 12:28 pm
(@klarc28)
Posts: 971
Prominent Member
 

Primeira Versão

Option Explicit

Sub teste()


Dim linha As Long

Dim linhas As Long

linhas = Range("A1").End(xlDown).Row

For linha = 2 To linhas - 1

If Plan1.Range("C" & linha).Value = 10 Or Plan1.Range("C" & linha).Value = "" Then
Plan1.Range("E" & linha).Value = "sim"

End If



Next linha
inicio:
linhas = Range("A1").End(xlDown).Row
For linha = 2 To linhas

If Plan1.Range("E" & linha).Value = "sim" Then
Plan1.Range("E" & linha).EntireRow.Delete
GoTo inicio
End If
Next linha


End Sub

Segunda Versão

Option Explicit

Sub teste()


Dim linha As Long

Dim linhas As Long

linhas = Range("A1").End(xlDown).Row

For linha = 2 To linhas - 1

If Plan1.Range("C" & linha).Value = 10 Or Plan1.Range("C" & linha).Value = "" Then
Plan1.Range("C" & linha).Value = "sim"

End If



Next linha
inicio:
linhas = Range("A1").End(xlDown).Row
For linha = 2 To linhas

If Plan1.Range("C" & linha).Value = "sim" Then
Plan1.Range("C" & linha).EntireRow.Delete
GoTo inicio
End If
Next linha


End Sub

 
Postado : 11/07/2018 12:40 pm