Continuamos con el código que debe tener el Botón Buscar, para ello crearemos una macro.
Antes de nada como no tenemos ningún módulo donde irán todas nuestras macros, lo primero que debemos ir a la pestaña Programador, y pulsaremos en el botón que se encuentra más a la izquierda, que pone Visual Basic, posteriormente en la ventana que nos sale pulsaremos con el botón derecho de nuestro ratón sobre nuestro archivo, e insertaremos un un módulo.
Ahora vamos a cambiarle el nombre y pondremos Mimodulo, cada uno puede ponerle el nombre que quiera.
Continuaremos en MiModulo e insertaremos una macro que llamaremos Buscar. Esto lo hacemos escribiendo en la parte de la derecha en blanco
Sub Buscar(), al pulsar los paréntesis y posteriormente el botón Intro nos saldrá en la parte de abajo end sub, quedando de la forma de la próxima fotografía.
Código del Botón Buscar:
Sub Buscar()
With BBDD
'recuperando codigo articulo
'variable que almacena el codigo del articulo
Dim Id As Long
'obtenemos lo introducido el formulario principal, el codigo
Id = Formulario.Cells(3, 3)
'Vamos a buscar en la hoja inventario
Dim fila, filamax As Long
'calculamos la fila máxima con datos de la hoja2
filamax = .UsedRange.Rows.Count
'continuamos con un bucle
For fila = 2 To filamax
If (Application.WorksheetFunction.CountIf(.Columns(1), Id)) >= 1 Then
'si encuentra el valor del codigo
'funcion BuscarV
Formulario.Cells(5, 3) = Application.WorksheetFunction.VLookup(Id, .Range("A:J"), 2, 0)
Formulario.Cells(7, 3) = Application.WorksheetFunction.VLookup(Id, .Range("A:J"), 5, 0)
Formulario.Cells(9, 3) = Application.WorksheetFunction.VLookup(Id, .Range("A:J"), 6, 0)
Formulario.Cells(11, 3) = Application.WorksheetFunction.VLookup(Id, .Range("A:J"), 7, 0)
Formulario.Cells(13, 3) = Application.WorksheetFunction.VLookup(Id, .Range("A:J"), 8, 0)
Formulario.Cells(15, 3) = Application.WorksheetFunction.VLookup(Id, .Range("A:J"), 9, 0)
Formulario.Cells(17, 3) = Application.WorksheetFunction.VLookup(Id, .Range("A:J"), 10, 0)
Else
MsgBox "El campo Código esta vacio o un número no encontrado, introduce el Código a buscar"
Formulario.Cells(5, 3) = ""
Formulario.Cells(7, 3) = ""
Formulario.Cells(9, 3) = ""
Formulario.Cells(11, 3) = ""
Formulario.Cells(13, 3) = ""
Formulario.Cells(15, 3) = ""
Formulario.Cells(17, 3) = ""
Exit Sub
End If
Next fila
'posicionar en celda codigo
Formulario.Cells(3, 3).Select
End With
End Sub
Asignaremos esta macro a nuestro botón pulsando con el ratón derecho en nuestro botón
Pulsaremos sobre Asignar Macro y nos saldrá la siguiente pantalla
Aquí elegiremos nuestra macro Buscar y pulsaremos en el botón Aceptar.
Este código lo que hace es que introducimos en la celda (3,3) de la hoja formulario, que es el Id del formulario, un número y nos obtiene mediante la función BuscarV el resto de datos introducidos en la misma fila.
Esta linea filamax = .UsedRange.Rows.Count nos calcula la última fila con datos, por eso el bucle empieza a buscar en la fila 2 hasta la última línea y si encuentra el datos nos lo muestra en el formulario. La búsqueda es por el Id.
En el caso de que no encuentre el Id nos dará un mensaje de que no has introducido un número o el mismo no existe, y limpiará todos los campos del formulario, menos el Id introducido.
En el caso de que os salda un número en la parte de la fecha, es por el motivo de que dicho campo debe tener el formato fecha.
No hay comentarios:
Publicar un comentario
Gracias por participar en esta página.