Bonjour
Il y a effectivement un bug de dates dans Excel et pas dans VBA mais, pour extraire le nombre de jour d'un total d'heures au format [hh]:mm, il faut impérativement employer la méthode préconisée Banzaï64 : c'est de récupérer la partie entière du nombre
Il ne faut pas employer JOUR() ou DAY() du VBA : ces fonctions donnent le quantième du jour et pas le nombre de jours, c'est à dire qu'après le 31ème jour on tombe à 1
Quand à ce qui pourrait ressembler à un Bug du VBA avec DAY() est en réalité un Bug d'Excel :
Pour Excel le 59ème jour après l'origine des temps d'Excel située le 0 janvier 1900 (il devrait écrire 31 décembre 1899 mais il ne le sait pas !) est le 28 février 1900 (normal) mais le lendemain est le 29 février 1900 c'est à dire un jour qui n'a jamais existé !!!
Pour le VBA, ce dernier jour est le 1er mars 1900 et la vieille est bien le 28 février 1900 (normal, seules les années séculaires multiples de 400 sont bissextiles). Ceci à pour conséquence que l'origine des temps d'Excel se situe en réalité le 30 décembre 1899 du calendrier grégorien, c'est pourquoi DAY(0) = 30, DAY(1) = 31 et DAY(2)=1
Ce Bug fait que toutes les dates qu'Excel situe entre le 0 janvier 1900 et le 29 février 1900 se situent en réalité la veille !!!
CQFD
NOTE : contrairement à Excel, le VBA peut traiter des dates antérieures au 30 décembre 1899