web-dev-qa-db-fra.com

Le graphique ne sera pas mis à jour dans Excel (2007)

J'ai un document Excel (2007) avec un graphique (colonne en cluster) qui obtient sa série de données à partir de cellules contenant des valeurs calculées

Les valeurs calculées ne changent jamais directement, mais uniquement à la suite du changement d'autres cellules de la feuille.

Lorsque je modifie d'autres cellules de la feuille, les cellules de la série de données sont recalculées et affichent de nouvelles valeurs - mais le graphique basé sur cette série de données refuse de se mettre à jour automatiquement.

Je peux obtenir la mise à jour du graphique en sauvegardant/fermant, ou en basculant l'un des paramètres (comme inverser l'axe x/y puis en le rétablissant), ou en sélectionnant de nouveau la série de données

Chaque solution trouvée en ligne ne fonctionne pas

  • Oui, le calcul est réglé sur Automatique
  • Ctrl + Alt + F9 met tout à jour correctement, SAUF le graphique
  • J'ai recréé le graphique plusieurs fois et sur différents ordinateurs
  • J'ai essayé des scripts VBA comme:

    Application.Calculate
    Application.CalculateFull
    Application.CalculateFullRebuild
    ActiveWorkbook.RefreshAll
    DoEvents 

Aucune de ces mises à jour ou actualiser le graphique

Je remarque que si je tape sur ma série de données, les chiffres réels au lieu des calculs, le graphique sera mis à jour - c'est comme si Excel ne voulait pas reconnaître les modifications dans les calculs.

Est-ce que quelqu'un a déjà expérimenté cela ou sait ce que je pourrais faire pour résoudre le problème? Merci

18
samJL

Je suis tombé sur le même problème - je ne sais pas pourquoi, et quand cela se produit, la seule façon pour que le graphique impose une mise à jour forcée consiste à modifier quelque chose dans la définition du graphique lui-même, ce qui peut facilement être fait via VBA, comme dans:

Dim C As ChartObject: Set C = Me.ChartObjects("chart name")
C.Chart.ChartTitle.Text = C.Chart.ChartTitle.Text + "1"

Il y a peut-être une meilleure réponse qui va au fond du problème - mais j'ai pensé que cela pourrait aider. En travaillant sur la feuille, je ferais un rapide Ctrl-X, Ctrl-V sur une partie du graphique (ou le tout) pour forcer le graphique à se mettre à jour.

4
tpascale

C'est la seule chose que j'ai trouvée pour mettre à jour régulièrement un graphique. Cela supprime la cause première du problème (je suppose): les données de la série sont mises en cache dans le graphique. En forçant le graphique à réévaluer la série, nous effaçons le cache.

' Force the charts to update
Set sht = ActiveSheet
For Each co In sht.ChartObjects
    co.Activate
    For Each sc In ActiveChart.SeriesCollection
        sc.Select
        temp = sc.Formula
        sc.Formula = "=SERIES(,,1,1)"
        sc.Formula = temp
    Next sc
Next co
12
Jason

J'ai eu ce problème en générant plus de 1000 graphiques via VBA. J'ai généré les graphiques et attribué une plage à leurs séries. Cependant, lorsque la feuille recalculée, les graphiques ne se mettaient pas à jour car les plages de données changeaient de valeurs.

Solution -> J'ai désactivé WrapText avant la boucle For ... Next qui génère les graphiques, puis je l'ai réactivé après la boucle.

Workbooks(x).Worksheets(x).Cells.WrapText=False 

et après...

Workbooks(x).Worksheets(x).Cells.WrapText=True

C'est une excellente solution car il met à jour plus de 1000 graphiques en même temps, sans les parcourir en boucle et sans modifier quelque chose individuellement.

De plus, je ne sais pas vraiment pourquoi cela fonctionne; Je suppose que lorsque WrapText modifie une propriété de la plage de données, le graphique est mis à jour, bien que je n’aie aucune documentation à ce sujet. 

4
João

J'ai eu le même problème avec un graphique à secteurs simple. 

Aucune des macros que j'ai essayées n'a fonctionné. Rien n'a fonctionné sur le graphique cut, pasting, relocating

La solution que j'ai trouvée consistait à modifier le texte du graphique, à supprimer les étiquettes, puis à sélectionner à nouveau les étiquettes. Une fois qu'ils sont réapparus, ils ont été mis à jour.

4
pb33

Il s'agit d'un bogue absurde qui entrave considérablement mon travail avec Excel. 

En me basant sur les travaux postés, je suis arrivé aux actions suivantes comme moyen simple d'aller de l'avant ...

Cliquez sur le graphique que vous voulez mettre à jour - Sélectionnez CTRL-X, CTRL-V pour couper et coller le graphique à la place ... il sera forcé de mettre à jour.

3
Marc

Cela fonctionne très bien pour moi: il fait basculer les axes sur tous les graphiques puis les retourne en arrière, ce qui les oblige à se régénérer sans aucun changement.

'Refresh all charts
For Each mysheet In ActiveWorkbook.Sheets
    mysheet.Activate
    For Each mychart In ActiveSheet.ChartObjects
        mychart.Activate
        ActiveChart.PlotArea.Select
        ActiveChart.PlotBy = xlRows
        ActiveChart.PlotBy = xlColumns
        ActiveChart.PlotBy = xlRows
    Next
Next
2
Sam

C'est un bug connu d'Excel ...

La solution la plus rapide et la plus rapide est le Columns.AutoFit - Trick:

Sub Update_Charts()
    Application.ScreenUpdating = False
    Temp = ActiveCell.ColumnWidth
    ActiveCell.Columns.AutoFit
    ActiveCell.ColumnWidth = Temp
    Application.ScreenUpdating = True
End Sub
2
Porsche9II

J'ai fait face au même problème. La question est due à la restriction dans pas. de formules calculées dans votre feuille. vous pouvez le résoudre de deux manières:

Recalculer manuellement:

Press SHEFT + F9

Macro pour forcer le recalcul: Ajouter le code ci-dessous à la fin de la fonction qui modifie les données

Activesheet.Calculate

J'ai trouvé la solution: A partir des options Excel, veillez à modifier les options de calcul comme indiqué ci-dessous. Cela changeait parfois en manuel après un travail lourd dans Excel.

Auto Calculation

2
Ayman Al-Absi

J'ai un autre problème de rafraîchissement des graphiques. Lors de la génération automatique des graphiques, certains graphiques apparaissent et mettent en cache le texte de la feuille. Il se trouve qu’il s’agit d’un problème d’actualisation des graphiques générés. Lorsque je fais un zoom avant ou arrière, je peux obtenir les résultats escomptés. Donc, je poste la solution ici si cela intéresse quelqu'un . Par programmation, j'ai ajouté ceci après avoir généré des graphiques:

ActiveWindow.Zoom = ActiveWindow.Zoom + 1
ActiveWindow.Zoom = ActiveWindow.Zoom - 1
2
toan

Ok j'ai une solution, vraiment ....

J'ai constaté que le problème avec la non mise à jour de mes graphiques s'est produit peu de temps après avoir masqué certaines colonnes de données alimentant le graphique, et j'ai coché la case "Afficher les données masquées dans les lignes et les colonnes" dans la zone "msg" Sélectionner la source de données du graphique). 

J'ai constaté que si je retournais dans la zone de message "Sélectionner la source de données" et que je décochais/revérifiais "Afficher les données masquées dans les lignes et les colonnes", le graphique était actualisé.

Par programmation, j'ai inséré ce qui suit dans une macro à laquelle j'ai lié un bouton. Il actualise tous mes graphiques assez rapidement pour permettre de contourner un bogue connu. Ce code suppose un graphique par feuille de calcul mais un autre pour l'instruction des graphiques 1 à N peut être ajouté si vous le souhaitez:

Sub RefreshCharts()

    Application.ScreenUpdating = False

For I = 1 To ActiveWorkbook.Worksheets.Count

Worksheets(I).Activate

    ActiveSheet.ChartObjects("Chart 1").Activate

    ActiveChart.PlotVisibleOnly = True

    ActiveChart.PlotVisibleOnly = False

Next I

    Application.ScreenUpdating = True

End Sub
1
user3063819

Ce problème est ridicule! Aucune solution ne fonctionnait pour moi en 2010, mais j'ai basé la mienne sur celle de tpascale:

Dim C As ChartObject
Set C = ActiveSheet.ChartObjects("CTR_Chart")
C.Chart.SetSourceData Source:=Range( _
    "KeywordBreakdown!$A$8:$A$12,KeywordBreakdown!$E$8:$E$12")

Simplement redéfini la plage de données source. Si c'est une plage nommée, cela pourrait être raisonnablement propre. Je suppose que la meilleure solution consiste à essayer de modifier différentes propriétés du graphique jusqu'à ce qu'il soit actualisé.

1
Charles Offenbacher

J'ai eu ce problème et j'ai constaté qu'il était causé par l'exécution simultanée de deux applications Excel. Si je fermais tout et ouvrais juste le fichier, j'avais des problèmes avec les graphiques où ils devaient être aussi dynamiques que possible. Peut-être que cela aide

1
Greg

Nous avons trouvé une solution qui n'implique pas VBA: multiplier un élément de la plage de données du graphique par TODAY()-TODAY()+1.

Même si la plage recalculait sans cela, la nature volatile de TODAY() lui donne en quelque sorte un boost supplémentaire qui déclenche le recalcul du graphique.

1
vjp07042

Depuis Excel 2013, la méthode Chart.Refreh ( https://msdn.Microsoft.com/de-de/library/office/ff198180.aspx ) a fonctionné pour moi:

Dim cht As ChartObject
For Each cht In ThisWorkbook.ActiveSheet.ChartObjects
    cht.Chart.Refresh
Next cht    
1
DaveD

Cela a fonctionné pour moi, il coupe et recompose les graphiques sur la feuille de calcul active. Je me suis basé sur le code de Jason et un article de blog j'ai trouvé une recherche Google rapide. 

Sub RepasteCharts()

Dim StrTemp As String
Dim IntTempTop As Integer
Dim IntTempLeft As Integer


Set sht = ActiveSheet

For Each co In sht.ChartObjects
    'Activate the chart
    co.Activate

    'Grab current position on worksheet
    IntTempTop = ActiveChart.Parent.Top
    IntTempLeft = ActiveChart.Parent.Left

    'Cut and paste
    ActiveChart.Parent.Cut
    ActiveSheet.Paste

    'Reposition to original position
    ActiveChart.Parent.Top = IntTempTop
    ActiveChart.Parent.Left = IntTempLeft
Next co


End Sub
1
Ryan Bradley

Comme j'ai essayé à peu près TOUTES les solutions présentées et qu'aucune ne fonctionnant dans mon cas, je vais ajouter mes deux cents ici aussi. Espérons que cela aide quelqu'un d'autre.

Le consensus sur cette question semble être que nous devons obliger Excel à redessiner le graphique, car il ne le fait pas quand il le devrait.

Ma solution était de supprimer les données de l'axe des X et de ne les remplacer par rien avant de les modifier comme je le voulais. Voici mon code:

With wsReport
    .Activate
    .ChartObjects(1).Activate
    ActiveChart.FullSeriesCollection(1).XValues = "=" 'Kill data here
        .Range("A1").Select 'Forwhatever reason a Select statement was needed
        .ChartObjects(1).Activate
        ActiveChart.FullSeriesCollection(1).XValues = "=tblRef[Secs]"
End With
End Sub
0
rohrl77

Pour moi, le fait de désactiver d'abord, puis de réactiver le calcul (par exemple pour la feuille de calcul active) a résolu le problème:

ThisWorkbook.ActiveSheet.EnableCalculation = False
ThisWorkbook.ActiveSheet.EnableCalculation = True

Peut-être exécuter deux fois de suite . Tous les graphiques de la feuille de travail sont entièrement mis à jour.

0
DaveD

Je viens de passer une demi-journée à ce sujet moi-même.

J'ai une macro qui modifie les valeurs correspondant aux données d'un graphique. Tout fonctionnait bien dans Excel 2003, mais dans Excel 2007, le graphique semble perdre toute connexion à ses données, bien que la modification manuelle des valeurs de données dans deux colonnes ait déclenché un recalcul.

Ma solution a été de rendre tous les graphiques de la feuille active invisibles avant le changement de données, puis de les rendre à nouveau visibles et d'appeler l'actualisation du graphique pour obtenir une mesure exacte. (Il semble que seuls les graphiques visibles posent ce problème de mise à jour).

Cela fonctionne pour moi et traite également des problèmes similaires avec les graphiques ainsi que les objets de graphique. L'actualisation peut ne pas être nécessaire - davantage de tests sont nécessaires.

Dim chrt As Chart
Dim chrtVis As XlSheetVisibility
Dim sht As Worksheet
Dim bChartVisible() As Boolean
Dim iCount As Long

Dim co As ChartObject

On Error Resume Next

Set chrt = ActiveChart

If Not chrt Is Nothing Then
        chrtVis = chrt.Visible
        chrt.Visible = xlSheetHidden
        End If

Set sht = ActiveSheet

If Not sht Is Nothing Then
        ReDim bChartVisible(1 To sht.ChartObjects.Count) As Boolean
        iCount = 1
        For Each co In sht.ChartObjects
            bChartVisible(iCount) = co.Visible
            co.Visible = False
            iCount = iCount + 1
            Next co
        End If

FAITES MACRO STUFF QUI MODIFIE LES DONNÉES  

If Not sht Is Nothing Then
        iCount = 1
        For Each co In sht.ChartObjects
            co.Visible = bChartVisible(iCount)
            co.Chart.Refresh
            iCount = iCount + 1
        Next co
        End If

If Not chrt Is Nothing Then
        chrt.Visible = chrtVis 
        chrt.Refresh
        If chrt.Visible Then
            chrt.Select
            End If
        End If

On Error GoTo 0
0
Tim Read

Lors de la modification des valeurs des données source, le graphique n'était pas mis à jour en conséquence. Juste fermé toutes les instances d'Excel et redémarré, le problème a disparu.

0
bharat1010

J'avais un problème similaire aujourd'hui avec un fichier 2010 avec un grand nombre de formules et plusieurs connexions de base de données. L'axe du graphique qui ne mettait pas à jour les plages de références avec des colonnes masquées, semblable aux autres de cette chaîne, et les étiquettes affichent le mois et l'année "MMM-AA" des données dynamiques. J'ai essayé toutes les solutions répertoriées, à l'exception des options VBA, que je préférerais résoudre sans code.

J'ai pu résoudre les problèmes en encapsulant mes dates (les étiquettes d'axe) dans une formule TEXT en tant que telle: = TEXT (A10, "MMM-YY"). Et tout se met immédiatement à jour lorsque les valeurs changent. Joyeux jours encore !!! 

