XL 2019 question sur excel

NicolasKH

XLDnaute Junior
bonjour tout le mode, j'ai une question a vous posez. je voudrais savoir si avec excel il etait possible de faire un classeur anuelle de pointage des heures.
je vous explique,

j'ai une base de donnees de personnel avec leurs matricule qui est un codebarre
je voudrai que quand il arrive ou par en pause ou fin de journne, ils viennent scanner leurs code et que automatiquement excel reconnais les information de l'employe et pointe sont heure de pointage dans le tableau excel et le lendemain pareil.

je ne sais pas si je m'explique bien ou pas

cordialement nicolas
 

R@chid

XLDnaute Barbatruc
Bonjour,
Pourquoi faire simple quand on peut faire compliqué ??
Le pointage avec le code barre pourrait te créer de problèmes, le plus fiable c'est avec l'empreinte.
Autre chose, je conseille des pointeuses qui ne sont pas chères, et vous pouvez toutefois récupérer les informations sous forme de base de données vers Excel.

Cordialement
 

NicolasKH

XLDnaute Junior
Bonjour,
Pourquoi faire simple quand on peut faire compliqué ??
Le pointage avec le code barre pourrait te créer de problèmes, le plus fiable c'est avec l'empreinte.
Autre chose, je conseille des pointeuses qui ne sont pas chères, et vous pouvez toutefois récupérer les informations sous forme de base de données vers Excel.

Cordialement
bonjour et merci pour votre reponse tres rapide,
ici au cambodge il y a rien comme poiteuse et c'est pour cela que je voulais le faire avec un lecteur de code barre.

cordialement
 

NicolasKH

XLDnaute Junior
Bonjour,
Pourquoi faire simple quand on peut faire compliqué ??
Le pointage avec le code barre pourrait te créer de problèmes, le plus fiable c'est avec l'empreinte.
Autre chose, je conseille des pointeuses qui ne sont pas chères, et vous pouvez toutefois récupérer les informations sous forme de base de données vers Excel.

Cordialement
bonjour et merci pour votre reponse tres rapide,
ici au cambodge il y a rien comme poiteuse et c'est pour cela que je voulais le faire avec un lecteur de code barre.

cordialement
 

chaelie2015

XLDnaute Accro
Bonjour

Oui, c'est possible de créer un classeur annuel de pointage des heures avec Excel en utilisant des formules et des macros pour automatiser certaines tâches. Vous pouvez utiliser le code barre pour identifier les employés et enregistrer les horaires d'arrivée et de départ. Vous pouvez également utiliser des formules pour calculer le temps total travaillé par chaque employé et produire des rapports en fonction de vos besoins.

Voici un exemple de code VBA a tester (si j'ai bien compris )

Sub Pointage_Heures() 'Créer une macro pour enregistrer les heures d'arrivée et de départ

'Définir les variables Dim CodeBarre As String Dim Nom As String Dim HeureArrivee As Date Dim HeureDepart As Date

'Demander d'entrer le code barre CodeBarre = InputBox("Entrez le code barre de l'employé")

'Rechercher le nom de l'employé à partir de son code barre Nom = Application.WorksheetFunction.VLookup(CodeBarre, Range("A2:B100"), 2, False)

'Demander d'entrer l'heure d'arrivée ou de départ HeureArrivee = InputBox("Entrez l'heure d'arrivée ou de départ")

'Rechercher la dernière cellule non vide dans la colonne pour la personne spécifique Dim LastRow As Long LastRow = Cells(Rows.Count, "C").End(xlUp).Row

'Enregistrer l'heure d'arrivée ou de départ dans la colonne appropriée If TimeValue(HeureArrivee) < TimeValue("12:00:00 PM") Then Cells(LastRow + 1, "C").Value = HeureArrivee Cells(LastRow + 1, "A").Valeur = Nom Else Cells(LastRow, "D").Valeur = HeureArrivee Cells(LastRow, "A").Valeur = Nom End If

End sub
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Bonjour,

j'ai copier ton exemple de code mais je ,n'arrive pas a le faire fonctionner
C'est normal, il y a quelques erreurs. ;)

D'abord, tout est en commentaire :
chaelie2015 à dit:
VB:
Sub Pointage_Heures() 'Créer une macro pour enregistrer les heures d'arrivée et de départ

'Définir les variables Dim CodeBarre As String Dim Nom As String Dim HeureArrivee As Date Dim HeureDepart As Date

'Demander d'entrer le code barre CodeBarre = InputBox("Entrez le code barre de l'employé")

'Rechercher le nom de l'employé à partir de son code barre Nom = Application.WorksheetFunction.VLookup(CodeBarre, Range("A2:B100"), 2, False)

'Demander d'entrer l'heure d'arrivée ou de départ HeureArrivee = InputBox("Entrez l'heure d'arrivée ou de départ")

'Rechercher la dernière cellule non vide dans la colonne pour la personne spécifique Dim LastRow As Long LastRow = Cells(Rows.Count, "C").End(xlUp).Row

'Enregistrer l'heure d'arrivée ou de départ dans la colonne appropriée If TimeValue(HeureArrivee) < TimeValue("12:00:00 PM") Then Cells(LastRow + 1, "C").Value = HeureArrivee Cells(LastRow + 1, "A").Valeur = Nom Else Cells(LastRow, "D").Valeur = HeureArrivee Cells(LastRow, "A").Valeur = Nom End If

End sub

Ensuite, il faut remplacer les "Valeur" par "Value".

Et pour que ça fonctionne, je pense qu'il faut que la colonne A soit au format texte.

Attention, tel quel, ça écrase le tableau des codes-barres. ;)


Le code corrigé ("Valeur" remplacé par "Value") et mis en forme (sauts de ligne et indentation) donne ceci :
VB:
Sub Pointage_Heures()
'Créer une macro pour enregistrer les heures d'arrivée et de départ

'Définir les variables
Dim CodeBarre As String
Dim Nom As String
Dim HeureArrivee As Date
Dim HeureDepart As Date

'Demander d'entrer le code barre
CodeBarre = InputBox("Entrez le code barre de l'employé")

'Rechercher le nom de l'employé à partir de son code barre
Nom = Application.WorksheetFunction.VLookup(CodeBarre, Range("A2:B6"), 2, False)

'Demander d'entrer l'heure d'arrivée ou de départ
HeureArrivee = InputBox("Entrez l'heure d'arrivée ou de départ")

'Rechercher la dernière cellule non vide dans la colonne pour la personne spécifique
Dim LastRow As Long
LastRow = Cells(Rows.Count, "C").End(xlUp).Row

'Enregistrer l'heure d'arrivée ou de départ dans la colonne appropriée
If TimeValue(HeureArrivee) < TimeValue("12:00:00 PM") Then
    Cells(LastRow + 1, "C").Value = HeureArrivee
    Cells(LastRow + 1, "A").Value = Nom
Else
    Cells(LastRow, "D").Value = HeureArrivee
    Cells(LastRow, "A").Value = Nom
End If

End Sub

Est-ce que ça marche mieux ainsi chez toi ?
 

NicolasKH

XLDnaute Junior
Bonjour,


C'est normal, il y a quelques erreurs. ;)

D'abord, tout est en commentaire :


Ensuite, il faut remplacer les "Valeur" par "Value".

Et pour que ça fonctionne, je pense qu'il faut que la colonne A soit au format texte.

Le code n'est qu'un exemple, donc ça écrit l'horaire saisi un peu n'importe où. ;)


Le code corrigé ("Valeur" remplacé par "Value") et mis en forme (sauts de ligne et indentation) donne ceci :
VB:
Sub Pointage_Heures()
'Créer une macro pour enregistrer les heures d'arrivée et de départ

'Définir les variables
Dim CodeBarre As String
Dim Nom As String
Dim HeureArrivee As Date
Dim HeureDepart As Date

'Demander d'entrer le code barre
CodeBarre = InputBox("Entrez le code barre de l'employé")

'Rechercher le nom de l'employé à partir de son code barre
Nom = Application.WorksheetFunction.VLookup(CodeBarre, Range("A2:B6"), 2, False)

'Demander d'entrer l'heure d'arrivée ou de départ
HeureArrivee = InputBox("Entrez l'heure d'arrivée ou de départ")

'Rechercher la dernière cellule non vide dans la colonne pour la personne spécifique
Dim LastRow As Long
LastRow = Cells(Rows.Count, "C").End(xlUp).Row

'Enregistrer l'heure d'arrivée ou de départ dans la colonne appropriée
If TimeValue(HeureArrivee) < TimeValue("12:00:00 PM") Then
    Cells(LastRow + 1, "C").Value = HeureArrivee
    Cells(LastRow + 1, "A").Value = Nom
Else
    Cells(LastRow, "D").Value = HeureArrivee
    Cells(LastRow, "A").Value = Nom
End If

End Sub

Est-ce que ça marche mieux ainsi chez toi ?
 

Discussions similaires

Réponses
4
Affichages
305
Réponses
3
Affichages
516
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin