boucle calcul d'heure en vba suivant condition

GHISLAIN

XLDnaute Impliqué
Bonjour le forum

Je recherche en vba a effectuer le comptage d'heure correspondant a une condition

somme si Garde du nombre total sur les 2 plages

donc 12h pour toto1 + 12h pour toto2 + 12h toto13 pour un total de 36h


résultat a afficher dans le textbox



idem pour les autres appellations

ci joint un fichier qui je le souhaite sera plus explicite

Amicalement

ghislain
 

Pièces jointes

  • soldes heures 2.xlsm
    26.8 KB · Affichages: 56

Caillou

XLDnaute Impliqué
Re : boucle calcul d'heure en vba suivant condition

bonjour,

J'ai rien compris, mais essayes ça :
Code:
Private Sub CommandButton1_Click()
  Dim res As Single
  res = Application.WorksheetFunction.SumIf(Range("c12:c50"), "Garde", Range("f12:f50"))
  With Range("a1")
    .Value = res
    .NumberFormat = "[hh]:mm"
  End With
  TextBox1 = Range("A1").Text
End Sub
Caillou
 

Lone-wolf

XLDnaute Barbatruc
Re : boucle calcul d'heure en vba suivant condition

Bonjouj GHISLAI, Caillou

@Caillou, moi aussi j'ai fait comme toi, mais les textbox n'acceptent pas le format [hh]:mm. Il faut le contourner et appliquer cet exemple de Maître job75, comme tant d'autres d'ailleurs.

Petit plus: mettre la couleur Garde à la cellule G2.

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plage, cel As Range
Application.EnableEvents = False
Set plage = Range("c12:c31")
For Each cel In plage
If cel.Offset(0, 0).Value = Range("g2") Then
cel.Offset(0, 0).Font.Color = Range("g2").Font.Color
cel.Offset(0, 1).Interior.Color = vbYellow
cel.Offset(0, 2).Interior.Color = vbYellow
UserForm1.Show
Else
cel.Offset(0, 0).Font.Color = xlDefaut
cel.Offset(0, 1).Interior.Color = xlNone
cel.Offset(0, 2).Interior.Color = xlNone
End If
Next cel
Application.EnableEvents = True
End Sub


Option Explicit
Dim x As Date
Private Sub CommandButton1_Click()

With Sheets("Liste")
x = Application.SumIf(.Range("c12:c31"), .Range("g2"), .Range("f12:f31"))
TextBox1 = Int(CDec(24 * x)) & ":" & Format(Minute(x), "00")
End With
End Sub




A+ :cool:
 
Dernière édition:

Discussions similaires

Réponses
14
Affichages
872

Statistiques des forums

Discussions
314 216
Messages
2 107 389
Membres
109 819
dernier inscrit
ogui42