Imprimir página | Cerrar ventana

Código para eliminar filas

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86073
Fecha de impresión: 18/Octubre/2021 a las 21:53


Tema: Código para eliminar filas
Publicado por: jtovar19
Asunto: Código para eliminar filas
Fecha de publicación: 23/Julio/2021 a las 18:41
Hola! Tengo el siguiente código que necesito usar para comparar dos bases de datos y eliminar las filas que no esten actualizadas. Ya he probado con un bucle For o While, pero lo mas que he llegado es a eliminar una fila. Adjunto el código. 

Sub QuitarVencidasBD()

Dim cont As Long
Dim uf As String
Dim vencida As Variant
Dim match As Variant
Dim rango As Variant

uf = Sheets("Base de Datos").Range("A5").End(xlDown).Row
Set rango = Sheets("Base de Datos").Range("A5:A25000")

Sheets("Base de Datos").Activate
For cont = 5 To uf
    vencida = Sheets("Vencidos").Cells(cont, 6)
    match = Application.VLookup(vencida, rango, 1, False)
    
    If IsError(match) = False Then
    match.EntireRow.Delete
        
    End If

Next cont

    
End Sub


Muchas gracias!




Respuestas:
Publicado por: AnSanVal
Fecha de publicación: 24/Julio/2021 a las 02:06
Cuando desees eliminar filas, no lo hagas desde la fila 5 a la fila 25000, debes hacerlo (en modo inverso) desde la fila 25000 a la fila 5 (de abajo hacia arriba), o te podrían quedar datos sin leer.

Ejemplo: si en A15 tienes peras (eliminable) y en A16 tienes uvas (eliminable), leyendo de arriba a abajo eliminas 'peras' y 'uvas' pasa a ocupar A15, pero el bucle no vuelve a leer A15 sino que pasa a A16 (que era A17) que es el siguiente paso, con lo cual uvas no es eliminada y el método falla, en cambio leyendo de abajo a arriba el bucle lee A16 > elimina uvas > el bucle lee A15 y elimina peras.




-------------
Saludos desde Tenerife.

Mi http://achinet.mvp-access.es/" rel="nofollow - sitio_web con ejemplos Excel.


Publicado por: lbauluz
Fecha de publicación: 26/Julio/2021 a las 08:47
Lo que te viene a decir AnSanVal es 

En lugar de poner:

For cont = 5 To uf

Pon:

For cont = uf to 5 step -1

El resto parece estar bien.

Luis


-------------
El Búho es un pajarraco



Imprimir página | Cerrar ventana