Création rapide (automatisée) de graphique

Bonjour,

J'utilise des tableaux extrêmement volumineux sous Excel (du genre plusieurs milliers de lignes et des centaines de colonnes, le tout sous plusieurs onglets).

Ce sont tout simplement des stats. Et j'ai besoin de créer des graphiques pour une partie des lignes.

Problème 1: je suis obligé de passer par Excel.

Problème 2: je ne peux pas me servir de tableau croisés dynamiques, ayant une présentation particulière à respecter.

Problème 3: je ne fais pas de VBA (donc gros problème).

Donc je cherche à créer automatiquement un graphique.

J'ai enregistré mon modèle de "format", donc ça, c'est bon.

En revanche, en passant par l'enregistreur de Macro, les graphiques qui vont être créés quand j'utilise le raccourci seront toujours le même et unique graphique.

Ma méthode: je sélectionne la ligne / les lignes pour faire mon graphique. Là, je lance la macro (ici Ctrl+W). Et le graphique est créé dans l'onglet "graphique".

Pas de chance, donc, vu que n'importe quelle ligne me fait l'équivalent d'un copier coller du graphique. En plus j'ai un bug.

Voilà le code:

Sub Macro1()
'
' Macro1 Macro
'
' Touche de raccourci du clavier: Ctrl+Maj+G
'
    Charts.Add
    ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:="DCPP_EST"
    ActiveChart.SetSourceData Source:=Sheets("DCPP EST Global").Range("A7:M7"), _
        PlotBy:=xlRows
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Graph"
    With ActiveChart.Axes(xlCategory)
        .HasMajorGridlines = False
        .HasMinorGridlines = False
    End With
    With ActiveChart.Axes(xlValue)
        .HasMajorGridlines = False
        .HasMinorGridlines = False
    End With
    ActiveSheet.Shapes("Graphique 8").IncrementLeft -123#
    ActiveSheet.Shapes("Graphique 8").IncrementTop 129#
    ActiveSheet.ChartObjects("Graphique 8").Activate
End Sub

Je suis sur Excel 2000.

Merci d'avance, si quelqu'un peut m'aider, ça m'évitera de créer un bon millier de graphiques à la main :/

Cordialement,

Edit

J'oubliais, je ne peux hélas pas joindre de fichier (données de mon entreprise.)

-- 28 Mai 2010, 10:49 --

Si j'ai tout compris (vu que je programme un peu sur un autre langage), je dois remplacer:

ActiveChart.SetSourceData Source:=Sheets("DCPP EST Global").Range("A7:M7"), _
PlotBy:=xlRows
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Graph"

Par quelque chose du genre:

ActiveChart.SetSourceData Source:=Sheets("OngletDeLaSelectionEnCours").Range("PlageEnCours"), _
        PlotBy:=xlRows
    ActiveChart.Location Where:=xlLocationAsObject, Name:="AttribuerUnNom"

Ma question plus précise donc c'est: comment déclarer les "variables" que sont OngletDeLaSelectionEnCours, PlageEnCours et AttribuerUnNom?

Merci d'avance.

Cordialement,

-- 28 Mai 2010, 10:50 --

Up: message édité avec des précisions. Merci d'avance pour votre aide.

Bonjour,

Problème 2: je ne peux pas me servir de tableau croisés dynamiques, ayant une présentation particulière à respecter.

Peut-être peux-tu quand même créer un TCD sur une autre feuille, indépendamment de la présentation à respecter:

une base

un tableau de présentation lié à la base

un TCD lié à la base

Tes graphiques seraient trés facile à faire ensuite.

Amicalement,

Elfi

Rechercher des sujets similaires à "creation rapide automatisee graphique"