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: 61

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
re
Bonjour Lionel
dis moi un peu tu n'est pas un débutant , tu sera faire quand même
testcreate dans le open du workbook et le activate de la feuille
et destroyhorloge dans le beforeclose du workbook et le déactivate de la feuille
Bonjour Patrick, le Forum :)
OK Patrick, c'est vrai mais j'ai la même erreur que Phil69970 #Post 147.
Je suis sur Office365
@+,
lionel :)
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
et oui c'est bien connu que la version 2010 64 bits fait des choses bizarre
il me semble avoir lu quelque part avec un correctif le problème api en 64 bit était résolu
je ne sais plus ou c'est 2010 je l'ai gardé un mois à tout casser j'etais vite revenu à 2007
pour passer il y a un peu plus de 2 ans a 2013 bien malgré moi d'ailleurs mais bon on s'y fait
il me semble même que pour excel 2010 l'argument hwnd doit être le hwnd de l'application
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Patrick, le Fil, le Forum,
@patrick : pas de nouveau concernant ?
1665055449931.png

J'espère que tu trouveras car j'adore ton horloge,
lionel :)
 

patricktoulon

XLDnaute Barbatruc
il est fort possible que ce soit les déclarations 64, j'avais fait une petite erreur su LpProc
en effet je ne peux tester car je suis en 32 bits
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 Long) As Long
    Private Declare PtrSafe Function KillTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As Long) As Long
#Else
    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
 

patricktoulon

XLDnaute Barbatruc
re
VB:
#If VBA7 Then    'office 2013 à 365
    #If Win64 Then    'office 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 Long) As Long
        Private Declare PtrSafe Function KillTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As Long) As Long
    #Else    'office 32 bits
        Private Declare PtrSafe 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 PtrSafe Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
    #End If
#Else    'vb6 office 32 bits 2007 et inférieur
    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
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
re
VB:
#If VBA7 Then    'office 2013 à 365
    #If Win64 Then    'office 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 Long) As Long
        Private Declare PtrSafe Function KillTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As Long) As Long
    #Else    'office 32 bits
        Private Declare PtrSafe 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 PtrSafe Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
    #End If
#Else    'vb6 office 32 bits 2007 et inférieur
    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
Re-Patrick :)
Il n'en veut pas le "coquinou" :
1665069872929.png

Bon sang :mad:
lionel :)
 

Discussions similaires

Réponses
7
Affichages
508
M
Réponses
9
Affichages
466
Maikales
M

Statistiques des forums

Discussions
312 103
Messages
2 085 325
Membres
102 862
dernier inscrit
Emma35400