Microsoft 365 Calcul montant

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

GClaire

XLDnaute Impliqué
Supporter XLD
Bonjour la communauté.

J'espère que vous allez bien?

Je suis sur un nouveau fichier pour un ami en auto aussi comme me.

Celui-ci a bien avancé mais je me heurte a un soucis de calcul.

On renseigne les heures d'arrivée et départ et ce le matin et l’après midi.

Cela calcul la plage horaire le matin et l’après midi, ainsi que le total par jour.

Et on souhaiterai, que cela multiplie par la cellule C3, de la feuille du collaborateur concernée.

Malheureusement je n'arrive a rien avec ce dernier calcul.

Je pense en raison des formats.

Voici les codes, que j'utilise.

Donc dans l'UserForm "Gestion_Horaire"

Pour les heures a renseigner :

VB:
Private Sub TextBox_3_Change()

With Gestion_Horaire
'If Len(.TextBox_3) = 2 Then .TextBox_3.Value = .TextBox_3.Value & ":"

If .TextBox_3.Value = "" Then .TextBox_3.Tag = 1 Else .TextBox_3.Tag = .TextBox_3.Value
If .Lbl_H_Total_Matin.Caption = "" Then .Lbl_H_Total_Matin.Tag = 1 Else .Lbl_H_Total_Matin.Tag = .Lbl_H_Total_Matin.Caption
If .Lbl_H_Total_ApresMidi.Caption = "" Then .Lbl_H_Total_ApresMidi.Tag = 1 Else .Lbl_H_Total_ApresMidi.Tag = .Lbl_H_Total_ApresMidi.Caption
If .Lbl_H_Total_Jour.Caption = "" Then .Lbl_H_Total_Jour.Tag = 1 Else .Lbl_H_Total_Jour.Tag = .Lbl_H_Total_Jour.Caption

Calcul_Temps
End With
End Sub

VB:
Private Sub TextBox_4_Change()
With Gestion_Horaire
'If Len(.TextBox_4) = 2 Then .TextBox_4.Value = .TextBox_4.Value & ":"

If .TextBox_4.Value = "" Then .TextBox_4.Tag = 1 Else .TextBox_4.Tag = .TextBox_4.Value
If .Lbl_H_Total_Matin.Caption = "" Then .Lbl_H_Total_Matin.Tag = 1 Else .Lbl_H_Total_Matin.Tag = .Lbl_H_Total_Matin.Caption
If .Lbl_H_Total_ApresMidi.Caption = "" Then .Lbl_H_Total_ApresMidi.Tag = 1 Else .Lbl_H_Total_ApresMidi.Tag = .Lbl_H_Total_ApresMidi.Caption
If .Lbl_H_Total_Jour.Caption = "" Then .Lbl_H_Total_Jour.Tag = 1 Else .Lbl_H_Total_Jour.Tag = .Lbl_H_Total_Jour.Caption

Calcul_Temps

End With
End Sub

VB:
Private Sub TextBox_5_Change()
With Gestion_Horaire

'If Len(.TextBox_5) = 2 Then .TextBox_5.Value = .TextBox_5.Value & ":"

If .TextBox_5.Value = "" Then .TextBox_5.Tag = 1 Else .TextBox_5.Tag = .TextBox_5.Value
If .Lbl_H_Total_Matin.Caption = "" Then .Lbl_H_Total_Matin.Tag = 1 Else .Lbl_H_Total_Matin.Tag = .Lbl_H_Total_Matin.Caption
If .Lbl_H_Total_ApresMidi.Caption = "" Then .Lbl_H_Total_ApresMidi.Tag = 1 Else .Lbl_H_Total_ApresMidi.Tag = .Lbl_H_Total_ApresMidi.Caption
If .Lbl_H_Total_Jour.Caption = "" Then .Lbl_H_Total_Jour.Tag = 1 Else .Lbl_H_Total_Jour.Tag = .Lbl_H_Total_Jour.Caption

Calcul_Temps
End With
End Sub

VB:
Private Sub TextBox_6_Change()
With Gestion_Horaire
'If Len(.TextBox_6) = 2 Then .TextBox_6.Value = .TextBox_6.Value & ":"

If .TextBox_6.Value = "" Then .TextBox_6.Tag = 1 Else .TextBox_6.Tag = .TextBox_6.Value
If .Lbl_H_Total_Matin.Caption = "" Then .Lbl_H_Total_Matin.Tag = 1 Else .Lbl_H_Total_Matin.Tag = .Lbl_H_Total_Matin.Caption
If .Lbl_H_Total_ApresMidi.Caption = "" Then .Lbl_H_Total_ApresMidi.Tag = 1 Else .Lbl_H_Total_ApresMidi.Tag = .Lbl_H_Total_ApresMidi.Caption
If .Lbl_H_Total_Jour.Caption = "" Then .Lbl_H_Total_Jour.Tag = 1 Else .Lbl_H_Total_Jour.Tag = .Lbl_H_Total_Jour.Caption

Calcul_Temps

End With
End Sub


Le calcul :
Code:
Private Sub Calcul_Temps()

On Error Resume Next
With Gestion_Horaire
    .Lbl_H_Total_Matin.Caption = HeureToDec(Format(CDate(.TextBox_4.Tag) - CDate(.TextBox_3.Tag), "hh:mm"))
  
    .Lbl_H_Total_ApresMidi.Caption = HeureToDec(Format(CDate(.TextBox_6.Tag) - CDate(.TextBox_5.Tag), "hh:mm"))
  
    .Lbl_H_Total_Jour.Caption = HeureToDec(Format(CDate(.TextBox_4.Tag) - CDate(.TextBox_3.Tag) + CDate(.TextBox_6.Tag) - CDate(.TextBox_5.Tag), "hh:mm"))
  
    .Lbl_Montant_Intervention.Caption = (HeureToDec(Format(CDate(.TextBox_4.Tag) - CDate(.TextBox_3.Tag) + CDate(.TextBox_6.Tag) - CDate(.TextBox_5.Tag), "hh:mm"))) * Sheets(Nom & " " & Prenom).Range("C3").Value
End With


Dans un module : "Mdl_HeureToDec"
Code:
Public Function HeureToDec(pHeure As Date) As Single
    Dim nbHeures As Integer, nbMinutes As Integer, nbSecondes As Single

    nbHeures = DatePart("h", pHeure, vbMonday, vbFirstFourDays)
    nbMinutes = DatePart("n", pHeure, vbMonday, vbFirstFourDays)

    nbSecondes = nbMinutes * 60 + DatePart("s", pHeure, vbMonday, vbFirstFourDays)
    nbSecondes = nbSecondes / 3600
    HeureToDec = nbHeures + nbSecondes

End Function

Si vous avez une idée?

Je vous remercie par avance.

G'Claire
 

Pièces jointes

ChTi160

XLDnaute Barbatruc
Re
tu dis
Et on souhaiterai, que cela multiplie par la cellule C3, de la feuille du collaborateur concernée.
Malheureusement je n'arrive a rien avec ce dernier calcul.

Pourquoi ne pas mettre ce taux dans la feuille "Collaborateurs" à la suite du Nom Prénom et de le récupérer dans le Combobox et ensuite l'utiliser selon le choix du Collaborateur !
Enfin une idée comme une autre
là, je pars bricoler chez ma fille je regarde ce soir ou tu en es !
bonne journée
jean marie
 

GClaire

XLDnaute Impliqué
Supporter XLD
Hello ChTi160, le forum.

Merci.

je vois qu'il n'y a pas de vacances pour les Autos Lol

Et non, j'ai eu la chance de prendre même un nouveau client, et heureusement, ca le spectacle et l'évènementielle, is DEAD.

Pourquoi ne pas mettre ce taux dans la feuille "Collaborateurs" à la suite du Nom Prénom et de le récupérer dans le Combobox et ensuite l'utiliser selon le choix du Collaborateur !
Enfin une idée comme une autre


Oui une très bonne idée.

J'avais fais cela pour tout rassembler au même endroit niveau calcul.

Si je passe comme cela, je modifierai l'Userform collaborateur.

J'ai essaye noir de possibilité, mais calcul ne fonctionnait jamais.

Merci, G'Claire
 

GClaire

XLDnaute Impliqué
Supporter XLD
Re.

Bon déception.

Les calculs se fond, mais l'envoi dans la feuille est chaotique, des Heures ou autres données horaires sont a "00:00", et le pire est que c'est aléatoire, jamais les mêmes, des fois deux, des fois une ou 3.

Je ne vois pas ou je bugg.

Je fais un peu le clean et remet un fichier.

Merci G'Claire
 
Dernière édition:

GClaire

XLDnaute Impliqué
Supporter XLD
re

Bon a priori cela marchotte, lol.

J'ai voulais mettre dans mon tableau un tableau en faisant "Insertion" puis tableau et cocher "Mon tableau comporte une entête".

De maière a faire des calculs avec plage de cellules dynamiques.

Et bien lors de l'ajout de donnée, la première ligne après les entes n'est pas rempli.

pour la dernière ligne :

DerrLigne = Feuille_Collaborateurs_XXX.Range("C" & Rows.Count).End(xlUp).Row + 1 'Je cherche la dernière ligne de données

Mais pour la première donnée cela fonctionne pas.

a quoi c'est dû?

Merci, G'Claire
 

GClaire

XLDnaute Impliqué
Supporter XLD
Hello.

Malgré tous mes essais, je n'arrive pas a mes fin, histoire des format (Car essayé avec code a coté qui fonctionné), ou je ne sais quoi au niveau de l'envoi des données.

Je n'arrive pas a faire la somme de la colonne "O" qui doit se mettre dans le label "Lbl_ResteARegler".

Pour les autres calculs cela a l'air de fonctionner, Total Heure matin, Total heure aprés midi, Total Jour, montant intervention.

Mais pour le reste a régler, c'est ko.

Donc le principe, en sélectionnant le nom de collaborateur, cela choisi sa feuille et liste toutes les intervention et calcul ce "Reste a régler", et j'aimerais que si je rajoute des heures, cela se rajoute également dans ce label en plus du restant du.

Lors de la validation je ne renvois pas cette donnée, c’est plus du visuel.

Merci a vous, G'Claire
 

Pièces jointes

GClaire

XLDnaute Impliqué
Supporter XLD
Hello

Oui il a bien a soucis lors de l'envois des données en colonne "O", soit dû au calcul ou format ou je ne sais quoi.

Même si je fais une somme dans la dernière cellule en prenant toutes les cellules de dessus, le calcul ne se fait pas, il faut que je double clique sur chaque cellule pour que le calcul se fasse.
Voici le lien sur ma drop box de la video (A pas réussi de faire un giff comme mon trés cher ChTi160, lol :


Merci.

G'Claire
 

Discussions similaires

Réponses
17
Affichages
842
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
473
Réponses
49
Affichages
1 K
Réponses
2
Affichages
357
Réponses
3
Affichages
557
Réponses
3
Affichages
424
  • Question Question
Microsoft 365 appel des sous-routine
Réponses
3
Affichages
209

Statistiques des forums

Discussions
315 297
Messages
2 118 168
Membres
113 443
dernier inscrit
renotton