Après avoir lu les problèmes des autres contributeurs ci-dessus, j'ai commencé à penser que les graphiques avaient des problèmes avec le type de données DATE, et que la conversion des valeurs en texte avec la fonction TEXT a résolu mon problème. Espérons que cela puisse vous aider aussi. Modifiez simplement le format entre guillemets (deuxième argument de la fonction TEXT) pour répondre à vos besoins.

0
Daniel_DeHaven

Mes deux cents pour ce problème - j'avais un problème similaire avec un graphique sur un rapport Access 2010. J'étais en train de créer dynamiquement un querydef, en le définissant comme source de lignes dans mon rapport, puis en essayant de parcourir chaque série et de définir les propriétés de chaque série. Ce que j’ai finalement dû faire, c’est de décomposer la création de querydef et le paramètre de propriété en sous-marins distincts. De plus, je mets un 

SendKeys ("{DOWN}")
SendKeys ("{UP}")

au bas de chacun des deux sous-marins. 

0
nwhaught

J'ai eu le même problème lors de la réalisation d'un didacticiel (très frustrant lorsque vous suivez les étapes et que vous n'obtenez pas le résultat escompté).

Le tutoriel pour créer un graphique à secteurs voulait que je sélectionne la plage A3:A10, puis que je sélectionne également la plage non adjacente E3:E10. Je l'ai fait J'ai le tableau.

Il m'a ensuite demandé de modifier une valeur et de regarder le pourcentage de changement, puis de regarder le graphique à secteurs et de voir la mise à jour.

Il n'a pas mis à jour.

J'ai regardé la source de données pour le camembert, et la plage était bizarre. La plage A3:A10 a été correctement notée, mais la référence de cellule E10 a été répétée plusieurs fois et toutes les cellules E ont été répertoriées dans un ordre aléatoire. Il ressemblait 

=SERIES(,(Revenue!$A$3:$A$10,Revenue!$E$3,Revenue!$E$10,Revenue!$E$10,Revenue!$E$10,Revenue!$E$10,Revenue!$E$10,Revenue!$E$9,Revenue!$E$8,Revenue!$E$7,Revenue!$E$6,Revenue!$E$5,Revenue!$E$4),1

J'ai changé la source de données pour lire:

=SERIES(,Revenue!$A$3:$A$10,Revenue!$E$3:$E$10,1)

Problème résolu. Parfois, il s’agit de nettoyer votre code afin que le calculateur ait moins à trier.

0
JBeez

Activez simplement la feuille où se trouve le graphique:

Sheets(1).Activate

et votre problème disparaît. 

J'ai eu le même problème et aucune des choses que vous avez mentionnées en question n'a fonctionné pour moi jusqu'à ce que j'active juste la feuille. La réponse acceptée n'a pas fonctionné pour moi non plus. 

Sinon, vous pouvez faire:

ActiveCell.Activate
0
Przemyslaw Remin

Je viens d'avoir le même problème, et j'ai également constaté que la ligne ne s'afficherait que si je mettais des données incorrectes (caractères au lieu de chiffres). Cela a provoqué l'apparition de la ligne, mais le retour à des données valides l'a fait disparaître à nouveau. 

Ce que j'ai trouvé est que si je double-cliquais la ligne (apparaissant avec de mauvaises données), cela me montrait que c'était sur l'axe SECONDAIRE pour une raison quelconque. Changer cela en axe PRIMARY a résolu mon problème.

0
Mac_Biodiesel

J'ai aussi lutté avec ce problème. Enfin résolu en recalculant la feuille qui contient les données du graphique APRÈS que la fonction personnalisée a recalculé. Donc, dans la feuille 1, j'ai une cellule qui contient

=ComputeScore()

Dans le module VBA, la fonction est définie sur Volatile pour garantir que ComputeScore () est exécuté après toute mise à jour de la feuille de calcul.

Function ComputeScore() As Double
    Application.Volatile True
    . . . do some stuff to get a total . . .
    ComputeScore = theTotal
End Function

Ensuite, dans la VBA de la feuille 1, ceci:

Private Sub Worksheet_Calculate()
    'Recalculate the charts data page to force the charts to update.
    'Otherwise, they don't update until the next change to a sheet, and so
    'chart data is always one update behind the user's data changes.
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.Calculation = xlManual
    Sheets("Charts Data").Calculate
    Application.Calculation = xlAutomatic
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

Ainsi, la feuille nommée Charts Data, qui fait référence à la cellule de fonction personnalisée de la feuille 1, effectuera un recalcul APRÈS que la fonction ComputeScore () ait mis à jour la cellule de la feuille 1, puisque Worksheet_Calculate () se déclenche après la recalcul ComputeScore (). Ce cycle supplémentaire de calcul des données du graphique entraîne la mise à jour immédiate du graphique, plutôt que tard ou pas du tout. Le paramètre EnableEvents et xlManual évite que des boucles de recalcul infinies et d'autres problèmes d'événement se produisent.

0
RealHandy

J'ai eu le même problème avec mon travail la semaine dernière lorsque j'ai ajouté quelques calculs supplémentaires à ma feuille. Après cela, l'utilisation des boutons radio pour sélectionner les données à présenter sur les graphiques ne mettait plus à jour les graphiques. 

La meilleure explication que j’ai pu trouver jusqu’à présent est la suivante: http://support.Microsoft.com/kb/243495

Si j'ai bien compris, s'il existe plus de 65536 formules ayant une autre cellule comme référence dans votre fichier, Excel commence à optimiser le calcul et, dans certains cas, les graphiques ne sont plus mis à jour correctement.

S'il existe une solution de contournement pour cela sans utiliser de macros VBA, je serais heureux de l'entendre (vous ne pouvez pas les utiliser car les fichiers doivent être partagés via SharePoint sans macros VBA).

0
Vesa Siltanen

J'ai eu le même problème que l'affiche. En gros, j’exécute un tableau de bord et plusieurs types de plages nommées contenant des valeurs renvoyées par certaines fonctions définies par l'utilisateur. Dans le tableau de bord, certains diagrammes à secteurs avec des séries de données liées aux cellules contenant ces plages nommées (le problème se produit également si les cellules cibles de la série de données contiennent directement les fonctions définies par l'utilisateur, en contournant les plages nommées).

Je change une valeur de cellule qui contient, par exemple, la plage de dates sur laquelle le tableau de bord est basé, et les plages nommées et les fichiers UDF sont forcés à calculer. Cependant, les graphiques à secteurs ne sont pas mis à jour - pour une raison quelconque, d'autres types de graphiques le sont. Et au fait, ce sont des objets graphiques, pas des feuilles graphiques. Quoi qu'il en soit, passons à la solution:

Je ne voulais pas changer visiblement le titre du graphique ou un autre aspect de celui-ci et, de toute façon, j'ai remarqué que cela ne mettait pas à jour mes graphiques de façon constante. Parfois, la première fois que je déclenchais le calcul, les tartes étaient mis à jour, mais les calculs suivants ne le seraient pas. J'ai toutefois remarqué que chaque fois que je modifiais le code, mon tableau de bord fonctionnait. Ainsi:

Solution:

With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule

     .AddFromString "'test"
     .DeleteLines 1

End With

Si vous utilisez le module Classeur (je ne l'étais pas dans ce cas), créez simplement un nouveau module et faites-le référence.

0
Matt M

Pour moi, la macro n'a pas mis à jour l'axe des abscisses pour toutes les séries, mais uniquement pour la première. La solution que j’ai trouvée était de mettre à jour l’axe des abscisses pour toutes les séries puis de refondre (j’avais aussi du code pour changer le format de l’axe des x, mais je ne pense pas que ce soit le problème).

ActiveSheet.ChartObjects("Diagram 7").Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.SeriesCollection(1).XValues = "={""""}"
ActiveChart.SeriesCollection(1).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(2).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(3).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(4).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(5).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(6).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(7).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(8).XValues = "=YYY!$BQ$85:$BQ$8844"

Macro complète;

Sub TEST()
'
' TEST Makro
'
ActiveSheet.ChartObjects("Diagram 7").Activate
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.NumberFormat = "@"
ActiveSheet.ChartObjects("Diagram 7").Activate
ActiveChart.SeriesCollection(1).XValues = "={""""}"
ActiveChart.SeriesCollection(1).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(2).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(3).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(4).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(5).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(6).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(7).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.SeriesCollection(8).XValues = "=YYY!$BQ$85:$BQ$8844"
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlCategory).TickMarkSpacing = 730
ActiveChart.Axes(xlCategory).TickLabelSpacing = 730
End Sub
0
Chris

Les graphiques ne "sentent" pas les changements avec l'insertion directe de valeurs dans les cellules source avec macro. Vous devez envoyer des valeurs en dehors des cellules du graphique, et après cela, utilisez un code comme celui-ci.

Feuilles de calcul ("feuille1"). Plage ("A1: K1") = Feuilles de travail ("feuille2"). Plage ("A4: K4"). Valeur

0
Seyhan Mutlu

Ce qui a fonctionné pour moi a été d’utiliser une macro pour insérer/supprimer une colonne dans le tableau de données du graphique. Cela obligera le graphique à mettre à jour la sélection de données.

J'ai trouvé que c'était le moyen le plus rapide de le réparer. 

0
vanessa06106

Pour mettre à jour un graphique, placez simplement une feuille ("Sheet1"). Calculez dans votre sous-procédure. Si vous avez plus de graphiques sur différents onglets, créez simplement une boucle de feuille de calcul.

0
Missnlink

Cela peut paraître extrêmement basique, mais je viens d’essayer de calculer manuellement sur la feuille de calcul où se trouvaient les graphiques (en appuyant sur F9) et cela a fonctionné! Le code VBA pour cela est simplement:

Calculer

;) 

0
user3012511

J'ai eu un problème similaire - Les graphiques ne semblaient pas se mettre à jour. J'ai essayé à peu près tout sur ce fil sans aucune chance. J'ai finalement réalisé que les graphiques que je copiais et collais étaient liés aux données source. C'est pourquoi ils affichaient tous les mêmes résultats. 

Assurez-vous de copier et de coller des images avant d'exécuter tous les autres mouvements ...

0
Matt R.