Macro para eliminar filas

26/04/2004 - 07:44 por aguila_mo | Informe spam
Estoy intentando eliminar las filas que en la columna D y H tengan el
mismo valor a partir de la fila 11, en ambas columnas puede haber
celdas vacias, pero no en la misma fila, lo he intentado con esta
macro;

Sub borrar()
Range("D11").Select
For A = 1 To 500
If ActiveCell.Offset(A, 0) = ActiveCell.Offset(A, 4) Then
ActiveCell.Offset(A, 0).EntireRow.Delete
End If
Next A
End Sub

El problema es qe no me funciona, si alguien tiene una idea de porque
no me funciona se lo agradeceria

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
26/04/2004 - 19:53 | Informe spam
hola !

... eliminar las filas que en ... D y H tengan el mismo valor a partir de la fila 11 ... con esta macro;
Sub borrar()
Range("D11").Select
For A = 1 To 500
If ActiveCell.Offset(A, 0) = ActiveCell.Offset(A, 4) Then [...]
... no me funciona, si alguien tiene una idea de porque [...]



[probablemente] esta 'omitiendo' eliminar algunas filas que 'cumplen' la condicion para 'ser eliminadas' [???]
la razon [posiblemente] es que... estas 'avanzando' por las filas =>For A = 1 To 500<= y...
cuando se elimina alguna fila... la siguiente 'pasa a ocupar' el lugar de la fila eliminada pero...
el 'numero' de fila que le 'correspondia' ANTES de la eliminacion de la 'anterior'... es [por ende] 'brincado' :((
[a menos que... ] cuando 'suceda' alguna eliminacion... se debera RESTAR uno al 'contador' [A = A - 1]

otra alternativa [para 'estos casos'] es efectuar 'el recorrido' a la inversa [de abajo hacia arriba]
p.e. For A = 500 To 11 Step - 1

saludos,
hector.
Respuesta Responder a este mensaje
#2 aguila_mo
27/04/2004 - 06:20 | Informe spam
Gracias Hector, tu observacion me ha sido de utilidad

Héctor Miguel wrote in message news:...
hola !

> ... eliminar las filas que en ... D y H tengan el mismo valor a partir de la fila 11 ... con esta macro;
> Sub borrar()
> Range("D11").Select
> For A = 1 To 500
> If ActiveCell.Offset(A, 0) = ActiveCell.Offset(A, 4) Then [...]
> ... no me funciona, si alguien tiene una idea de porque [...]

[probablemente] esta 'omitiendo' eliminar algunas filas que 'cumplen' la condicion para 'ser eliminadas' [???]
la razon [posiblemente] es que... estas 'avanzando' por las filas =>For A = 1 To 500<= y...
cuando se elimina alguna fila... la siguiente 'pasa a ocupar' el lugar de la fila eliminada pero...
el 'numero' de fila que le 'correspondia' ANTES de la eliminacion de la 'anterior'... es [por ende] 'brincado' :((
[a menos que... ] cuando 'suceda' alguna eliminacion... se debera RESTAR uno al 'contador' [A = A - 1]

otra alternativa [para 'estos casos'] es efectuar 'el recorrido' a la inversa [de abajo hacia arriba]
p.e. For A = 500 To 11 Step - 1

saludos,
hector.


Gracias Hector, tu observacion me ha sido de utilidad
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida