Macro que me elimine los nombres no repetidos .

Quisiera saber como generar una macro que me elimine las filas de los nombres no repetidos que están en la columna "D", en esa columna tengo una serie de nombres los cuales tengo que verificar de otra planilla si es que aun están y si no están en la otra planilla en la columna d de mi hoja tengo que eliminarlos. Entonces el la columna de copio los nombres de la planilla y voy verificando si están repetidos y elimino las filas de los que no están repetidos.

Ejemplo:

Y verifico los nombres de esa columna y si no se repiten elimino la fila.

1 Respuesta

Respuesta
1

H o l a:

Haber si entendí.

Tienes una plantilla, digamos que es la plantilla1, ¿es una hoja o un libro?

Luego dices que tienes que verificar los nombres que tienes en la columna "D" en otra plantilla, la llamamos plantilla2, ¿la otra plantilla es una hoja o es otro libro?

Entonces, siguiendo tu ejemplo de la imagen, el segundo nombre que aparece es: "AIMS Last Door"; lo que quieres que haga la macro es tomar el nombre "AIMS Last Door" que está en la planilla1 y buscarlo en la planilla2, si NO lo encuentra entonces lo elimino de la planilla1.

Me tienes que decir lo siguiente:

1. Nombre de la planilla1

2. Nombre de la planilla2, si es un libro o si es una hoja dentro del mismo libro donde tienes la planilla1.

3. En cuál columna están los nombres de la planilla2.

Es un libro, la hoja (planilla 1) se llama "tabla proyectos" y la Hoja (planilla 2) se llama "Act. Proyecto", están en el mismo libro.

Los nombres en la planilla dos están el la columna "A" a partir de la la celda "A2".

Si no lo encuentra que elimine la fila dónde esta el nombre no encontrado.

H o l a:

Te anexo la macro

Sub EliminarNombres()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("tabla proyectos")
    Set h2 = Sheets("Act. Proyecto")
    n = 0
    For i = h1.Range("D" & Rows.Count).End(xlUp).Row To 2 Step -1
        Set b = h2.Columns("A").Find(h1.Cells(i, "D"), lookat:=xlWhole)
        If Not b Is Nothing Then
            h1.Rows(i).Delete
            n = n + 1
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox "Registros eliminados: " & n
End Sub

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta.

Sale Sub Indice fuera de intervalo

Revisa los nombre de las hojas:

Yo puse los nombres que tu me diste:

Set h1 = Sheets("tabla proyectos")
Set h2 = Sheets("Act. Proyecto")

Pero tal vez los tienes de diferente forma en tu libro, revisa bien los espacios, si tienes espacios antes del nombre o después del nombre y actualiza esos nombres que tienes de tus hojas en la macro.

Prueba nuevamente.

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta.

ya lo arreglo pero lo que sucede que en la hoja Planilla 1 "tabla de proyectos" me elimino los repetidos, no los "no repetidos" y yo quería que me eliminara los no repetidos.

Tienes razón, te anexo la macro actualizada.

Si corregiste los nombres en la macro, tienes que volver a corregirlos en esta macro:

Sub EliminarNombre()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("tabla proyectos")
    Set h2 = Sheets("Act. Proyecto")
    n = 0
    For i = h1.Range("D" & Rows.Count).End(xlUp).Row To 2 Step -1
        Set b = h2.Columns("A").Find(h1.Cells(i, "D"), lookat:=xlWhole)
        If b Is Nothing Then
            h1.Rows(i).Delete
            n = n + 1
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox "Registros eliminados: " & n
End Sub

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas