** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Código para eliminar filas
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Código para eliminar filas

 Responder Responder
Autor
Mensaje
jtovar19 Ver desplegable
Nuevo
Nuevo


Unido: 23/Julio/2021
Localización: Ciudad de Mexic
Estado: Sin conexión
Puntos: 1
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita jtovar19 Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Código para eliminar filas
    Enviado: 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!

Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5970
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita AnSanVal Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lbauluz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable