Saisie et total en centièmes

ngexcel

XLDnaute Occasionnel
Bonjour
J ai eu ce code qui fonctionne bien j ai besoin d aide car je saisie mes heures en centièmes dans les cellules comment faire pour que cette macro additionne au format centièmes
Exemple 0:50 +0:25 +0:25= 1:00
Et ensuite je cherche à exécuter cette macro à chaque fois que je saisie une cellule de la colonne h par exemple voici le code
Merci de votre aide


Sub Regroupe()
[H8].CurrentRegion.Sort , key1:=[H8], Header:=xlYes 'Mettre la reference point de depart du tableau ici H8
ligne = 8 ' mettre la ligne du début du tableau
Do While Cells(ligne, 8) <> "" 'mettre le numero de la première colonne du tableau ici H = 8
If Cells(ligne, 8) = Cells(ligne + 1, 8) Then 'idem pour la colonne
Cells(ligne, "I") = Cells(ligne, "I") + Cells(ligne + 1, "I") 'mettre la lettre qui désigne la seconde colonne ici colonne I
Rows(ligne + 1).Delete
Else
ligne = ligne + 1
End If
Loop
End Sub
 

job75

XLDnaute Barbatruc
Bonjour ngexcel, Bernard,

Vraiment pas génial les heures en décimal !

Par ailleurs supprimer les lignes une par une prend beaucoup de temps sur de grands tableaux.

Il vaut beaucoup mieux utiliser le Dictionary et des tableaux VBA :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t, d As Object, i&, n&, a, b
With [Debut].CurrentRegion
    If Intersect(Target, .Cells) Is Nothing Then Exit Sub
    t = .Resize(, 2) 'matrice, plus rapide
End With
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(t)
    d(t(i, 1)) = d(t(i, 1)) + Val(Replace(t(i, 2), ",", "."))
Next
n = d.Count
Application.EnableEvents = False
If n Then
    a = d.keys: b = d.items
    For i = 1 To n
        t(i, 1) = a(i - 1)
        t(i, 2) = b(i - 1)
    Next
    [Debut].Offset(1, 1).Resize(n).NumberFormat = "0.00" 'format nombre décimal
    [Debut].Offset(1).Resize(n, 2) = t 'restitution du tableau
End If
[Debut].Offset(n + 1).Resize(Rows.Count - n - [Debut].Row, 2).Delete xlUp 'RAZ sous le tableau
With UsedRange: End With 'actualise la barre de défilement verticale
Application.EnableEvents = True
End Sub
Fichier joint.

A+
 

Pièces jointes

  • Doublons(1).xlsm
    23.2 KB · Affichages: 23

ngexcel

XLDnaute Occasionnel
Bonjour et merci je test cette après midi
Je suis obligé de saisir en centièmes nous travaillons avec des temps en centièmes donc c est vrai pour dire 1h30 minutes c'est 1h50 centièmes mais bon avec SAP comme programme de gestion faut pas l enever...
 

Discussions similaires

Réponses
0
Affichages
147

Statistiques des forums

Discussions
312 169
Messages
2 085 909
Membres
103 031
dernier inscrit
Karmeliet69