Excel - Macro
isagate
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
isagate Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
isagate Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
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 :
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.
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:
- Excel - Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
6 réponses
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
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
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.
- 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.
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)
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)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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