Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion jbetoret
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jbetoret

Guest
Bonjour à tous,

Je souhaite faire prendre les valeurs 0 ou 1 à la cellule A1, à une fréquence donné par la valeur de A2.
Cette fréquence sera donné en dixièmes de secondes.
En clair pour A2=0, A1 prend la valeur de 0 et ne change pas (arrêt). Pour A2=1, la valeur de A1 change dix fois par seconde. Pour A2=2, la valeur de A1 change cinq fois par seconde. Pour A2=3, la valeur de A1 change 3.33 fois par seconde et ainsi de suite.
J'arrive à faire cela avec une base de temps d'une seconde mais en dixièmes c'est autre chose...
Merci d'avance pour votre aide.
Et bravo pour ce site, c'est une vrai mine d'astuces.
 
Dernière modification par un modérateur:
Re : Base de temps

Bonsour®

J'arrive à faire cela avec une base de temps d'une seconde mais en dixièmes c'est autre chose...

faire cela par une macro, risque de pénaliser lourdement Excel

un amalgame de Calculate, DoEvents et de l'API GetTickCount

🙁sans garantie du respect de l'intervalle
- doevents très variable dépend des taches Windows
- rafraichissement d'écran dépend du nombre de formules à recalculer

valeurs 0 ou 1 à la cellule A1, à une fréquence donné par la valeur de A2.
VB:
Option Explicit

Private Declare Function GetTickCount& Lib "kernel32" ()
 Sub info()
 Dim i As Integer, flip As Boolean, x As Integer
 Dim Ret&, debut&
    debut& = GetTickCount&
    For i = 1 To 10000
            'Get the tickcount
            Ret& = GetTickCount&
            [B1] = Str$(Ret& - debut&) & " millisecondes."
            flip = Not flip
            DoEvents ' ---rends la main aux évenements windows (clavier, interfaces applis)
            [A1] = flip * -1
            [B2] = i
            Application.Wait Now + (TimeValue("0:00:01") * [a2] / 1000)
            ' --------------absolument pas sûr de la durée acceptée par la fonction Wait
    Next
    [B3] = Str$((Ret& - debut&) / 1000) & " secondes."
End Sub
 
Re : Base de temps

Bonjour Modeste geedee,

Merci pour ta solution et mais elle ne donne de résultats non linéaires avec mon PC.
Pour A2 = 1000, A1 change bien toutes les secondes. Mais c'est pareil avec A1 = 800 ou 700. Avec la valeur de 500 cela défile à toute vitesse.
Désolé mais je tiens à vous préciser que mon niveau en programmation est proche de 0.
Ce que je souhaite faire précisément est que à l'ouverture de ce fichier excel, la cellule A1 bascule de 0 à 1 et vice-versa à la fréquence donnée par la cellule A2 et cela sans interruption. Si on rentre 0 dans A2, A1 prend la valeur 0 et ne change plus.

néné06, : Je n'ai pas fait de fichier encore car sa réalisation repose entièrement sur la problématique que je vous ai soumis. Mon projet est de faire défiler des cases à la fréquence donné par A1.
Merci encore.
 
Re : Base de temps

Bonjour à tous

jbetoret (bienvenue sur XLD)
néné06, : Je n'ai pas fait de fichier encore car sa réalisation repose entièrement sur la problématique que je vous ai soumis. Mon projet est de faire défiler des cases à la fréquence donné par A1.
Merci encore.
Tu peux expliciter concrètement ce que tu veux faire?
Quel est le but de tout cela?
 
Re : Base de temps

Bonsour® a-posteriori l'instruction WAIT n'est pas fiable en-dessous d'une seconde.

une autre proposition en utilisant un Timer qui semble stable chez moi au-dessus de 50 ms

Je le répéte une macro à exécution permanente risque d'amputer fortement les autres actions sur ce classeur
 

Pièces jointes

Re : Base de temps

Trop fort Modeste geedee !
Çà marche très bien.
Je vous remercie pour votre réactivité.
Je vais pouvoir démarrer mon projet.
Merci encore à vous tous pour votre sollicitude et à bientôt !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
257
Réponses
15
Affichages
848
Réponses
6
Affichages
333
Réponses
2
Affichages
378
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…