crisoliveira075 Posted January 28, 2024 at 06:19 PM Report Share #632675 Posted January 28, 2024 at 06:19 PM Boa tarde É possível fazer um código de barras que quando fosse lido pelo leitor de código de barras desse para marcar as horas de entrada e saída dos colaboradores? E esse mesmo leitor de código de barras continuar a ler produtos? Obrigada pela atenção. Link to comment Share on other sites More sharing options...
M6 Posted January 29, 2024 at 11:19 AM Report Share #632677 Posted January 29, 2024 at 11:19 AM 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 More sharing options...
crisoliveira075 Posted January 29, 2024 at 01:03 PM Author Report Share #632680 Posted January 29, 2024 at 01:03 PM 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? Link to comment Share on other sites More sharing options...
Solution Cerzedelo Posted January 29, 2024 at 01:50 PM Solution Report Share #632681 Posted January 29, 2024 at 01:50 PM 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 More sharing options...
crisoliveira075 Posted January 31, 2024 at 01:15 PM Author Report Share #632691 Posted January 31, 2024 at 01:15 PM Obrigado pelas respostas, ajudou bastante. Link to comment Share on other sites More sharing options...
crisoliveira075 Posted January 31, 2024 at 05:49 PM Author Report Share #632692 Posted January 31, 2024 at 05:49 PM 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 More sharing options...
Cerzedelo Posted February 2, 2024 at 01:48 PM Report Share #632696 Posted February 2, 2024 at 01:48 PM 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. 1 Report Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now