Actualisation d'un graphique avant une MsgBox

alnilam

XLDnaute Nouveau
Bonjour,

J'ai une série de données affichée dans un graphique existant sur Excel, et je souhaite n'en conserver que la partie linéaire (de façon visuelle) pour y appliquer une courbe de tendance. J'ai donc fait un Userform demandant les bornes pour la partie à conserver, et la macro m'affiche une seconde série de données avec uniquement la partie linéaire sur le même graphique (avec des marqueurs pleins alors que l'ensemble des données reste affiché en marqueurs vides).
Une fois ces opérations réalisées, je place une MsgBox vbYesNo pour demander si l'utilisateur veut en plus écarter un point supplémentaire qui serait à l'intérieur des bornes, mais pas sur la droite.

Tout va bien, le code fonctionne correctement, sauf au niveau de l'affichage du graphique, qui ne s'actualise qu'après les instructions de la MsgBox effectuées, alors que j'aimerais que la nouvelle série de données s'affiche avant celles-ci.

Sur Excel 2010, j'ai résolu le problème en plaçant au choix l'instruction Workbook.save (astuce trouvée sur un forum, mais pas idéale vu que l'utilisateur n'est pas prévenu de cette opération) ou mieux Application.Screenupdating = True.
Par contre, aucune de ces instructions ne fonctionne avec Excel 2016. J'ai également essayé de passer la construction du graphique dans une autre procédure que j'appelle au bon endroit (en espérant que l'instruction End Sub allait m'afficher ce que je veux), mais ça ne marche pas non plus.

Y aurait-il une façon de résoudre ce problème?

Merci
 

alnilam

XLDnaute Nouveau
Re : Actualisation d'un graphique avant une MsgBox

Bonjour,

Merci pour vos réponses, mais j'ai essayé les 2 solutions et ça ne marche pas.

Par contre j'ai trouvé une solution (pas très élégante, mais efficace) en me rendant compte que l'actualisation se faisait bien à l'intérieur de la boucle de la MsgBox (au cas où on voudrait enlever plusieurs points). Pourtant, là aussi j'ai une succession Graphique / MsgBox.
En jouant avec ça, j'ai créé une boucle inutile pour faire 2 fois le graphique avant la première MsgBox et ça fonctionne.

Dans mon code, la seule différence que je vois, c'est que la première fois je ne fais qu'ajouter des données au graphique, alors qu'au deuxième passage dans la boucle ainsi que quand je refais le graphique dans la boucle de la MsgBox, la série de données avec les marqueurs pleins existe déjà et je commence par la supprimer avant d'en refaire une nouvelle. Est-ce que c'est l'instruction SeriesCollection(2).Delete qui fait que le graphique s'actualise? Mystère...

alnilam
 

Discussions similaires

Réponses
8
Affichages
429

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T