boucle calcul d'heure en vba suivant condition

  • Initiateur de la discussion Initiateur de la discussion GHISLAIN
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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+ 😎
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
697
N
Réponses
3
Affichages
1 K
N
N
Réponses
6
Affichages
2 K
Navillus
N
Réponses
12
Affichages
1 K
C
Réponses
5
Affichages
1 K
Cocoraphsg
C
C
Réponses
2
Affichages
1 K
C
F
Réponses
4
Affichages
1 K
Frank2000
F
Retour