Macros para búsqueda de DNI y copiarlo en otra otra toda la fila

Estimados

Aquí molestándolo con esta pequeña ayuda, tengo una hoja de excel donde la hoja1 tiene campos de DNI, Nombre, Apellido, Status, Servicio, etc. Estoy necesitando con un formulario buscar el nro de DNI o Nro de documento en la hoja1, al encontrarse debe revisar el campo status (alta o baja), de encontrar alta copiar toda la fila en la hoja2 en el último registro y mostrar como resultado REGISTRADO, de encontrar baja indicar en el formulario el estado de BAJA y de no encontrarse el DNI mostrar NO HABIDO.

Muy agradecido...

1 Respuesta

Respuesta
1

Aclara por favor algunos detalles:

¿El formulario es un Userform?

¿En qué columna se encuentra el dato 'status?

¿Dónde se muestra el resultado (REGISTRADO, BAJA, NO HABIDO)?

¿Con qué versión Excel estarás trabajando?

Quedo a la espera de tus aclaraciones.

Estimada Elsa
de antemano agradezco tu gentil atención, aquí te alcanzo las aclaraciones,
1. Me gustaría que se muestre los resultados en el mismo formulario o Userform

2. El campo DNI y status pueden ser las primeras columnas.

3. la versión de excel a trabajar es Excel 2010 en español.

4. El status (baja y alta) debe grabarse en la hoja2 si o si.

Nuevo (si no es mucha molestia)

5. Será posible darle seguridad para que la información o el mantenimiento solo pueda generarse por el administrador del documento, y todo lo que se registre nadie puede modificarlo.

6. Y que exista un botón que permita enviarlo por correo predefinido en algún campo del documento.

Estoy muy interesado en aprender las macros de excel, veo que se abren muchas posibilidades muy interesantes, si tienes algo que me ayude en un futuro muy cercano para aprender sería genial.

Estamos en contacto.

Saludos

Erich Ramirez

Te dejo la rutina para el control donde ingresarás el DNI, en mi ejemplo se llama TextBox1 ... ajustá al nombre del tuyo.

Estoy considerando que el campo Status se encuentra en la col D (siguiendo el orden de tu consulta original ya que el pto 2 de tu respuesta no me pareció precisa).

PD) Por una cuestión de orden y de respeto a los otros usuarios no respondemos más de una consulta x vez x usuario... así podemos acercar alguna solución a todos. Cuando finalices ésta podés dejar la nueva en el tablón, si te parece indicando que es para mí.

Y con respecto al estudio de Macros te invito a descargar la demo de mi manual Programación VBA, allí encontrarás algunos capítulos que podrán ayudarte para iniciar. Además el índice completo de temas.

La rutina:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'x Elsamatilde
'si el campo queda vacío no se ejecuta el proceso
If TextBox1 = "" Then Exit Sub
'busca el DNI en Hoja1 y devuelve el Status en col D
Set busco = Sheets("Hoja1").Range("A:A").Find(Val(TextBox1), LookIn:=xlValues, lookat:=xlWhole)
'si no lo encuentra envía mensaje
If busco Is Nothing Then
 MsgBox "NO HALLADO"
Else
 If busco.Offset(0, 3) = "BAJA" Then
 MsgBox "BAJA"
 ElseIf busco.Offset(0, 3) = "ALTA" Then
 'copia la fila en hoja2
 finfila = Sheets("Hoja2").Range("A65536").End(xlUp).Row + 1
 busco.EntireRow.Copy Destination:=Sheets("Hoja2").Range("A" & finfila)
 MsgBox "REGISTRADO"
 End If
End If
Set busco = Nothing
End Sub

Elsa

Buenas tardes, correcto con respecto a los nuevos puntos, lo veré en otra instancia. gracias.
Con respecto al código brindado Funciona bastante bien pero solo con un par de observaciones:
1. Cuando uno escribe el código al colocar el primer carácter inicia la búsqueda, se que no lo indiqué pero lo aclaro ahora, el Nro de documento o DNI es numérico de 8 caracteres máximo.
2. que cuando complete los 8 caracteres en el cuadro de texto haga la búsqueda y borre el contenido del cuadro de texto automáticamente.

Con esto cerramos, gracias.

Erich

No señor, según 'mi' código recién se inicia la búsqueda cuando finalizas el ingreso de todos los caracteres y das enter en el textbox... seguramente este será el primer textbox y luego tendrás otros para mostrar otras cosas.

Sino enviame tu libro para que vea dónde y cómo copiaste la macro.

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas