• 👏 Bienvenido a nuestra comunidad Excel

    ¿Todavía no estás registrado? 😲

    Registrate gratis aquí y podrás:

    💪 Hacer preguntas a los expertos
    ⬇️ Descargar ejemplos y plantillas
    🏅 
    Acceder a contenidos premium

Macro para buscar datos y trackearlos

4lfaro

New member
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.


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
 

Adjuntos

4lfaro

New member
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
 
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

New member
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:
 
Arriba