De nombreux diagrammes sont conservés pendant des mois, voire des années, et sont continuellement développés. L’expansion des diagrammes est une tâche difficile, car d’une part, vous devez développer la série de données individuellement et d’autre part, vous devez faire attention à ne pas entrer de références de cellule incorrectes. Une solution Excel VBA a été créée pour cette tâche. Imaginez que vous marquez la zone de données qui doit être affichée dans un diagramme et que vous démarrez une macro qui développe dynamiquement le diagramme existant. Cette fonctionnalité rappelle fortement le schéma standard, dans lequel vous marquez également la zone de données puis la touche | F11 | à presser. Avec cette norme
l’inconvénient est que vous devez créer le diagramme encore et encore, puis effectuer manuellement tout autre formatage sur le diagramme. De plus, une nouvelle feuille de diagramme est insérée pour cette solution standard.
l’inconvénient est que vous devez créer le diagramme encore et encore, puis effectuer manuellement tout autre formatage sur le diagramme. De plus, une nouvelle feuille de diagramme est insérée pour cette solution standard.
Donc, si vous voulez développer de manière flexible un diagramme existant et incorporé, la meilleure façon de développer des graphiques est de nommer la zone de données. Premièrement, cela élimine beaucoup de paperasse et deuxièmement, cela facilite la lecture de la macro.
Sub EtendreSerieDonnees() Dim FeuilleCal As Worksheet Dim s As String s = ActiveSheet.Name Set FeuilleCal = ActiveSheet On Error Resume Next ActiveWorkbook.Names("ZoneDiapositive").Delete ActiveWorkbook.Names.Add _ Name:="ZoneDiapositive", RefersToR1C1:=Selection FeuilleCal.ChartObjects(1).Select ActiveChart.SetSourceData _ Source:=Sheets(s).Range("ZoneDiapositive") End Sub
Commentaires:
■ Définissez d’abord la variable FeuilleCal du type Worksheet et la variable s type String.
■ Définissez d’abord la variable FeuilleCal du type Worksheet et la variable s type String.
■Enregistrez ensuite le nom de la table sur laquelle se trouve le diagramme intégré dans la variable s.
■ Puisque vous souhaitez nommer la zone de données qui entre dans votre diagramme incorporé, supprimez tout nom existant à l’aide de la méthode Delete.
■ Par mesure de sécurité, insérez l’instruction On Error devant la ligne avec la commande Delete. Cette instruction garantit que la macro ne se bloque pas si aucun nom n’a été attribué à la zone de données.
■ À l’étape suivante, utilisez la méthode Add pour ajouter un nouveau nom qui doit contenir la zone de données du diagramme. En argument, transmettez le nom et la référence de cellule à laquelle le nom doit faire référence à la méthode Add.
■ Dans l’argument RefersToR1C1, vous faites référence aux cellules actuellement sélectionnées, autrement dit, avant de démarrer la macro, vous devez marquer la zone de données à inclure dans le diagramme. ■Après avoir attribué le nom, sélectionnez le diagramme incorporé et utilisez la méthode SetSourceData.
Il prend l’argument Source. Il contient la zone qui contient les données source du diagramme. Vous remplissez cet argument avec le contenu de la variable s, qui contient le nom de la table et le nom précédemment attribué.