Macro para buscar datos y trackearlos

Solo consultas sobre macros y código VBA Excel.
Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Responder
4lfaro
Miembro Nuevo
Miembro Nuevo
Mensajes: 3
Registrado: 11 Oct 2019 12:40

Macro para buscar datos y trackearlos

Mensaje por 4lfaro » 11 Oct 2019 13:12

Buenas a todos, tengo un problema ya que no soy experto en esto de excel.
mi necesidad es que tengo una base de datos la cual va a estar siendo llenada constantemente, con datos como. numero de parte, cantidad, consecutivo, área, secuencia, fecha y hora. lo que sucede es que me gustaria colocar un boton de bucsar en el cual se ingrese el numero de parte, y la fecha, y te de como resultado la informacion mas reciente de ese numero de parte, el ultimo movimiento que se realizo en ese dia. por lo que el texto diria algo asi como: el numero de parte"x" con consecutivo"x" se encuentra en el área "x" con la secuencia "x" con la cantidad "x" y su hora de movimiento fue "x".

- Un problema que tengo es que el hecho de que los numeros de parte se van a repetir, mas sin embargo lo que cambiara es la fecha y el área en el que estan, por lo que requiero que se filtre y solo te entregue informacion del mas reciente, del que se capturo en la ultima hora del dia.

Realicé una macro y no se si este bien , que sea lo que falte. Dejare el archivo y el codigo al final
De ante mano muchas gracias por leer y en caso de responder se los agradezco mucho, buen dia.
pruebas para escaneo.xlsm
Private Sub Buscar_Click()
Dim Part As String
Dim Fecha As String
Dim Area As Variant
Dim Secuence As Variant
Dim Quantity As Variant
Dim Celda As Range

Part = InputBox("Introduce el numero de parte del que deseas conocer el ?rea:")
If Part = "" Then Exit Sub
Area = 0
Secuence = 0
Quantity = 0

Fecha = InputBox("Introduce la fecha deseada")
If Fecha = "" Then Exit Sub
Area = 0
Secuence = 0
Quantity = 0

For Each Celda In Sheets("Datos").Range("$A$5:$A$12")
If Celda = Part Then
Area = Celda.Offset(0, 5)
Secuence = Celda.Offset(0, 4)
Quantity = Celda.Offset(0, 2)

End If
Next Celda
If Area <> 0 And Quantity <> 0 And Secuence <> 0 Then
MsgBox Part & " Se encuentra en " & Format(Area, "") & ". Con secuencia " & Format(Secuence, "") & ". Total: " & Format(Quantity, "")
Else
MsgBox "Esta parte no existe o no est? en mi base de datos?"
End If
End Sub
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.



Avatar de Usuario
Guillermo Hm
Miembro Frecuente
Miembro Frecuente
Mensajes: 176
Registrado: 19 Ago 2013 14:23
Ubicación: Colombia

Re: Macro para buscar datos y trackearlos

Mensaje por Guillermo Hm » 11 Oct 2019 13:51

Saludos...

En tu macro adicione una condicion en la cual valida la fecha y tambien la hora...

¿Es lo que requieres?
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.



4lfaro
Miembro Nuevo
Miembro Nuevo
Mensajes: 3
Registrado: 11 Oct 2019 12:40

Re: Macro para buscar datos y trackearlos

Mensaje por 4lfaro » 11 Oct 2019 14:03

Buenas Guillermo, si de hecho creo que es mejor asi, aunque ya descargue el archivo nuevo, y me da error en esta parte del codigo, la que esta subrayada. el error dice(se ha prodcudio el error 1004 en tiempo de ejecución: Error definido por la aplicación o el objeto)

Next Celda

Area = Cells(F, 6).Value[/u]
Secuence = Cells(F, 5).Value
Quantity = Cells(F, 3).Value

If Area <> 0 And Quantity <> 0 And Secuence <> 0 Then
MsgBox Part & " Se encuentra en " & Format(Area, "") & ". Con secuencia " & Format(Secuence, "") & ". Total: " & Format(Quantity, "")
Else
MsgBox "Esta parte no existe o no est? en mi base de datos?"
End If
End Sub

