Calcul d'heures

Mattharm

XLDnaute Occasionnel
Bonjour à tous,

J'essaie de faire un calcul d'heures sous VBA.

J'ai 4 variables dont le format est hh:mm:ss et je fais le calcul suivant :

Code:
Temps = V1-V2-V3-V4

Il me répond incompatibilité de type.... (je n'ai pas déclaré mes variables)

Merci,
M.
 

Gorfael

XLDnaute Barbatruc
Re : Calcul d'heures

Salut Mattharm et le forum
Tu les charges comment des variables ?
Regardes laquelle de tes variables a une incompatibilité de type et regardes comment tu l'initialises.

Ne pas déclarer ses variables revient à les déclarer en "variant". Ça économise vraiment beaucoup de temps :p. Sauf qu'on en perd un peu sur les recherches de panne, mais c'est négligeable face à la corvée de rechercher le type dans lequel on doit la définir :D
A+
 

ROGER2327

XLDnaute Barbatruc
Re : Calcul d'heures

Bonjour Gorfael
(...) Ne pas déclarer ses variables revient à les déclarer en "variant". Ça économise vraiment beaucoup de temps :p. Sauf qu'on en perd un peu sur les recherches de panne, mais c'est négligeable face à la corvée de rechercher le type dans lequel on doit la définir :D (...)
Chacun est libre de ses opinions...
Pour ma part, je suis d'un avis radicalement opposé.
  1. Ne pas déclarer ses variables revient à les déclarer en "variant". Ça économise vraiment beaucoup de temps
    Écrire quelques lignes de déclarations pour quelques dizaines ou centaines (voir plus) de lignes de code me semble une perte de temps négligeable. C'est en outre une grosse perte de ressources car le type Variant est gourmand ! De plus le temps d'exécution d'un code où les variables sont précisément typées est presque toujours nettement plus rapide qu'un code écrit exclusivement en Variants.
  2. Sauf qu'on en perd un peu sur les recherches de panne
    Pour dépanner souvent, je vous garantis que pour une poignée de secondes gagnées en ne typant pas les variables, ce sont des centaines d'heures que les dépanneurs perdent. Évidemment, ceux qui perdent beaucoup de temps ne sont pas ceux qui gagnent quelques secondes. Mais l'argument me semble irrecevable.
  3. mais c'est négligeable face à la corvée de rechercher le type dans lequel on doit la définir
    Ce qui revient à dire qu'il est inutile de savoir quelle est la nature des données qu'on traite. C'est, pour moi, un principe détestable, source de la plupart des ennuis. Programmer proprement impose d'abord l'analyse scrupuleuse des données qu'on traite. Ce n'est pas une corvée, mais la base de la programmation. C'est même la seule difficulté réelle de ce travail. Dès lors qu'on sait ce qu'on traite, et ce qu'on veut obtenir, tout est fait : le reste n'est plus que de la mécanique. On me demande souvent comment je trouve tel ou tel code. La réponse est simple : je passe plus de temps avec des feuilles de papier, un crayon, une gomme et du jus de méninge que sur mon clavier à taper des choses pour voir si par chance elles me donneraient un résultat que je serais incapable d'expliquer.
Ce n'est qu'une opinion. A chacun d'apprécier. Mais je conseillerai toujours de déclarer et de typer chaque variable autant que faire se peut.
Voila... Le débat est ouvert : n'hésitez pas à y participer.​
Cordialement,
ROGER2327
 

Raja

XLDnaute Accro
Re : Calcul d'heures

Bonjour le forum, Salut Roger,

Allez une petite astuce, ça ne fait mal à personne.
Pour aller dans le sens de ce que notre ami Roger a justement dit et pour vous obliger de déclarer les variables, aller en Outils/Options/Editeur et cocher l'option "déclaration des variables obligatoire" qui vous inscrira une ligne "Option Explicit" au début de l'éditeur VBA.

PS: cela vous oblige de déclarer simplement les variables avant son utilisation mais pas son type.
 
Dernière édition:

Discussions similaires

Réponses
15
Affichages
490
Réponses
5
Affichages
413

Statistiques des forums

Discussions
312 380
Messages
2 087 787
Membres
103 664
dernier inscrit
wolvi71