Microsoft 365 Rechercher la dernière cellule saisie dans un TS et ajouter l'heure système

NONO14

XLDnaute Impliqué
Bonjour à toutes et à tous,
Me revoilà avec une nouvelle discussion. Voici mon problème.
Dans un formulaire UfPointage il y a un bouton qui doit servir à enregistrer l'heure système dans une feuille "Planning" dans un TS ("t_BDD").
Pour ce faire, on doit rechercher le code agent (Txt_Code) dans le TS, colonne "Code agent" qui est la 1ère colonne du TS, mais également rechercher si il y a déjà eu un pointage à la date du TextBox (TxB_DateJour). Si c'est le cas, alors on recherche le dernier pointage, le premier étant dans la colonne 6 (Pointage 1) et les autres à la suite jusqu'à la colonne 11 (Pointage 6).
De plus, lorsque l'on saisie le Code agent dans la Txt_Code, la ListBox (Lst_Pointage) doit se remplir des pointages déjà réalisés dans la semaine pour cet agent, si il y en a.
La ListBox doit contenir le N° semaine (Colonne 4 du TS, "Semaine") et la date de pointage. Les TextBox (Txt_Point 1 à 6) reçoivent les heures de pointages qui pourront être modifiées si besoin. Pour le moment, la ListBox et les Txt_Point sont Enabled=True. Ils seront rendu modifiable en cliquant sur le bouton modifier, mais ça on verra plus tard.
J'ai commencé un bout de code pour le remplissage du TS mais je ne sais pas comment faire pour la recherche du dernier pointage.
Merci par avance pour votre aide
VB:
Private Sub Cmb_Entrée_Click()
Dim Ctrl As Control
Dim TrouvLig As Boolean
Dim TrouvDerLig As Boolean

    If Me.Txt_Code.Value = "" Then 'Si la TextBox est vide, un message d'alerte dans le Label information
        Me.Lbx_Information.Caption = "Vous devez renseigner votre code"
        Exit Sub
    End If
   
    DeProtege ("Planning") 'On déprotège la feuille de calcul "Planning"
   
    With Sheets("Planning").ListObjects("t_BDD") 'On utilise la feuille et son TS pour les recherches et les saisies
   
    TrouvLig = False
       
        For i = 1 To ListRows.Count 'Pour chaque ligne du TS on recherche le code agent et la date
                If .ListColumns("Code agent").DataBodyRange(i) = Me.Txt_Code And .ListColumns("Dat").DataBodyRange(i) = Me.TxB_DateJour Then
            Ligne = i
    TrouvLig = True
       
        Exit For
                End If
        Next i
       
            If Not TrouvLig Then 'Si on a pas trouvé la ligne, on créé une nouvelle ligne
                Ligne = .ListRows.ass.Index
            End If
           
'On écrit les infos dans le TS
    .DataBodyRange(Ligne, 1) = Me.Txt_Code
    .DataBodyRange(Ligne, 2) = Me.Txt_Noms
    .DataBodyRange(Ligne, 3) = Me.Txt_Prénom

'Là je ne sait plus comment faire pour rechercher le dernier pointage à partir de la colonne 11 jusqu'à la 6
       
End Sub
 

Pièces jointes

  • GestPersonnnel (3).xlsm
    477.7 KB · Affichages: 11
Solution
bonjour

on est d'accord que pour répondre à la question posée dans le titre, il suffit de faire

VB:
with sheets("NomFeuille").listobjects("NomTS")
    .Listcolumns("NomColonne").databodyrange(.listrows.count)=now
end with

avec NomFeuille=nom de la feuille sur laquelle est le TS
NomTS = nom du TS
NomColonne = nom de la colonne du TS dans laquelle mettre la date du jour

vgendron

XLDnaute Barbatruc
moi je pense qu'il y a confusion entre
1) les plages horaires de travail "contractuelles" (= planning = ce qui est prévu PAR l'administrateur POUR l'employé)
et
2) les heures réeellement effectuées par l'employé = pointage.. à n'importe quelle heure autour ou dans ces plages horaires (6:22 ou 6:27ou 6:35)
 

TooFatBoy

XLDnaute Barbatruc
Au fait, un truc que j'ai remarqué hier :
Dans le fichier de #222 (je crois) il y avait un problème au niveau des six pointages : les pointages 3 et 4 étaient remplis alors quec1 et 2 étaient vides.
Est-ce normal/voulu et est-ce toujours le cas dans le fichier de #235 ?
 

NONO14

XLDnaute Impliqué
moi je pense qu'il y a confusion entre
1) les plages horaires de travail "contractuelles" (= planning = ce qui est prévu PAR l'administrateur POUR l'employé)
et
2) les heures réeellement effectuées par l'employé = pointage.. à n'importe quelle heure autour ou dans ces plages horaires (6:22 ou 6:27ou 6:35)
Pas pour moi. Comme tu le dis, il y a les heures contractuelles qui doivent être respectée au plus près. Les heures sup devront avoir l'accord du chef.
 

NONO14

XLDnaute Impliqué
Donc, moi, je comprends que l'heure de pointage est prise en compte pour la durée de travail effectué, et peut-être aussi pour la paye.
Mais ai-je bon ? Me trompé-je ? 🤔 🤔 🤔
Toutefois, cela doit rester exceptionnel. De toute façon, ce sera à l'administrateur de juger de la pertinence des pointages. Si l'agent s'amuse trop souvent à ne pas respecter son planning, il perdra ses heures. Bien sûr il y aura toujours une marge acceptable, puisque les agents ne pourront pas pointer tous en même temps, chacun son tour comme à la confesse.
 

NONO14

XLDnaute Impliqué
justement.. c'est quoi la question?
vu le nombre de post (263) pour ce topic, et vu la question initiale ("rechercher la dernière......")
j'imagine que la question a changé.. ==> quelle est elle?
Moi je n'en ai pas. Je réponds aux questions de tout un chacun.
Pour répondre définitivement à la question des pointages voici ce qui m'a été répondu
Imaginons une plage de 8h00 à 13h00. L'agent pointe à 7h55, le décompte des heures se fera à partir de 8h00 (sauf demande exceptionnelle), il pointe à 12h55 (il perd 5mn), il pointe à 13h05, l'heure sera ajustée à 13h00.
Voilà la règle.
 

TooFatBoy

XLDnaute Barbatruc
Pour répondre définitivement à la question des pointages voici ce qui m'a été répondu
Imaginons une plage de 8h00 à 13h00. L'agent pointe à 7h55, le décompte des heures se fera à partir de 8h00 (sauf demande exceptionnelle), il pointe à 12h55 (il perd 5mn), il pointe à 13h05, l'heure sera ajustée à 13h00.
Voilà la règle.
C'est un scandale : c'est de l'exploitation des masses salariales par les riches patrons !!! 😠



Mais je suppose que c'est normal et partout pareil.
😅 🤡 😇
 

Discussions similaires

Statistiques des forums

Discussions
314 863
Messages
2 113 650
Membres
111 930
dernier inscrit
fab_met