Jump to content

Como associar um código de barras a um colaborador de empresa


crisoliveira075
Go to solution Solved by Cerzedelo,

Recommended Posts

Sim é possível.

Os leitores de códigos de barras basicamente simulam um teclado.

Podem ser programados - depende obviamente do leitor - para ler vários formatos de códigos de barras.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

  • Solution
Em 29/01/2024 às 13:03, crisoliveira075 disse:

E como posso programar o código de barras no excel? é preciso um interface(Visual Basic ou outro) para comunicar o código de barras para o excel?

Entenda que o leitor do código de barras simula um teclado e que o código de barras não é nada mais nada menos que uma série de números, pelo que você selecionar uma célula do excel e apontar o leitor para um código de barras, vê surgir um conjunto de números nessa célula.

Agora para o que pretende, registar o horário do funcionário, em excel, já terá no mínimo de programar uma macro ou utilizar VBA para efectuar esse procedimento. Se for a versão mais recente do excel, já poderá utilizar python.

Se regista os produtos nalguma plataforma de facturação, ou ERP, e pretender registar o horário dos funcionários em excel, terá de alterar entre os programas sempre que pretende utilizar o leitor do código de barras para ler o código dos produtos ou ler o código do funcionário e registar a hora de entrada e a de saída.

Link to comment
Share on other sites

Eu estou ainda a tentar fazer esta parte estou com uma dúvida e gostava de saber se conseguiam ajudar, estou a fazer no VBA do excel

Private Sub CommandButton1_Click()
    
    Dim linhaDisponivel As Long
    Dim celulaA As String
    Dim celulaC As String
    Dim celulaD As String
    Dim celulaE As String
    Dim celulaF As String
    Dim celulaG As String
    
    linhaDisponivel = Sheets("Horas").Range("Q1").Value + 2
    
    celulaA = "A" & linhaDisponivel
    Sheets("Horas").Range(celulaA).Value = cxId
    
    celulaC = "C" & linhaDisponivel
    Sheets("Horas").Range(celulaC).Value = Date
    
    celulaD = "D" & linhaDisponivel
    Sheets("Horas").Range(celulaD).Value = Time
    
    'If Sheets("Horas").Range(celulaA).Value = cxId And Sheets("Horas").Range(celulaC).Value = Date And Sheets("Horas").Range(celulaD).Value <> Time Then
    '    celulaE = "E" & linhaDisponivel
    '    Sheets("Horas").Range(celulaE).Value = Time
    'End If
    
    
    'If IsEmpty(Sheets("Horas").Range(celulaD).Value) = False Then
    '    If Sheets("Horas").Range(celulaD).Value <> Time Then
    '        celulaE = "E" & linhaDisponivel
    '        Sheets("Horas").Range(celulaE).Value = Time
    '    End If
    'End If
    
    'If IsEmpty(Sheets("Horas").Range(celulaE).Value) = False Then
    '    If Sheets("Horas").Range(celulaE).Value <> Time Then
    '        celulaF = "F" & linhaDisponivel
    '        Sheets("Horas").Range(celulaF).Value = Time
    '    End If
    'End If
    
    'If IsEmpty(Sheets("Horas").Range(celulaF).Value) = False Then
    '    If Sheets("Horas").Range(celulaF).Value <> Time Then
    '        celulaG = "G" & linhaDisponivel
    '        Sheets("Horas").Range(celulaG).Value = Time
    '    End If
    'End If
    
    cxId = ""
    cxId.SetFocus
    

End Sub


https://postimg.cc/ZWxc7GLm->imagem do excel, não consegui inserir por via normal;
https://postimg.cc/fk1BJjbG -> Layout básico só para testar

O que pretendia era, se ao fazer a marcação de presença for o mesmo id(código de barras), dia mas na hora diferente, marcava como hora de saída de manhã, depois ao marcar outra vez seria hora de entrada de tarde e depois hora de saída de tarde.
É possível fazer isto?? Ao marcar um id diferente no mesmo dia, como é que um id anterior vai fazer para marcar a saída ou entrada de tarde?

Não sei se me expliquei bem, mas qualquer coisa eu tento explicar melhor.
Obrigado desde já pela ajuda.

Link to comment
Share on other sites

Em 31/01/2024 às 17:49, crisoliveira075 disse:

