XL 2013 Erreur 13: Incompatibilité de Type

pierrof

XLDnaute Occasionnel
Bonjour,

J'ai voulu adapté un code pur une version d'Excel 2013 mais j'ai un message d'erreur qui apparait: Erreur 13: Incompatibilité de Type, avec comme code surligné:
Range("AA" & n) = Hour(Range("K" & n) - Range("J" & n)) * 60

Je pense que cela vient de ma fonction hour...

Si vous vous avez des conseils je suis preneur.

Merci
Cordialement
 

jmfmarques

XLDnaute Accro
Bonjour
Je pense que cela vient de ma fonction hour...
La moindre des choses (puisque tu le penses) serait alors de nous montrer le code de cette fonction. Qu'en penses-tu ?
Sans préjudice (au passage) de ce que Hour est déjà une fonction de VBA....(et donc pas la tienne) et que cette fonction n'utilise qu'un seul paramètre, de type date et non de type numérique (ce qu'est la différence entre deux dates). :)
 

pierrof

XLDnaute Occasionnel
Bonjour Jmfmarques,
Voici le code qui me permet de calculer des heures (dans la colonne K et J j'ai mes heures de debut et de fin):
'Calul de la durée
'heure
For n = 2 To Range("A20000").End(xlUp).Row
Range("AA" & n) = Hour(Range("K" & n) - Range("J" & n)) * 60
Next n
'minute
For n = 2 To Range("B20000").End(xlUp).Row
Range("AB" & n) = Minute(Range("K" & n) - Range("J" & n))
Next n
For n = 2 To Range("B20000").End(xlUp).Row
Range("AC" & n) = (Range("AA" & n) + Range("AB" & n)) / 60
Next n

Voilà
 

jmfmarques

XLDnaute Accro
Ce n'est donc pas TA fonction Hour, mais celle de VBA.
Cette fonction doit recevoir en paramètre une date/heure ou une heure, pas une différence (qui serait un simple numérique)
On prend par ailleurs la bonne habitude de toujours déclarer la propriété que l'on utilise (Range("...") .Value)
Enfin et surtout : l'utilisation toute bête de la fonction Datediff de VBA te permet d'extraire d'un seul coup la durée, dans les unités de ton choix, entre deux date/time. Utilise-la donc, plutôt que de réinventer l'eau chaude.
Sans compter que l'utilisation de Excel seul (formule) serait ici suffisante (pas de VBA nécessaire).
 

Discussions similaires

Réponses
24
Affichages
895