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 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		