Eu estou ainda a tentar fazer esta parte estou com uma dúvida e gostava de saber se conseguiam ajudar, estou a fazer no VBA do excel

Private Sub CommandButton1_Click()
    
    Dim linhaDisponivel As Long
    Dim celulaA As String
    Dim celulaC As String
    Dim celulaD As String
    Dim celulaE As String
    Dim celulaF As String
    Dim celulaG As String
    
    linhaDisponivel = Sheets("Horas").Range("Q1").Value + 2
    
    celulaA = "A" & linhaDisponivel
    Sheets("Horas").Range(celulaA).Value = cxId
    
    celulaC = "C" & linhaDisponivel
    Sheets("Horas").Range(celulaC).Value = Date
    
    celulaD = "D" & linhaDisponivel
    Sheets("Horas").Range(celulaD).Value = Time
    
    'If Sheets("Horas").Range(celulaA).Value = cxId And Sheets("Horas").Range(celulaC).Value = Date And Sheets("Horas").Range(celulaD).Value <> Time Then
    '    celulaE = "E" & linhaDisponivel
    '    Sheets("Horas").Range(celulaE).Value = Time
    'End If
    
    
    'If IsEmpty(Sheets("Horas").Range(celulaD).Value) = False Then
    '    If Sheets("Horas").Range(celulaD).Value <> Time Then
    '        celulaE = "E" & linhaDisponivel
    '        Sheets("Horas").Range(celulaE).Value = Time
    '    End If
    'End If
    
    'If IsEmpty(Sheets("Horas").Range(celulaE).Value) = False Then
    '    If Sheets("Horas").Range(celulaE).Value <> Time Then
    '        celulaF = "F" & linhaDisponivel
    '        Sheets("Horas").Range(celulaF).Value = Time
    '    End If
    'End If
    
    'If IsEmpty(Sheets("Horas").Range(celulaF).Value) = False Then
    '    If Sheets("Horas").Range(celulaF).Value <> Time Then
    '        celulaG = "G" & linhaDisponivel
    '        Sheets("Horas").Range(celulaG).Value = Time
    '    End If
    'End If
    
    cxId = ""
    cxId.SetFocus
    

End Sub


https://postimg.cc/ZWxc7GLm->imagem do excel, não consegui inserir por via normal;
https://postimg.cc/fk1BJjbG -> Layout básico só para testar

O que pretendia era, se ao fazer a marcação de presença for o mesmo id(código de barras), dia mas na hora diferente, marcava como hora de saída de manhã, depois ao marcar outra vez seria hora de entrada de tarde e depois hora de saída de tarde.
É possível fazer isto?? Ao marcar um id diferente no mesmo dia, como é que um id anterior vai fazer para marcar a saída ou entrada de tarde?

Não sei se me expliquei bem, mas qualquer coisa eu tento explicar melhor.
Obrigado desde já pela ajuda.

Pretende consoante a hora inserida, verificar, se é entrada da manha ou saída de manha. Se é esta a condição terá de fazer uso da condição IF...THEN...ELSE, para verificar se a hora é anterior por exemplo às 12h, então é entrada da manhã, se por exemplo a marcação é posterior às 12h00 é saída da manhã e por aí adiante. Também pode usar o SELECT CASE...END SELECT.

Se pretende utilizar o excel, como uma base de dados, só para registar o id do funcionário e a hora a que faz a marcação, creio que não se torna necessário tudo isso. Basta ir registando linha a linha o id do funcionário e a respectiva hora da marcação. Depois de pegar nesses dados, pode trabalha-los de forma a ordená-los pelo id do funcionário, de forma a saber todos os horários em que o trabalhador passou o código de barras, por dia de trabalho, sabendo naquele dia quais os trabalhadores que marcaram, etc..

Mas, tenha a noção de que o excel não é o software mais indicado para criar um relógio de ponto. Para isso, pode utilizar o VB.net, semelhante ao VBA e criar um programa de raiz que regista os dados numa base de dados. Neste link tem um exemplo que como fazer um programa desse tipo, https://www.youtube.com/watch?v=EubHO-C1o_0&t=0s.

No exemplo eles utilizam o myssql database, mas se forem poucos funcionários, pode utilizar o sqlite que será mais fácil. Ao utilizar o VB.net, normalmente rodará em  sistema windows.

Atente que no link que lhe deixei, são váŕios capítulos para a construção do programa.

 

  • Vote 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.