No se cual sea el error



Avatar de Usuario
Guillermo Hm
Miembro Frecuente
Miembro Frecuente
Mensajes: 176
Registrado: 19 Ago 2013 14:23
Ubicación: Colombia

Re: Macro para buscar datos y trackearlos

Mensaje por Guillermo Hm » 11 Oct 2019 14:16

No me da ningun tipo de error,:

El codigo de la hoja si es este ??



Private Sub Buscar_Click()
Dim Part As String
Dim Fecha As String
Dim Area As Variant
Dim Secuence As Variant
Dim Quantity As Variant
Dim Celda As Range
Dim MF As Date

Part = InputBox("Introduce el numero de parte del que deseas conocer el área:")
If Part = "" Then Exit Sub
Area = 0
Secuence = 0
Quantity = 0

Fecha = InputBox("Introduce la fecha deseada")
If Fecha = "" Then Exit Sub
Area = 0
Secuence = 0
Quantity = 0

For Each Celda In Sheets("Datos").Range("$A$5:$A$20")

If Celda = Part And Celda.Offset(0, 6).Value = Fecha Then

If Celda.Offset(0, 7).Value > MFecha Then
MFecha = Celda.Offset(0, 7).Value
F = Celda.Row
Else
F = F
End If

End If

Next Celda

Area = Cells(F, 6).Value
Secuence = Cells(F, 5).Value
Quantity = Cells(F, 3).Value

If Area <> 0 And Quantity <> 0 And Secuence <> 0 Then
MsgBox Part & " Se encuentra en " & Format(Area, "") & ". Con secuencia " & Format(Secuence, "") & ". Total: " & Format(Quantity, "")
Else
MsgBox "Esta parte no existe o no está en mi base de datos…"
End If
End Sub



4lfaro
Miembro Nuevo
Miembro Nuevo
Mensajes: 3
Registrado: 11 Oct 2019 12:40

Re: Macro para buscar datos y trackearlos

Mensaje por 4lfaro » 11 Oct 2019 14:22

Guillermo Hm
Ya encontre el error o almenos el porque a mi me lo daba, y si se resolvio el problema, me arroja el resultado mas reciente. Te agradezco, dejare aqui el codigo final que utilizare, me parece que a mi me arrojaba error por las partes que estaran subrayadas.

Private Sub Buscar_Click()
Dim Part As String
Dim Fecha As String
Dim Area As Variant
Dim Secuence As Variant
Dim Quantity As Variant
Dim Celda As Range
Dim MF As Date

Part = InputBox("Introduce el numero de parte del que deseas conocer el ?rea:")
If Part = "" Then Exit Sub
Area = 0
Secuence = 0
Quantity = 0

Fecha = InputBox("Introduce la fecha deseada")
If Fecha = "" Then Exit Sub
Area = 0
Secuence = 0
Quantity = 0

For Each Celda In Sheets("Datos").Range("$A$5:$A$20")

If Celda = Part And Celda.Offset(0, 6).Value = Fecha Then

If Celda.Offset(0, 7).Value > MF Then
MF = Celda.Offset(0, 7).Value
F = Celda.Row
Else
F = F
End If

End If

Next Celda

Area = Cells(F, 6).Value
Secuence = Cells(F, 5).Value
Quantity = Cells(F, 3).Value

If Area <> 0 And Quantity <> 0 And Secuence <> 0 Then
MsgBox Part & " Se encuentra en " & Format(Area, "") & ". Con secuencia " & Format(Secuence, "") & ". Total: " & Format(Quantity, "")
Else
MsgBox "Esta parte no existe o no est? en mi base de datos?"
End If
End Sub

De alguna manera el MFecha no me lo agarraba, asi que borre y lo coloque como MF, y asi resulto bien el codigo.

No me queda mas que agradecerte Guillermo Hm por responderme y estar al pendiente del Foro. Reitero Muchas gracias!! :mrgreen:



Responder