VBA Excel para eliminar columnas completas

Tengo una hoja de excel con un rango de datos y una fila de sumatorias al final.

Lo que deseo es eliminar todas las columnas adonde la sumatoria final (fila 72 en este caso) sea cero.

Lo realizo con el siguiente código, que es muy simple, pero no entiendo por qué no lo hace todo de una vez y debo ejecutarlo varias veces hasta conseguir la eliminación total de las columnas que no necesito.

Sub Test()
Dim FilaSumas As Integer
Dim i As Integer
Dim ColumnaSumas As Integer
FilaSumas = Range("A" & Rows.Count).End(xlUp).Row
ColumnaSumas = Cells(6, Columns.Count).End(xlToLeft).Column
For c = 3 To ColumnaSumas
If Cells(FilaSumas, c).Value = "0" Then Cells(FilaSumas, c).EntireColumn.Delete
Next
End Sub

1 respuesta

Respuesta
1

Ese código debería funcionar.

De todas formas prueba este a ver (asumo que son fórmulas lo que hay en esas celdas)

Sub Test2()
Dim rCell As Range, rRng As Range
Dim lRow As Long
lRow = Range("A" & Rows.Count).End(xlUp).Row
Set rRng = Rows(lRow).SpecialCells(Type:=xlCellTypeFormulas, Value:=xlNumbers)
For Each rCell In rRng
    If rCell.Value2 = 0 Then
        rCell.EntireColumn.Delete
    End If
Next rCell
End Sub

Fíjate que uso el Value2 y el 0 sin comillas, para evitar tratarlo como string (por si acaso)

Andy M.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas