Página 1 de 1

Excluir linhas até uma determinada Coluna.

Enviado: 05 Out 2016 às 09:56
por diogeles
Sub OrganizarBase()
'
'EXCLUI AS LINHAS QUE TENHA O VALOR 0 ESTÃO FORA DE ORGANIZAÇÃO.

Const sColuna = "N" '<- Mude para adequar a seu caso

Dim lRow As Long
Dim lLast As Long
Dim ws As Worksheet

Set ws = ActiveSheet
With ws
lLast = .Cells(.Rows.Count, sColuna).End(xlUp).Row
'Considerando uma linha de cabeçalho
For lRow = lLast To 2 Step -1
If .Cells(lRow, sColuna) = 0 Then .Rows(lRow).Delete
Next lRow
End With

O MACRO me atende perfeitamente, mas gostaria de saber se é possível ele excluir as linhas, mas só até uma determinada coluna. Exemplo quero que exclua as linhas até a colina "N" e não todas as colunas da planilha.

Re: Excluir linhas até uma determinada Coluna.

Enviado: 05 Out 2016 às 10:10
por alexandrevba
Bom dia!!

Tente assim.
No seu caso está verificando o total de células populadas em coluna N
Código: Selecionar todos
lLast = .Cells(.Rows.Count, sColuna).End(xlUp).Row
Caso precisar altere conforme necessitar
Código: Selecionar todos
LR = Range("A" & Rows.Count).End(xlUp).Row
Código: Selecionar todos
Sub AleVBA_3200()
Dim LR As Long, i As Long
LR = Range("A" & Rows.Count).End(xlUp).Row
For i = LR To 2 Step -1
    If Range("N" & i).Value = 0 Then Rows(i).Delete
Next i
End Sub
Att

Re: Excluir linhas até uma determinada Coluna.

Enviado: 05 Out 2016 às 11:36
por diogeles
alexandrevba escreveu:Bom dia!!

Tente assim.
No seu caso está verificando o total de células populadas em coluna N
Código: Selecionar todos
lLast = .Cells(.Rows.Count, sColuna).End(xlUp).Row
Caso precisar altere conforme necessitar
Código: Selecionar todos
LR = Range("A" & Rows.Count).End(xlUp).Row
Código: Selecionar todos
Sub AleVBA_3200()
Dim LR As Long, i As Long
LR = Range("A" & Rows.Count).End(xlUp).Row
For i = LR To 2 Step -1
    If Range("N" & i).Value = 0 Then Rows(i).Delete
Next i
End Sub
Att

Não consegui, vou enviar a planilha para que você veja.

Re: Excluir linhas até uma determinada Coluna.

Enviado: 05 Out 2016 às 13:20
por alexandrevba
Boa tarde!!

Lembre do Gravador de Macro
Código: Selecionar todos
Sub Macro1()
'
' Macro1 Macro
'

'
    Range("A3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.AutoFilter
    Selection.AutoFilter
    ActiveSheet.Range("$A$3:$X$19053").AutoFilter Field:=17, Criteria1:="0,00"
    Range("A32").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.ClearContents
    ActiveSheet.ShowAllData
    Range("A3:X3000").Select
    ActiveWorkbook.Worksheets("Base-Pedidos").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Base-Pedidos").Sort.SortFields.Add Key:=Range( _
        "Q4:Q19053"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Base-Pedidos").Sort
        .SetRange Range("A3:X19053")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Agora é só editar a macro