Copiar información después de localizar código

Necesito realizar la siguiente operación desde excel con visual. Estoy utilizando el siguiente código para localizar un valor dentro de una tabla de datos:

Dato = H1. Range("AU8").Value      '6.08 sería el código

Set busco = H1.Range("AT55:AT374").Find(Dato, LookIn:=xlValues, LookAt:=xlWhole)

El asunto es que una vez localizado necesito copiar desde la ubicación del código 3 celdas hacia la derecha y 15 celdas hacia abajo para luego ser pegadas en la ubicación H1. Range("AU14").Value

Como lo hago!?

1 Respuesta

Respuesta
2

No está muy clara la petición... no comprendo si debe copiar 15 celdas o solo la que esté a 15 filas más abajo que la fila encontrada.

Dejo los 2 ejemplos:

Dato = H1.Range("AU8").Value       '6.08 sería el código
Set busco = H1.Range("AT55:AT374").Find(Dato, LookIn:=xlValues, LookAt:=xlWhole)
    'si lo encuentra copia la celda de col AW y 15 filas más abajo de la encontrada
    If Not busco Is Nothing Then
        filx = busco.Row + 15
        H1.Range("AW" & filx).Copy Destination:=H1.Range("AU14")
    End If
 'si fuese que necesitas copiar las 15 celdas sería así:
    If Not busco Is Nothing Then
        filx = busco.Row 
        H1.Range("AW" & filx & ":AW" & filx+15).Copy Destination:=H1.Range("AU14")
    End If

Elsa ya lo probé. Tienes toda la razón, me explico bien. Resulta que al buscar el código que necesito este se localiza en la celda "BN87" por lo cual debe copiar las celdas BO87 hasta la BQ102 ("BO87:BQ102") pero eso lo hago mediante la búsqueda, porque podría estar en cualquier lugar del rango de búsqueda. Al clopiar las 15 filas y 3 columnas las pego en la selección AU14:AW28. Estas contienen en la primer columna Nombre del Lugar en la segunda Área en Metros2 y la tercera Población del Área y el código que busco es el numero de Cantón registrado.

Ahorita solo me esta copiando datos de la columna AW y no son los correctos, ya que relacionó 1.03 con 6.03 en los códigos

Si, las referencias estaban y siguen estando algo confusas.

Porque tampoco ahora está clara la consulta.

Según tu código al inicio de la consulta, intentas realizar la búsqueda en el rango: H1. Range("AT55:AT374") por lo que de ninguna manera el código se hallará en celda BN...

Te dejo las instrucciones para la búsqueda según tus notas al inicio. Luego lo ajustas a tu criterio. Del rango que coloques para la búsqueda tomará la col siguiente y hasta 15 filas abajo.

Dato = H1.Range("AU8").Value       '6.08 sería el código
Set busco = H1.Range("AT55:AT374").Find(Dato, LookIn:=xlValues, LookAt:=xlWhole)
    'si lo encuentra, copia el rango de las 3 col siguientes y 15 filas
    If Not busco Is Nothing Then
        filx = busco.Row     'fila del dato encontrado
        colx = busco.Column + 1   'col siguiente del dato encontrado
        H1.Range(Cells(filx, colx), Cells(filx + 15, colx + 2)).Copy Destination:=H1.Range("AU14")
    End If

Si no podés adaptar el código a tu modelo enviame tu hoja para que coloque las instrucciones según esa muestra. Mis correos aparecen en la portada de mi sitio que dejo al pie.

Tienes toda la razón nuevamente, que pena! El rango es ("AU55:BU374"). Excelente tu respuesta!

Elsa que tal, solo quería hacerte una consulta referente a este tema. Como denoto la expresión para ejecutarla desde un módulo en otra hoja (ya que esta hoja permanece oculta). Esto por cuanto el código funciona perfectamente siempre y cuando esté ubicado en la hoja en cuestión.

H1.Range(Cells(filx, colx), Cells(filx + 15, colx + 2)).Copy Destination:=H1.Range("AU14")

Te dejo un ejemplo:

Sub Macro7()
'x Elsamatilde
'ejemplo de copia en hoja oculta llamada H1
Set H1 = Sheets("RESULTADOS")
filx = 12: colx = 2
Range(H1.Cells(filx, colx), H1.Cells(filx + 15, colx + 1)).Copy Destination:=H1.Range("H4")
 Application.CutCopyMode = False
End Sub

El detalle es que cada rango debe ser mencionado con el código de hoja.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas