Ejecutar macro desde otra hoja del libro

Tengo la siguiente macro que me borra las filas en 0 que encuentre en la columna A, cuando la ejecuta desde la hoja prueba como en este caso me funciona, pero si lo hago desde otra hoja no hace nada, ¿qué podría faltar?
Sub eliminarfilas1()
Application.ScreenUpdating = False
Set a = Worksheets("prueba")
uf = a.Range("A" & Rows.Count).End(xlUp).Row
For x = uf To 2 Step -1
If a.Cells(x, 1) = "0" Then Cells(x, 2).EntireRow.Delete
Next x
Application.ScreenUpdating = True
End Sub

2 respuestas

Respuesta
1

La línea Set a = Worksheets("prueba") hace que la macro solo funcione en la hoja prueba, sustitúyela por Set a = ActiveSheet esto hará que la macro se ejecute en cualquier hoja.

Respuesta

Sub eliminarfilas1()
Application.ScreenUpdating = False
Set a = Worksheets("prueba")
uf = a.Range("A" & Rows.Count).End(xlUp).Row
For x = uf To 2 Step -1
If a.Cells(x, 1) = "0" Then Cells(x, 2).EntireRow.Delete
Next x
Application.ScreenUpdating = True
End Sub

Este código crea un objeto con la hoja

Set a = Worksheets("prueba")

Tu requieres 

If a.Cells(x, 1) = "0" Then Cells(x, 2).EntireRow.Delete

La acción es eliminar la fila y que estás recorriendo pero no indicas de que hoja por ende está eliminado de la hoja activa

Cells(x, 2).EntireRow.Delete

debes usar

a.Cells(x, 2).EntireRow.Delete

Debes hacer referencia al objeto en definitiva

Visita http://programarexcel.com descarga cientos de ejemplos grátis

suscribe a https://www.youtube.com/channel/UCTKYXi9ljxxOAXXKgwWDDpQ recibirás actualizaciones de ejemplos presentados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas