Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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...
 

Dranreb

XLDnaute Barbatruc
Je n'ai pas dit qu'il ne fallait pas saisir en heures et centièmes, j'ai seulement dit qu'il fallait dans ce cas le saisir avec ',' comme séparateur décimal, non ':'. Ou bien en centièmes d'heures, sans séparateur ni décimales.
 

Discussions similaires

Réponses
0
Affichages
157
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…