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

XL 2016 Horloge dans feuille de calcul Excel

ReneDav14000

XLDnaute Occasionnel
Bonjour à tous et merci de m'accueillir sur votre site.
Je ne suis pas un expert en Vba, mais je me débrouille un peu.
J'ai 61ans (bientôt la retraite) et j'exerce dans la fonction publique territoriale.
Je développe (j'essaie plutôt) des applications Excel pour améliorer les routines de travail.

J'ai donc un sujet à vous soumettre :
Avec l'aide de différents tuto, j'ai une horloge analogique que je souhaite insérer dans une feuille de calcul et que l'horloge se mette en route dès l'ouverture du fichier.
La feuille "Accueil" où se trouve l'horloge est la feuille qui sera affichée en première.
Pour le moment se met en route en cliquant sur un bouton (feuille "données horloge").
Merci par avance pour votre aide
 

Pièces jointes

  • Projet2.xlsm
    262.2 KB · Affichages: 62

Usine à gaz

XLDnaute Barbatruc
Re-Phil69970
Modif ci -dessous :
VB:
Option Explicit
#If VBA7 Then
    Private Declare PtrSafe Function SetTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As Long
    Private Declare PtrSafe Function KillTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As Long) As Long
#Else
    Private Declare PtrSafe Function SetTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As Long
    Private Declare PtrSafe Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
#End If
"ByVal hwnd As Long" modifié en "ByVal hwnd As LongPtr"

Je n'avais pas l'erreur que tu signales.
lionel
 

Staple1600

XLDnaute Barbatruc
@Usine à gaz
Le VBA ça ne fait pas que s'utiliser, il faut aussi chercher à comprendre...
Enrichi (BBcode):
Option Explicit
#If VBA7 Then ' donc 64 bits
    Private Declare PtrSafe Function SetTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As Long
    Private Declare PtrSafe Function KillTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As Long) As Long
#Else 'sinon 32 bits !!!
    Private Declare  Function SetTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
    Private Declare  Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
#End If
Le PtrSafe ne s'ajoute que dans la partie dédiée au 64 bits
C'est d'ailleurs le message d'erreur explicite qui s'affiche dans Excel.
 

Usine à gaz

XLDnaute Barbatruc
Bonjour JM
"Le VBA ça ne fait pas que s'utiliser, il faut aussi chercher à comprendre...:"
Pour moi qui n'est pas formé au VBA et qui ne parle pas un mot d'anglais, c'est cause perdue au moins pour l'instant.
Mon travail ne me laisse pas assez de temps pour me former.
Bien sûr, j'essaie de comprendre en testant et en adaptant les codes qui me sont donnés en réponses à mes fils et aussi ceux que je remarques sur d'autres fils... ça me prend déjà pas mal de temps.
Et pourtant, j'adore ça.... si la vie m'en laisse le temps quand ce sera possible, je m'y "collerai".
lionel
 

patricktoulon

XLDnaute Barbatruc

Staple1600

XLDnaute Barbatruc
Re

Précisions
@patricktoulon
Sauf erreur
Cette syntaxe a cette fonction, non ?
VB:
#If VBA7 Then 'déclarations des API pour 64 bits
    Private Declare PtrSafe ....
    Private Declare PtrSafeF...
#Else ' déclarations 32 bits
Donc logiquement on ne doit pas y trouver de PtrSafe ni de LongPrt dans la partie 32 bits , non ?
(comme c'est le cas dans le message#173)

D'où la correction dans le message 174#


Usine à Gaz à dit:
Mon travail ne me laisse pas assez de temps pour me former.
Excuse un peu facile
Le forum n'est pas peuplé que de retraités
Moi aussi, je bosse.
Suis inscrit sur XLD depuis 2005, donc chaque jour de connexion est un peu d'autoformation parce que j'ai mis les mains dans le cambouis.
 

patricktoulon

XLDnaute Barbatruc
@Staple1600
Donc logiquement on ne doit pas y trouver de PtrSafe ni de LongPrt dans la partie 32 bits , non ?
re
si dans la partie vb 7 32 bits
car vba 7 est dans nos bécanes depuis 2013 32 ou 64 bits
il se trouve que certaines api sur 2013 32 pro, les déclaration en vb7 sont nécessaires donc ptrsafe mais pas longptr
certaines autres api chez moi fonctionnent sous les 3 modes de déclaration
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…