Macro que recorrer una lista manualmente, al encontrar el registro buscado copiarlo a otro hoja

Quiero escribir una macro para realizar recorrer una lista manualmente, al encontrar el registro deseado, copiar algunas celdas de ese registro a celdas específicas (no contiguas) en otra hoja del mismo libro.

1 Respuesta

Respuesta
3

Puedes especificar lo siguiente:

1. ¿En qué columna tienes tu lista?

2. ¿Cuáles celdas vas a copiar?

3. ¿En cuáles celdas se van a poner?

4. ¿Nombre de la hoja donde están los datos?

5. ¿Nombre de la otra hoja?

6. ¿Cuáles son los criterios para "encontrar el registro deseado"?

Gracias por responder, te mando las respuestas que me solicitas:
1. En qué columna tienes tu lista?
La lista se encuentra en la Hoja1 en el rango A5:H120

2.Cuáles celdas vas a copiar?
Si elijo por ej. el registro de la fila 10 quiero copiar las celdas A10, C10, E10 y H10.

3. En cuáles celdas se van a poner?
Se pondrán en E13, F15,G16 y L16 respectivamente

4.Nombre de la hoja donde están los datos?
Hoja1
5.Nombre de la otra hoja?
Hoja2

6.Cuáles son los criterios para "encontrar el registro deseado"?
El nombre completo de la persona que se encuentra columna A de la hoja1

Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: lista
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub lista()
'por.dam
nombre = InputBox("Escribe el nombre de la persona: ", "BUSCA NOMBRE")
If nombre <> "" Then
Set dato = Range("A:A").Find(nombre, MatchCase:=True)
If Not dato Is Nothing Then
    Sheets("Hoja2").Range("E13") = Range("A" & dato.Row)
    Sheets("Hoja2").Range("F15") = Range("C" & dato.Row)
    Sheets("Hoja2").Range("G16") = Range("E" & dato.Row)
    Sheets("Hoja2").Range("L16") = Range("H" & dato.Row)
    MsgBox "Se copió el nombre: " & nombre, vbInformation, "BUSCA NOMBRE"
Else
    MsgBox "No se encuentra el nombre: " & nombre, vbInformation, "BUSCA NOMBRE"
End If
End If
End Sub

Saludos.Dam
Si es lo que necesitas.

Te agradezco mucho, con un pequeño cambio en el rango funcionó a la perfección, disculpa la molestia pero quisiera pedirte otra favor: En la búsqueda me gustaría agregarle un cuadro de confirmación en el caso de haber personas con el mismo nombre, desde ya recibe mis sinceros agradecimientos.

Ese criterio de búsqueda no estaba contemplado, con gusto te sigo apoyando, y ya que la macro funcionó bien, por favor, podrías finalizar esta pregunta y crear una nueva pregunta con el cambio solicitado, y ahí me indicas con detalle, que hacer cuando haya más de un registro con el mismo nombre, ¿cuál de todos los nombres debo copiar?

Saludos. Dam

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas