Macro en Excel para Buscar un Valor y Modificar Información

Necesito una Macro que actualice la información suministrada; es decir, tengo un Libro de Excel con dos Hojas, La Hoja 1 le llamo Actividad, la Hoja 2 le llamo BD-Clientes.

En la Celda "B2" de la Hoja Actividad, Ingreso el Número ID del Cliente, en la Celda "B3" el Nombre del Cliente, Celda "B4" Dirección del Cliente, Etc; La Base de Datos Clientes es bastante extensa, pero solo tiene el Número ID del Cliente y Nombre; cuando escribo o selecciono de la Lista el Número ID en la Hoja Actividades, enseguida me muestra el Nombre del Cliente y la Idea es que cuando Yo escriba la Dirección, Teléfono, Celular, Email y ejecute la Macro, ésta información Busque el Cliente en la Hoja BD-Clientes y le Copie toda la Información escrita, al lado del Nombre del Cliente sucesivamente.

Se que esto es posible, pues he visto la manera cómo ustedes en su experiencia enseñan a hacer cosas más difíciles, estoy aprendiendo Macros VBA, sin embargo esto es muy extenso para Mi en este momento.

Agradezco su Colaboración en resolver este pequeño inconveniente.

Cordial saludo.

JALTOM.

1 respuesta

Respuesta
2

Entrá al Editor de macros, insertá un módulo y allí copiá esta macro. Luego podés colocar un botón en tu hoja Actividad o ejecutarla con atajo de teclado (estos temas los tengo explicados en las páginas de la sección Macros de mi sitio.)

Sub paseDatos()
'x Elsamatilde
Dim hd, busco
'guarda datos de hoja activa a BD
Set hd = Sheets("BD_Cliente")    'defino la hoja para escribir menos luego
Set busco = Sheets("BD_Cliente").Range("A:A").Find([B2], LookIn:=xlValues, lookat:=xlWhole)
'si lo encuentra mueve los datos a la fila
If busco Is Nothing Then
    MsgBox "registro no encontrado"
Else
    hd.Range("C" & busco.Row) = [B4]
    hd.Range("D" & busco.Row) = [B5]
    hd.Range("E" & busco.Row) = [B6]
    hd.Range("F" & busco.Row) = [B7]
    'el resto de los campos
End If
End Sub

¡Gracias 
Elsa Matilde! 

Muchísimas Gracias, Excelente aporte. Ya está funcionando la Macro sin ningún inconveniente.

Bendiciones para Usted.

Cordial saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas