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
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