fr fr fr fr fr fr fr fr fr fr fr fr fr fr fr en fr fr fr fr fr fr fr fr fr fr cs fr fr fr fr fr fr fr fr fr fr fr fr fr fr en en fr fr fr fr fr en fr nl fr fr fr fr fr fr fr fr en fr en fr fr fr fr fr fr fr fr fr fr fr et fr fr fr fr oc en fr fr de fr fr fr fr fr en fr fr fr oc en fr fr de fr en fr fr fr en es fr de fr fr en fr fr fr oc en fr fr de fr fr fr fr fr fr en fr fr fr en es fr de fr fr en fr fr en fr fr fr en es fr de en fr en fr fr fr it en de fr de fr fr fr fr fr fr en fr fr fr it en fr fr de fr fr fr en fr en fr fr fr en es fr de fr fr fr fr fr fr fr fr it en fr fr de fr fr en fr et fr en en fr en fr fr en en en fr
Tu dois probablement être en 64 bits donc essais la déclaration de cette façon mais sans certitude :
Private Declare PtrSafe Function getTickCount Lib "kernel32" (cyTickCount As Currency) As Long
Merci pour ton aide. Je viens de modifier la déclaration et je rencontre une autre prblématique dans ce code :
Pour info, il s'agit d'un code pour faire clignoter un bouton qui fonctionnait avec mon ancien pc.
En pj, la photo du bug
Le 25/05/2018 à 06:46
"getTickCount " attend un argument "cyTickCount As Currency" et ce dernier est obligatoire donc tu déclares une variable en Currency et tu la passe en argument à la fonction commen par exemple :
Private Declare PtrSafe Function getTickCount Lib "kernel32" (cyTickCount As Currency) As Long Sub Minuterie(Milliseconde As Long) Dim Arret As Long Dim Tick As Currency Arret = GetTickCount(Tick) + Milliseconde Do While GetTickCount(Tick) < Arret DoEvents Loop End Sub
Je ne peux rien tester mais la fonction doit modifier la valeur de la variable et tu peux probablement t'en servir !
Le 25/05/2018 à 07:07
maintenant, tu peux aussi utiliser OnTime :
Dim Arret As Boolean Sub Lancer() Arret = False Clignote End Sub Sub Arreter() Arret = True End Sub Sub Clignote() If Arret = True Then Exit Sub If Feuil1.CommandButton1.BackColor = &HE0E0E0 Then Feuil1.CommandButton1.BackColor = &HFF& Else Feuil1.CommandButton1.BackColor = &HE0E0E0 End If Application.OnTime Now + TimeValue("00:00:01"), "Clignote" End Sub
Le 25/05/2018 à 07:18
la 1ère question à se poser est :
1) est-ce que tu as installé la version 64 bits parce que tu étais obligé (bases de données hyper-méga-énormes ou imposée par un responsable)
2) ou est-ce parce que ça te paraissait logique pour un windows 64 bits ?
Si la réponse est la 2, désinstalle cette version pour installer Office 32 bits. C'est elle à privilégier.
Sinon tu auras d'autres déboires bien plus embêtants que celui-ci.
Le 25/05/2018 à 12:22
Je m'demandais si tu avais lu mon message du 21 mai : https://forum.excel-pratique.com/viewtopic.php?p=652176#p652176
Si t'as une solution en passant par un module de classe ou autre, ça serait super pratique !
Le 25/05/2018 à 20:04
Bonjour tout le monde, dhany, eriic,
alors peux-tu ajouter la détection d'un changement de la couleur de remplissage d'une cellule comme il y a déjà la détection d'un changement de valeur d'une celllule ?
La réponse est "non", il est impossible (à l'heure actuelle) de capter la modification d'une couleur dans Excel que ce soit dans une procédure événementielle et encore moins dans un module de classe (la seule solution serait un timer).
Tu peux éventuellement capter la modification d'une valeur dans une cellule qui va engendrer une modification de couleur par MFC mais pas directement le changement de formatage.
Si Microsoft prenait ça en considération (comme bien d'autres action !) ça rendrait service à beaucoup de personne mais il ne faut tout de même pas oublier qu'Excel est avant tout un tableur !
Le 25/05/2018 à 22:44
Je viens tout juste de lire ton message, et je te remercie pour toutes tes infos ; je vais renoncer à trop en demander au tableur Excel ; surtout qu'il fait déjà tellement de choses !