Mise à jour d'un graphique dans Excel 365
Résolu
FPI
-
FPI -
FPI -
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.
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:
- Mise à jour d'un graphique dans Excel 365
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise en forme conditionnelle excel - Guide
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Liste déroulante excel - Guide
5 réponses
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
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
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
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.
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.
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.
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.
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question