Mise à jour d'un graphique dans Excel 365

Résolu/Fermé
FPI - 18 avril 2020 à 22:13
 FPI - 19 avril 2020 à 01:47
Bonjour à tous,

Je débute avec VBA pour Excel 365 et je planche depuis 2 jours sur un problème de mise à jour automatique d'un graphique simple.

J'ai écrit la mini macro suivante afin de calculer le sinus des angles de 0 à 360 dans ma feuille Excel et je voudrais montrer "en direct" la variation des valeurs sur un petit graphique situé dans la même feuille de calcul :

Sub angle()

For x = 0 To 360
Range("a1") = x
Next x

End Sub


Quand je l'exécute, les valeurs vont bien de 0 à 360 dans la cellule A1, par contre le graphique que j'ai créé à partir de la fonction sinus dans ma feuille de calcul ne varie pas en fonction de l'évolution des valeurs de x

Est-ce que quelqu'un aurait une idée ?

Je vous remercie d'avance pour vos réponses.

Bonne soirée.
A voir également:

5 réponses

via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 2 734
Modifié le 18 avril 2020 à 23:06
Bonsoir

ton code s’exécute mais tellement vite que tu ne vois rien
Il faut mettre une pause avant le Next
Pour une pause d'une seconde
Application.Wait (Now + TimeValue("00:00:01") )


Ce sera sympa de poster ton fichier lorsqu'il sera fonctionnel (aller sur cjoint.com, telécharger le fichier, faire créer un lien, le copier et revenir le coller ici)

Cdlmnt
Via

1
Bonsoir Via,

Un grand merci pour ta réponse.

J'y avais pensé, j'avais inséré dans la boucle "For - Next" un délai mais le graphique reste toujours figé. Snifff.

Bonne soirée !

François.
0
Bonsoir,

Après de nombreuses recherches sur d'autres forums, j'ai enfin trouvé une solution à mon problème, voici le code qui fonctionne :

Sub angle()

For x = 0 To 360
Calculate
Range("a1") = x
DoEvents
Next x

End Sub


L'ajout des instructions "Calculate" et "DoEvents" permettent au graphique de se mettre à jour...... mais je ne comprends absolument pas pourquoi....

J'ai beau chercher dans l'aide l'action de ces instructions, je ne comprends pas car il semble qu'il s'agit d'une méthode et d'une fonction... ???

Si qq'un pouvait un peu éclairer ma lanterne, ce serait super sympa !

D'avance merci et bonne nuit...

François.
0
via55 Messages postés 14494 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 26 octobre 2024 2 734
Modifié le 19 avril 2020 à 01:41
Calculate force Excel à recalculer la feuille mais il n'y en même pas besoin tu peux supprimer cette ligne

DoEvents suspend la macro et rend la main au système donc la boucle affiche une valeur en A1 puis DoEvents rend la main à Excel, le graphique prend en compte la valeur de A1 puis la boucle continue, nouvelle valeur, nouvelle pause dans la macro, le graphique se met à jour etc d'où l'effet d'animation

par contre tu ne peux pas régler la vitesse de l'animation alors qu'avec Application.Wait tu mets le temps de latence que tu veux

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Hello Via,

Tu réponds plus vite que ton ombre !!! :)

Je te remercie pour tes explications claires.

Bonne nuit et au plaisir !

François...
0