Excel - Macro

Fermé
isagate Messages postés 4 Date d'inscription jeudi 13 février 2014 Statut Membre Dernière intervention 17 février 2014 - 13 févr. 2014 à 16:02
isagate Messages postés 4 Date d'inscription jeudi 13 février 2014 Statut Membre Dernière intervention 17 février 2014 - 17 févr. 2014 à 07:28
Bonjour,

Je suis toute nouvelle sur le forum et novice sur la macro et j'aurais besoin de vos lumière si vous le voulez bien.

A partir d'un tableau excel de + de 100 lignes, je cherche à créer une macro pour obtenir un graphique par ligne.

Je m'explique :
chaque ligne correspond un client (N° - Nom - prénom.....) avec un nombre de produits par mois.
Je souhaite obtenir un graphique d'évolution par client pour l'année.
La finalité est de pouvoir inclure ces résultats ( graphiques ) lors d'un publipostage word.

J'ai réussi à faire la macro suivante :

Sub GraphPS()
'
' GraphPS Macro
'

'
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlLineMarkers
    ActiveChart.SetSourceData Source:=Range("Feuil1!$A$1:$J$130")
    ActiveChart.SetSourceData Source:=Range("A1:I2")
    ActiveChart.SetSourceData Source:=Sheets("chrono").Range("A1:A" & i)
End Sub


A partir de cette macro mon graphique se créer bien mais avec un message d'erreur :
Erreur d'éxécution '9':
L'indice n'appartient pas à selection.

De plus les éléments qui devraient se trouver sur mon axe des absisses, se trouvent dans ma légende....

J'avoue que je suis completement dépassée.

Pourriez-vous me venir en aide ?
Je vous remercie vivement.

Bonne fin de journée.
A voir également:

6 réponses

ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 429
13 févr. 2014 à 16:46
Bonjour

1. sur quelle instruction se produit l'erreur?
2. Il y a trois affectations différentes en fin de procédure aux données source du graphique, seule la dernière sera prise en compte
3. aucune valeur n'est affectée à la variable i de la dernière ligne, donc i=0

4. Peux tu envoyer une partie de ton classeur anonymisée et au format excel 2003 sur cjoint.com et joindre le lien obtenu à ton prochain message

Cordialement
0
isagate Messages postés 4 Date d'inscription jeudi 13 février 2014 Statut Membre Dernière intervention 17 février 2014
14 févr. 2014 à 07:58
Bonjour,

- l'erreur se fait sur la dernier ligne de ma macro

voici le lien https://www.cjoint.com/?3Boh1MdBR6M .
Merci pour votre aide.

Bonne journée.
0
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 429
Modifié par ccm81 le 14/02/2014 à 11:26
1. - l'erreur se fait sur la dernier ligne de ma macro
C'est bien ce que je te disais (point 3) la variable i n'a pas de valeur attribuée donc vaut 0 et la plage "A1:A" & i est la plage A1:A0 ce qui provoque une erreur
Il te faut donc attribuer à i une valeur
ex1: i = 10 si la plage est A:A10
ex2. si i est la dernière ligne non vide de la colonne A
i = Sheets("chrono").Range("A" & Rows.Count).End(xlUp).Row

2. ton fichier n'est pas au format excel 2003 je ne peux pas le lire (fichier/enregistrer sous/type ... xls)
0
isagate Messages postés 4 Date d'inscription jeudi 13 février 2014 Statut Membre Dernière intervention 17 février 2014
14 févr. 2014 à 11:57
https://www.cjoint.com/?3Bol4coNsKW

désolée ...voici le nouveau fichier.
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10907 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 janvier 2025 2 429
Modifié par ccm81 le 14/02/2014 à 13:42
Deux petites remarques avant de continuer
1. ActiveChart.SetSourceData Source:=Sheets("chrono").Range("A1:A" & i)
il n'y a pas de feuille "chrono" dans ton fichier, donc, normal que ça plante,
sans compter la valeur de i

2. Si j'ai compris, tu veux faire un graphique par ligne soit 129 graphiques
Créer un graphique avec une macro, c'est très lourd, en effet, il te faut programmer toues les caractéristiques de ton graphique: taille, couleurs, polices, marques, etc ... et ça, je ne me le sens pas
Je pense que le plus simple serait de fabriquer un graphique bien fignolé correspondant à la première ligne de données (de la feuille Feuil1, StatPS ?)
la macro ferait alors les copies de ce graphique (dans quelle feuille ?)
Un truc de ce genre https://www.cjoint.com/?3Bonk0nCLqi
Si ça te va, tu fais ce graphique, penses aus titre, légendes, quadrillages, taille, etc ... et tu t'inspire de mon exemple ou tu me renvoies le fichier
0
isagate Messages postés 4 Date d'inscription jeudi 13 février 2014 Statut Membre Dernière intervention 17 février 2014
17 févr. 2014 à 07:28
Bonjour,

Je te remercie beaucoup du coup de pouce. Je pense effectivement partir sur la deuxième solution.
Merci et bonne journée.
0