PROBLEMA EN LA ELIMINACION DE FILAS

15/05/2007 - 17:15 por airdom | Informe spam
Tengo un archivo en el que debo eliminar ¡Una por una! las filas con igual
VALOR ABSOLUTO. Ya las identifiqué con formato condicional y les dí un color
diferente para ubicarlas. ¿Alguien me puede ayudar con alguna macro que
simplifique la tarea? ¿Cómo puedo enviar el archivo?

Preguntas similare

Leer las respuestas

#1 Arcano
15/05/2007 - 21:57 | Informe spam
On 15 mayo, 11:15, airdom wrote:
Tengo un archivo en el que debo eliminar ¡Una por una! las filas con igual
VALOR ABSOLUTO. Ya las identifiqué con formato condicional y les dí un color
diferente para ubicarlas. ¿Alguien me puede ayudar con alguna macro que
simplifique la tarea? ¿Cómo puedo enviar el archivo?



For i = 1 To 100
Range("A" & i).Select
If Range("A" & i).Value = 1 Then
Selection.EntireRow.Delete
End If
Next i

Suponiendo que 1 es el valor que tienes en la celda, y que ese "valor
absoluto" esta solo en la columna A y que tienes que revisar hasta la
fila 100.
Saludos
Respuesta Responder a este mensaje
#2 Ivan
15/05/2007 - 23:32 | Informe spam
hola chicos, diculpad que me meta donde no me llaman, pero si no me equivoco
(que puede que si) en el codigo propuesto por Arcano, el bucle deberia ser
inverso:

para el mismo codigo algo asi:

for i = 100 to 1 Step -1

si estoy metiendo la pata me lo decis

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#3 Ivan
16/05/2007 - 00:25 | Informe spam
hola de nuevo y, ya que me he metido pues aqui va una adaptacion de la
idea de Arcano por si quieres probarla

la base es la misma que la de arcano pero invirtiendo el bucle, pues
de la otra frma, cada vez que eliminaras una fila te saltarias otra
que no llegaria a evaluarse

Requisitos que puedes adaptar a tu caso concreto:

1.-la hoja con la lista se llama "Hoja1" -> puedes cambiarlo por la
tuya en ->

With ThisWorkbook.Worksheets("Hoja1") =>, ojo sin olvidarte de poner
las comillas

2.- lo mismo para el dato a buscar, cambia "TuDato" por el que
corresponda => el mismo ojo

si por ejemplo prefirieras coger el valor de una celda concreta
podrias cambiarlo por dicha celda. pej: supongamos que el dato que
quieres que te busque lo escribes en la celda A1 de la misma hoja
podrias cambiar esto ->

dato = "TuDato" por esto => dato = .Range("a1")

3.- en cuanto a la 1º fila en la macr se supone la 1 con los titulos y
en la 2 empiezan los datos, si no es asi cambia en =>

For fila = ultF To 2 Step -1

el 2 por la fila que va debajo de los titulos (o si n los tiene por la
1ª fila con datos de tu lista)

4.- y en cuanto a la columna en que buscara el dato esta hecho para la
columna A, si no es asi cambia el 1 de => If .Cells(fila, 1) = dato
Then _ por el nº de la columna en el que quieras buscar.

5,- por ultimo, si te decides a probarlo, y solo por si no lo
supieras, puedes hacer lo siguiente:-> abre el editor de VBA (Alt
+F11) -> asegurate de que el libro activo en el editor es el de la
lista (Mira en la ventana 'Explorador de proyectos' [si no esta
abierta ve a menu ver y seleccionala] que suele estar a la izquierda
que el VBAProject resaltado sea el de tu libro (mas o menos pondra
VBAProject(nombre de tu libro)) si no es asi haz click en el ahasta
que sea el resaltado -> despues ve al menu insertar y elige 'Modulo' -
en la hoja que se te abre copia/pega el codigo expuesto.



puedes ejecutar la macro directamente con F5 o volver a excel y
elegirla del cuadro macros -> ejecutar macro


Sub EliminarSegunDato()
Dim fila As Long, ultF As Long, dato
dato = "TuDato"
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Hoja1")
ultF = .[a65536].End(xlUp).Row
For fila = ultF To 2 Step -1
If .Cells(fila, 1) = dato Then _
.Rows(fila).Delete
Next
End With
End Sub

espero te ayude

un saludo
Ivan
Respuesta Responder a este mensaje
#4 Ivan
16/05/2007 - 00:39 | Informe spam
Disculpa, en cuanto al dato lo de las comillas solo es si el dato es
de tipo texto, si es numerico pon el valor directamente, y en el caso
de cogerlo de una celda no pongas comillas en ningun caso

y otra cosa si el dato no lo busca en la columnaA cambia la 'a' de ->

ultF = .[a65536].End(xlUp).Row

por la letra de la columna correspondiente

y en cuanto al 'largo' de la lista no te preocupes, buscara desde la
ultima fila con datos de esa columna hacia arriba hasta la que le
indiques (2 o la que pongas)

bueno, disculpa el despiste

un saludo
Ivan
Respuesta Responder a este mensaje
#5 Héctor Miguel
16/05/2007 - 07:59 | Informe spam
hola, 'anonimo/a' !

Tengo un archivo en el que debo eliminar Una por una! las filas con igual VALOR ABSOLUTO.
Ya las identifique con formato condicional y les di un color diferente para ubicarlas.
Alguien me puede ayudar con alguna macro que simplifique la tarea?



por que no expones datos mas 'precisos' en relacion con el "igual valor absoluto" ???
[probablemente] podrias aprovechar autofiltros y/o filtros avanzados para eliminar filas mas rapidamente ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida