Macro para eliminar ceros

En la columna A desde A1 hasta A100 hay números, celdas vacías y ceros, necesito una macro que recorra el rango y me elimine unicamente los ceros que el resto del rango quede igual... Muchas gracias x tu ayuda
Aquí te mando mi macro revísala
Sub elimnaceros()
Range("a1").Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value = 0 Then
Selection.ClearContents
ActiveCell.Offset(1, 0).Select
End If
ActiveCell.Offset(1, 0).Select
If ActiveCell.Value = "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub

3 Respuestas

Respuesta
1

Te mando una macro que hace lo mismo, pero en mi opinión mucho más fácil de entender.

Sub EliminaCeros()
Dim i As Integer
For i = 1 To 100
 If Cells(i, 1).Value = 0 Then
 Cells(i, 1).Value = ""
 End If
Next i
End Sub
Respuesta
1

Pero si lo que necesitas es que la macro recorra desde 1 a 100, y en aquel rango tienes valores que están en blanco, te aconsejo que utilicen el si un for, ya que con la macro actualizar si encuentras campos en blancos seguidos se detendrá, aca te envío como te aconsejo:

Sub elimnaceros()
Range("A1").Select
For i = 1 To 99
If ActiveCell = "" Then
ActiveCell.ClearContents
ElseIf ActiveCell = 0 Then
ActiveCell.ClearContents
End If
ActiveCell.Offset(1, 0).Select
Next i
End Sub

Respuesta
1

Te dejo el código modificado, aunque hace lo mismo que tu código inicial, con este nuevo enfoque se evita el desplazamiento de celda en celda, lo que representa una mayor velocidad de operación (en proceso más largos es más evidente)

Además el ciclo se ejecuta entre la celda A1 y la ultima fila que contenga algún dato.

Sub EliminaCeros()
''Modificada por FSerrano en 120620
''Para efuks en TodoExpertos.com
For i = 1 To Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
     If Cells(i, 1).Value = 0 Then Cells(i, 1).ClearContents
Next
End Sub

Pruébalo y me cuentas como te va.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas