Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2012, 08h58   #1
Invité de passage
 
Inscription : juillet 2009
Messages : 14
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 14
Points : 4
Points : 4
Par défaut VBA et graphique

Bonjour,

Je viens vers vous car je ne trouve de solution nul part pour mon problème.

Je viens de créer une macro qui modifierai automatiquement un graphique mais j'ai une erreur de code (il ne detecte pas mon graphique) :

Code :
1
2
3
4
5
Sheets(1).Select
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.Axes(xlValue).MajorGridlin_es.Select
    ActiveChart.SeriesCollection(1).Name = SerieNOM
    ActiveChart.SeriesCollection(1).Values = SerieValeur
erreur : "L"élément portant ce nom est introuvable."

Le graphique est sur le premier onglet appelé "Graph1", il se nomme bien "Graphique 1".

Si quelqu'un à une idée à m'apporter je suis preneur. Merci.
kocipia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 09h49   #2
Membre régulier
 
Homme Vincent Vincent
Inscription : octobre 2010
Messages : 246
Détails du profil
Informations personnelles :
Nom : Homme Vincent Vincent
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2010
Messages : 246
Points : 83
Points : 83
Bonjour,

Essaye ceci :

Code :
1
2
3
4
5
Sheets(1).Select
    ActiveSheet.ChartObjects("Graph1").Activate'Il faut renvoyer le nom de la feuille (ou onglet)
    ActiveChart.Axes(xlValue).MajorGridlin_es.Select
    ActiveChart.SeriesCollection(1).Name = SerieNOM
    ActiveChart.SeriesCollection(1).Values = SerieValeur
Personnellement je privilégierait une structure du type:

Code :
1
2
3
With Sheet("Graph1")
'Ton code
End with
__________________
Bonne journée,

Cordialement,

Vincent
Vincent32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 14h32   #3
Invité de passage
 
Inscription : juillet 2009
Messages : 14
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 14
Points : 4
Points : 4
Merci Vincent pour cette réponse mais, hélas, ça ne fonctionne toujours pas.

J'ai essayé ces deux codes et les deux me renvoient la même erreur :

Code :
1
2
3
4
5
6
7
 
With Sheets("Graph1")
        .ChartObjects("Graphique 1").Activate
        .Axes(xlValue).MajorGridlin_es.Select
        .SeriesCollection(1).Name = SerieNOM
        .SeriesCollection(1).Values = SerieValeur
    End With
Code :
1
2
3
4
5
6
 
Sheets(2).Select
    Sheets(2).ChartObjects("Graphique 1").Activate
    ActiveChart.Axes(xlValue).MajorGridlin_es.Select
    ActiveChart.SeriesCollection(1).Name = SerieNOM
    ActiveChart.SeriesCollection(1).Values = SerieValeur
Le graphique prend toute la page, cela a t-il de l'importance ?

Je viens de trouver ce code sur le net :

Code :
1
2
3
4
5
6
7
8
9
Sub Comptegraph()
Dim Graph As ChartObject
Dim nbG As Integer
nbG = 0
For Each Graph In Sheets("Graph1").ChartObjects
nbG = 1 + nbG
Next Graph
MsgBox "Nombre de graphique(s) de la feuille active: " & nbG
End Sub
Il comptabilise le nombre de graphique sur un onglet. Pour moi le résultat est de 0 alors que j'en ai bien un ....
kocipia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2012, 14h36   #4
Invité de passage
 
Inscription : juillet 2009
Messages : 14
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 14
Points : 4
Points : 4
Bon j'ai fini par prendre le problème à l'envers, si je ne peut pas modifier le graphique, je modifie les cellules qui sont en source de donnée directement.
kocipia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2012, 14h34   #5
Modérateur
 
Avatar de AlainTech
 
Homme Alain Gerard
Consultant informatique
Inscription : mai 2005
Messages : 3 675
Détails du profil
Informations personnelles :
Nom : Homme Alain Gerard
Âge : 58
Localisation : Belgique

Informations professionnelles :
Activité : Consultant informatique
Secteur : Finance

Informations forums :
Inscription : mai 2005
Messages : 3 675
Points : 7 665
Points : 7 665
Bonjour,

Une piste pour travailler avec un Chart en pleine page:
Code :
1
2
3
4
5
6
Sub test()
  Dim crt1 As Chart
  Set crt1 = Sheets("Graph1")
  crt1.Axes(xlValue).MaximumScale = 10
  crt1.SeriesCollection(1).Name = "Serie 1"
End Sub
Je n'ai pas pu tester tous les paramètres car je suis sous Excel 2003 mais tu devrais pouvoir trouver les syntaxes correspondantes à l'aide de l'enregistreur de macro.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
Pensez aussi à voter pour les réponses qui vous ont aidés.
------------
Je dois beaucoup de mes connaissances à mes erreurs!
AlainTech est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h22.


 
 
 
 
Partenaires

Hébergement Web