Macro pour extraire des données d’un graphique dans Excel

Résumé

Dans Microsoft Excel, vous pouvez récupérer des données à partir d’un graphique, même lorsque les données se trouvent dans une feuille de calcul ou un classeur externe. Cela est utile dans les situations où le graphique a été créé ou lié à un autre fichier qui n’est pas disponible ou qui a été endommagé d’une manière ou d’une autre. Lorsque les données sources d’un graphique sont perdues, les données peuvent toujours être récupérées à partir du graphique lui-même, à l’aide d’une macro Microsoft Visual Basic pour Applications.

Informations supplémentaires

Microsoft fournit des exemples de programmation à titre d’illustration uniquement, sans garantie expresse ou implicite. Cela inclut, sans y être limité, les garanties implicites de commercialisation et d’adaptation à un but en particulier. Cet article considère que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du Support technique Microsoft peuvent vous expliquer les fonctionnalités d’une procédure particulière, mais ils ne peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques.

L’exemple de macro suivant place les données sources du graphique dans une feuille de calcul appelée « ChartData » dans le classeur actif, en commençant par la première colonne et la première ligne.

  1. Entrez le code de macro suivant dans une feuille de module :

    Sub GetChartValues()
       Dim NumberOfRows As Integer
       Dim X As Object
       Counter = 2
    
       ' Calculate the number of rows of data.
       NumberOfRows = UBound(ActiveChart.SeriesCollection(1).Values)
    
       Worksheets("ChartData").Cells(1, 1) = "X Values"
    
       ' Write x-axis values to worksheet.
       With Worksheets("ChartData")
          .Range(.Cells(2, 1), _
          .Cells(NumberOfRows + 1, 1)) = _
          Application.Transpose(ActiveChart.SeriesCollection(1).XValues)
       End With
    
       ' Loop through all series in the chart and write their values to
       ' the worksheet.
       For Each X In ActiveChart.SeriesCollection
          Worksheets("ChartData").Cells(1, Counter) = X.Name
    
          With Worksheets("ChartData")
             .Range(.Cells(2, Counter), _
             .Cells(NumberOfRows + 1, Counter)) = _
             Application.Transpose(X.Values)
          End With
    
          Counter = Counter + 1
       Next
    
    End Sub
    
  2. Insérez une nouvelle feuille de calcul dans votre classeur et renommez-la « ChartData » (sans les guillemets).

  3. Sélectionnez le graphique à partir duquel vous souhaitez extraire les valeurs de données sous-jacentes.

    Remarque

    Le graphique peut être incorporé dans une feuille de calcul ou dans une feuille de graphique distincte.

  4. Exécutez la macro GetChartValues.

    Les données du graphique sont placées dans la feuille de calcul « ChartData ».

Pour que le graphique soit interactif avec les données récupérées, vous devez lier le graphique à la nouvelle feuille de données au lieu de conserver les liens vers le classeur manquant ou endommagé.

  1. Sélectionnez le graphique, puis cliquez sur une série pour trouver le nom de la feuille à laquelle le graphique est lié dans le classeur endommagé ou manquant. Le nom de la feuille apparaît dans la formule de série dans la barre de formule.

    Remarque

    Le nom de la feuille peut suivre le nom du classeur, qui est placé entre crochets tels que « [Livre1] » et précède le point d’exclamation « ! » (ou apostrophe et point d’exclamation « ' ! ») qui indique le début d’une référence de cellule. Le nom de la feuille inclut uniquement les caractères entre le symbole entre crochets fermés « ] » et le point d’exclamation (ou apostrophe et point d’exclamation). Omettez toute apostrophe si elle se trouve juste avant le point d’exclamation, car une apostrophe ne peut pas être le dernier caractère d’un nom de feuille.

  2. Double-cliquez sur l’onglet de la nouvelle feuille appelée ChartData.

  3. Tapez le nom de la feuille d’origine de l’étape 1 sur le « ChartData » en surbrillance, puis appuyez sur Entrée. Ce nom doit être identique au nom de la feuille du classeur endommagé ou manquant.

  4. Si vous n’avez pas enregistré ce fichier avec le graphique et la feuille de données, enregistrez le fichier.

  5. Dans Excel 2003 ou Excel 2002, cliquez sur Liens dans le menu Modifier, puis cliquez sur Modifier la source.

    Dans Excel 2007, cliquez sur l’onglet Données , sur Modifier les liens dans le groupe Connenctions , puis sur Modifier la source.

  6. Dans la zone Fichier source, sélectionnez le lien à modifier, puis cliquez sur Modifier la source.

  7. Dans la boîte de dialogue Modifier les liens, sélectionnez le nouveau fichier avec les données et le graphique récupérés, puis cliquez sur OK.

  8. Si vous recevez le message d’erreur suivant

    Votre formule contient une référence externe non valide à une feuille de calcul.

    il est probable que le nom de la feuille que vous avez tapé à l’étape 3 n’est pas le même que l’original. Retour à l’étape 1.

  9. La zone Fichier source peut maintenant être vide. Cela indique que tous les liens pointent vers le fichier actif plutôt que vers le fichier manquant ou endommagé. Cliquez sur Fermer.

Le graphique fait désormais référence aux données récupérées sur la feuille renommée du classeur actif et interagit avec celles-ci.