crisoliveira075 Posted January 28, 2024 at 06:19 PM Report #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.
M6 Posted January 29, 2024 at 11:19 AM Report #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."
crisoliveira075 Posted January 29, 2024 at 01:03 PM Author Report #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?
Solution Cerzedelo Posted January 29, 2024 at 01:50 PM Solution Report #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.
crisoliveira075 Posted January 31, 2024 at 01:15 PM Author Report #632691 Posted January 31, 2024 at 01:15 PM Obrigado pelas respostas, ajudou bastante.
crisoliveira075 Posted January 31, 2024 at 05:49 PM Author Report #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.
Cerzedelo Posted February 2, 2024 at 01:48 PM Report #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
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