Microsoft 365 Calcul de plages horaires

NONO14

XLDnaute Impliqué
Bonsoir,
Dans le fichier exemple ci-joint et dans la feuille Tab_Pointage il y a un tableau (t_Saisie) dans lequel se trouvent des heures.
Dans la colonne 12 je souhaite avoir le total des heures par plage mais uniquement si la plage est complète.
Par exemple H1 et H2 complètes alors H2-H1, mais si il y H3 mais que H4 est vide alors ne calculer que la 1ère plage.
J'ai créé un code pour faire le calcul, mais si il manque un horaire dans une plage le calcul ne fonctionne pas.
Pouvez-vous m'aider à résoudre ce problème s'il vous plaît ?
Je vous en remercie par avance

VB:
Sub CalculerTotalHeures()
    Dim Ws As Worksheet
    Dim Tbl As ListObject
    Dim Cell As Range
    Dim TotalHeures As Double
    Dim Start1 As Variant, Dep1 As Variant
    Dim Start2 As Variant, Dep2 As Variant
    Dim Start3 As Variant, Dep3 As Variant
    
    ' Définir la feuille et le tableau structuré
    Set Ws = Sheets("Tab_Pointage")
    Set Tbl = Ws.ListObjects("t_Saisie") ' Nom du tableau structuré
    
    
    ' Parcourir chaque ligne du tableau structuré
    For Each Cell In Tbl.ListColumns(1).DataBodyRange
        TotalHeures = 0
        ' Récupérer les heures des différentes colonnes
        Start1 = Cell.Offset(0, 5).Value
        Dep1 = Cell.Offset(0, 6).Value
        Start2 = Cell.Offset(0, 7).Value
        Dep2 = Cell.Offset(0, 8).Value
        Start3 = Cell.Offset(0, 9).Value
        Dep3 = Cell.Offset(0, 10).Value
        
        ' Calculer les heures si les plages sont complètes
        If IsNumeric(Start1) And IsNumeric(Dep1) Then
            TotalHeures = TotalHeures + (Dep1 - Start1)
        End If
        
        If IsNumeric(Start2) And IsNumeric(Dep2) Then
            TotalHeures = TotalHeures + (Dep2 - Start2)
        End If
        
        If IsNumeric(Start3) And IsNumeric(Dep3) Then
            TotalHeures = TotalHeures + (Dep3 - Start3)
        End If

        ' Afficher le résultat dans la colonne 12
        Cell.Offset(0, 11).Value = TotalHeures
    Next Cell
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CalculerTotalHeures
End Sub
 

Pièces jointes

  • Classeur1.xlsm
    18.5 KB · Affichages: 5

NONO14

XLDnaute Impliqué
@NONO14

On peut se servir de la colonne commentaire en inscrivant par exemple "il manque x plages" en fonction de ce qu'il manque
J'avais commencé un essai hier dans ce sens et puis j'ai fait marche arrière en pensant que la colonne commentaire était prévu pour autre chose....

Edit : @NONO14 ==> Ajout fichier
Je me suis trompé, ça fonctionne bien. J'ai voulu modifier les en-têtes et c'est pour cette raison que j'avais ce message d'erreur.
Toutes mes excuses
 

NONO14

XLDnaute Impliqué
@NONO14

On peut se servir de la colonne commentaire en inscrivant par exemple "il manque x plages" en fonction de ce qu'il manque
J'avais commencé un essai hier dans ce sens et puis j'ai fait marche arrière en pensant que la colonne commentaire était prévu pour autre chose....

Edit : @NONO14 ==> Ajout fichier
Cependant je cherche à modifier ton code dans les cas où il n'y a pas une entrée et une sortie d'enregistrées par plages. Le message ne doit apparaître que s'il manque un pointage de sortie car c'est la seule erreur qu'il puisse y avoir. Dans mon formulaire, j'ai mis en place un code qui interdit toute nouvelle entrée si la sortie n'a pas été pointée.
Merci par avance
 

NONO14

XLDnaute Impliqué
J'ai résolu le problème par cette formule dans la colonne commentaire
VB:
=SI(ET([@[Arrivée 1]]<>0;[@[Départ 1]]=0);"Il manque un pointage";SI(ET([@[Arrivée 2]]<>0;[@[Départ 2]]=0);"Il manque un pointage";SI(ET([@[Arrivée 3]]<>0;[@[Départ 3]]=0);"Il manque un pointage";"")))
 

Phil69970

XLDnaute Barbatruc
Re

@NONO14
De retour après une petite absence, peux tu sur le fichier de la V4 par exemple mettre dans la colonne P (hors tableau) les commentaires et couleur que tu veux avoir dans le tableau suivant les différents cas et si besoin rajoute des cas parce j'avoue j'ai du mal à suivre ce que tu veux exactement
 

NONO14

XLDnaute Impliqué
Re

@NONO14
De retour après une petite absence, peux tu sur le fichier de la V4 par exemple mettre dans la colonne P (hors tableau) les commentaires et couleur que tu veux avoir dans le tableau suivant les différents cas et si besoin rajoute des cas parce j'avoue j'ai du mal à suivre ce que tu veux exactement
Si sur une ligne il manque un pointage de départ alors qu'il a une arrivée de saisie, alors on met un commentaire "Il manque un pointage". A chaque arrivée doit correspondre un départ pour une même plage, soit Arrivée 1/Départ 1, ou, Arrivée 2/Départ 2, ou, Arrivée 3/Départ3. Arrivée 2 ne pourra jamais être remplie si Départ 1 n'est pas rempli, et Arrivée 3 si départ 2 n'est pas rempli (blocage du bouton dans le formulaire).
Je mets cette procédure en place dans l'hypothèse où un agent partirait sans pointer, comme ça le lendemain il y aura un message dans la ListBox du formulaire, car je vais reprendre le commentaire dans la ListBox.
N'hésites pas à revenir vers moi si je ne suis pas clair.
 

Phil69970

XLDnaute Barbatruc
@NONO14

perso j'ai un problème ici

1729087836510.png


Et aussi ici

1729088113731.png


Explication différentes en rouge pour les lignes 1, 2 et 3 identiques

Et encore ici

1729088273552.png


De plus les couleurs colonnes M sont en rouge pourquoi ne sont elles pas noires

Cela fait beaucoup d'incompréhension ????
Il manque un peu de rigueur, non !!!!!
 

NONO14

XLDnaute Impliqué
@NONO14

perso j'ai un problème ici

Regarde la pièce jointe 1205377

Et aussi ici

Regarde la pièce jointe 1205381

Explication différentes en rouge pour les lignes 1, 2 et 3 identiques

Et encore ici

Regarde la pièce jointe 1205383

De plus les couleurs colonnes M sont en rouge pourquoi ne sont elles pas noires

Cela fait beaucoup d'incompréhension ????
Il manque un peu de rigueur, non !!!!!
Je n'ai pas modifié les couleurs de la colonne qui émanaient du code que tu avais mis.
Voici le fichier tel qu'il devrait être selon les différents pointages
 

Pièces jointes

  • Calcul sur TS V5.xlsm
    18 KB · Affichages: 2

Discussions similaires

Réponses
1
Affichages
430
Réponses
0
Affichages
352

Statistiques des forums

Discussions
315 088
Messages
2 116 087
Membres
112 656
dernier inscrit
VNVT