Todoexpertos.com
http://www.todoexpertos.com
La respuesta está en Internet
Información de la pregunta
Título: problema con un procedimiento sub()
Experto: valedor
Valoración: 5
Fecha: 16/12/2002


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 condicion es que me sume una columna "x" y la compare con otra , si dan lo mismo deberia eliminar las filas. El problema es que esto es variable, en la mayoria de los casos son dos filas, pero en otras puedo hasta tener 100 filas que cumplen las otras dos condiciones y necesito que sume automaticamente en forma interna (no copiando el resultado en ninguna celda), evalue 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.

Mas detalles...
Si, no creo que sea complicado agregar la tercer condicion, pero tu explicacion 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 deberia eliminar las filas- ¿que filas, las de la suma? Si me muestras el codigo que usas y me detallas mas lo que quieres, seguro que encontramos una solucion, saludos... Mauricio

otra pregunta
Ya encontre la solucion a lo anterior, pero tengo otra duda, resulta que como te explicaba anteriormente, luego de las 3 evaluaciones ¿como 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 asi: Selection.EntireRow.Rows(i).Delete Donde "i" seria el numero de filas desde mi posicion actual, pero en vez de eso me toma este numero como una posicion unica respecto de mi ubicacion. por ejemplo si i=2 entonces esto borra la fila 2 debajo de celda activa y no las dos como yo quisiera

Borrar filas...
De nuevo eres muy parco con tu explicacion, 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 restale 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, te agradecere si la finalizas, sino, vuelve a preguntar, saludos... Mauricio

Pregunta finalizada. Valoración: 5.
gracias, me resulto


Volver al mensaje
http://www.todoexpertos.com/categorias/tecnologia-e-internet/software-y-aplicaciones/microsoft-excel/respuestas/303623/problema-con-un-procedimiento-sub