Excel - Copiar si se cumple el rango de condición

Problema

Quiero copiar datos de una hoja a otra si el rango de entrada se cumple en otra hoja

  • Todos mis datos están en la hoja llamada "insertar" fila, la hoja G "insertar" tiene los nombres de las personas
  • En el nombre de la hoja "Dom", el rango B4: b17 tiene la lista de nombres de ese equipo
  • Si los nombres que aparecen en la hoja de Dom aparecen en la hoja "insertar", quiero copiar esa fila a la fila 75 y superior en la hoja de Dom

Solución

"Fila, hoja G" insertar "tiene los nombres de las personas"

G no puede ser una fila, solo una columna asumiendo que en la columna g tuve que hacer una hoja de muestra

Insertar hoja se verá así desde la columna A a la H

col.G col H

 nombre datos a 1 s 2 d 3 f 4 g 5 h 6 

La hoja de dom será así

 col B row4 adgkwryuzcbmnp 

Escribí macro ejecuta la macro y veo si esto es lo que quieres. Habría sido más útil si le hubiera dado un pequeño extracto de hojas de inserción y de dom. Si quieres y puedes modificar la macro para adaptarla a tus datos.

MEJOR GUARDE EL ARCHIVO ORIGINAL DE MANERA SEGURA EN ALGUNA PARTE PARA LA RECUPERACIÓN SI ALGO VA MAL.

 Subprueba () Dim cfind As Range, c As Range, x As String, dest As Range, j As Long j = 1 Con hojas de trabajo ("dom") para cada c In. Rango ("B4: B17") x = c .Value With Worksheets ("insert"). UsedRange Set cfind = .Cells.Find (what: = x, lookat: = xlWhole) Si no cfind no es nada, entonces cfind.EntireRow.Copy End With .Range ("A75"). Offset (j, 0) .PasteSpecial j = j + 1 Next c Fin con End Sub Sub deshacer () Con hojas de trabajo ("dom") Rango (.Range ("A75"), .Cells (Rows.Count, "A" )). EntireRow.Delete End With End Sub 

Gracias a Venkat por este consejo.

Artículo Anterior Artículo Siguiente

Los Mejores Consejos