Problema con un procedimiento sub()

Hola valedor, te explico estoy haciendo un pequeño procedimiento que tiene como objeto eliminar filas de un gran listado cuando se cumplen tres condiciones, dos de las condiciones ya las tengo listas, pero la tercera condición es que me sume una columna "x" y la compare con otra, si dan lo mismo debería eliminar las filas. El problema es que esto es variable, en la mayoría de los casos son dos filas, pero en otras puedo hasta tener 100 filas que cumplen las otras dos condiciones y necesito que sume automáticamente en forma interna (no copiando el resultado en ninguna celda), evalúe y si dan lo mismo, eliminar las filas del rango. Trate con un arreglo, pero no puedo porque me da un error (9) .
Espero tus comentarios.

1 respuesta

Respuesta
1
Si, no creo que sea complicado agregar la tercer condición, pero tu explicación es muy superficial, por ejemplo me dices -que me sume una columna "x"-, ¿quieres decir que te sume TODA la columna, desde la fila 1 y hasta la 65536 en el caso de Excel2000?...
Dices -y la compare con otra-, ¿con otra columna, con la SUMA de otra columna o con que otra?
Dices -si dan lo mismo debería eliminar las filas- ¿Qué filas, las de la suma?
Si me muestras el código que usas y me detallas más lo que quieres, seguro que encontramos una solución.
Ya encontré la solución a lo anterior, pero tengo otra duda, resulta que como te explicaba anteriormente, luego de las 3 evaluaciones ¿cómo puedo eliminar las filas de este rango (el que evalué)?. Como celda activa al final del proced. Quedo en una de las filas evaluadas. Yo pensaba ocupar una cosa así:
Selection.EntireRow.Rows(i).Delete
Donde "i" seria el numero de filas desde mi intentar actual, pero en vez de eso me toma este numero como una intentar única respecto de mi ubicación.
Por ejemplo si i=2 entonces esto borra la fila 2 debajo de celda activa y no las dos como yo quisiera
De nuevo eres muy parco con tu explicación, la siguiente linea te elimina desde la celda activa, y tantas filas arriba como marque la variable i, si...
i=2
Entonces, te borrar tres filas, la de la celda activa y dos arriba, si quieres solo eliminar tantas filas como marque esta variable, solo réstale uno como en el segundo ejemplo
Range(ActiveCell, ActiveCell.Offset(-i, 0)).EntireRow.Delete
Range(ActiveCell, ActiveCell.Offset(-(i - 1), 0)).EntireRow.Delete
Si esto resuelve tu pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas