Inicio > Microsoft Excel > valedor > problema con un procedimiento sub()

problema con un procedimiento sub()

Experto:
Usuario:
Fecha: 13/10/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
13/10/2008
soad26, usuario preguntando en Microsoft Excel
Usuario
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.
13/10/2008
soad26, experto respondiendo en Microsoft Excel
Experto
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
13/10/2008
soad26, usuario preguntando en Microsoft Excel
Usuario
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
13/10/2008
soad26, experto respondiendo en Microsoft Excel
Experto
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
13/10/2008
soad26, usuario preguntando en Microsoft Excel
Usuario
gracias, me resulto
Enlaces patrocinados