Don a un ordinateur qui a accès à plusieurs serveurs différents sur son réseau de bureau. Ces serveurs n’ont pas leurs horloges synchronisées, et Don se demandait s’il y avait un moyen, en VBA, de déterminer le décalage horaire entre un serveur donné et sa machine.

Afin de déterminer le décalage horaire, vous devrez calculer deux fois – un sur votre machine et un sur le serveur – et les comparer. Obtenir l’heure sur votre propre machine est assez simple; utilisez simplement la fonction Time dans VBA. Obtenir l’heure sur une autre machine est plus difficile, car il n’y a pas de fonction intégrée qui facilite cette tâche.

Vous pouvez cependant utiliser un appel de fonction API pour déterminer l’heure sur un serveur distant. La manière exacte dont vous développeriez un tel appel de fonction dépasse le cadre de cette astuce, mais vous pouvez trouver un très bon tutoriel en ligne pour accomplir la tâche:

http://www.mvps.org/access/api/api0039.htm

Jetez un œil à la page et vous pourrez adapter le code à vos besoins.

La fonction fGetServerTime renvoie une chaîne contenant la date et l’heure complètes. Vous pouvez ensuite utiliser la fonction TimeValue dans votre macro pour convertir cette chaîne en une valeur d’heure Excel native. Une fois convertie, vous pouvez comparer la valeur à l’heure système interne pour déterminer l’écart dont vous avez besoin.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (3258) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Calculating_Time_Differences_between_Two_Machines [Calcul des différences de temps entre deux machines].