Ajouter une barre sur un nuage de point
Résolu/Fermé
swarmill
Messages postés
10
Date d'inscription
mercredi 18 avril 2018
Statut
Membre
Dernière intervention
22 mai 2018
-
18 avril 2018 à 16:19
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 - 23 avril 2018 à 13:56
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 - 23 avril 2018 à 13:56
A voir également:
- Ajouter une barre sur un nuage de point
- Point de restauration - Guide
- Ajouter un compte gmail - Guide
- Point de suite word - Guide
- Ajouter un compte whatsapp - Guide
- Ajouter une signature sur word - Guide
9 réponses
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
19 avril 2018 à 15:26
19 avril 2018 à 15:26
Bonjour à tous les deux
Un petit exemple à adapter
https://www.cjoint.com/c/HDtnz5qBjrB
Cdlmnt
Un petit exemple à adapter
https://www.cjoint.com/c/HDtnz5qBjrB
Cdlmnt
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
Modifié le 18 avril 2018 à 20:37
Modifié le 18 avril 2018 à 20:37
bonsoir, je ne comprends pas "je dois mettre 180 sur le code".
utilises-tu Excel?
utilises-tu Excel?
yg_be
Messages postés
22724
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
25 avril 2024
1 476
18 avril 2018 à 21:12
18 avril 2018 à 21:12
bonsoir, quand tu utilises AddConnector, les positions que tu spécifies n'ont rien à voir avec les valeurs en abscisse et en ordonnée, ce sont des positions en points dans la zone de graphe.
plutôt que de manipuler le graphe comme un dessin, je suggère plutôt, soit de te limiter à ce que Excel te permet de faire avec un graphe, soit de faire le dessin complet par programme, sans utiliser le graphe de Excel.
plutôt que de manipuler le graphe comme un dessin, je suggère plutôt, soit de te limiter à ce que Excel te permet de faire avec un graphe, soit de faire le dessin complet par programme, sans utiliser le graphe de Excel.
swarmill
Messages postés
10
Date d'inscription
mercredi 18 avril 2018
Statut
Membre
Dernière intervention
22 mai 2018
Modifié le 19 avril 2018 à 11:14
Modifié le 19 avril 2018 à 11:14
Bonjour,
Tout d'abord merci de votre aide yg_be.
par exemple, pour mettre une barre sur la valeur 28 en abscisse je dois écrire
ActiveChart.Shapes.AddConnector(msoConnectorStraight, 285, 31, 285, 173).Select
La valeur 285 me permettant de placer la barre sur la valeur 28... soit vraiment rien à voir...
Je dois tout automatiser par programme, si jamais quelqu'un saurait comment programmer l'ajout d'une barre selon les valeurs en abscisses ça serait parfait !
Tout d'abord merci de votre aide yg_be.
par exemple, pour mettre une barre sur la valeur 28 en abscisse je dois écrire
ActiveChart.Shapes.AddConnector(msoConnectorStraight, 285, 31, 285, 173).Select
La valeur 285 me permettant de placer la barre sur la valeur 28... soit vraiment rien à voir...
Je dois tout automatiser par programme, si jamais quelqu'un saurait comment programmer l'ajout d'une barre selon les valeurs en abscisses ça serait parfait !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
20 avril 2018 à 14:52
20 avril 2018 à 14:52
' coordonnées du point median
X2 = .SeriesCollection(2).XValues
Y2 = .SeriesCollection(2).Values
xm = X2(UBound(X2))
ym = Y2(UBound(Y2))
X2 et Y2 sont les données source (tableaux à une seule case) de la série 2 (point médian)
xm est ym sont les coordonnées du point median que l'on récupère comme dernières cases (UBound) de X2 et de Y2
qui serviront à définir les données sources des deux barres (définies par deux points)
- la verticale qui aura comme XValues {xm,xm} et comme Values {minY,maxY}
- l'horizontale qui aura comme XValues {minX,maxX} et comme Values {ym,ym}
Ce que tu peux constater et regardant les données sources du point médian et de ces deux barres
Cdlmnt
X2 = .SeriesCollection(2).XValues
Y2 = .SeriesCollection(2).Values
xm = X2(UBound(X2))
ym = Y2(UBound(Y2))
X2 et Y2 sont les données source (tableaux à une seule case) de la série 2 (point médian)
xm est ym sont les coordonnées du point median que l'on récupère comme dernières cases (UBound) de X2 et de Y2
qui serviront à définir les données sources des deux barres (définies par deux points)
- la verticale qui aura comme XValues {xm,xm} et comme Values {minY,maxY}
- l'horizontale qui aura comme XValues {minX,maxX} et comme Values {ym,ym}
Ce que tu peux constater et regardant les données sources du point médian et de ces deux barres
Cdlmnt
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
Modifié le 20 avril 2018 à 15:11
Modifié le 20 avril 2018 à 15:11
J'ai essayé ton code mais sur mes données. Tout marche parfaitement bien jusqu'à la ligne : .seriescollection(3)=hX
Q1. As tu une troisième série dans ton graphique ?
Dans mon exemple, pour faire simple, je suis parti du principe que les 5 séries étaient déjà créées (le nuage de point, le point médian et avec n'importe quoi au départ pour les deux barres)
Q2. qui est hX ?
RQ. Ne réponds pas dans les commentaires mais avec répondre (au fond), sinon, on ne voit plus la chronologies des posts
Q1. As tu une troisième série dans ton graphique ?
Dans mon exemple, pour faire simple, je suis parti du principe que les 5 séries étaient déjà créées (le nuage de point, le point médian et avec n'importe quoi au départ pour les deux barres)
Q2. qui est hX ?
RQ. Ne réponds pas dans les commentaires mais avec répondre (au fond), sinon, on ne voit plus la chronologies des posts
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
Modifié le 20 avril 2018 à 15:11
Modifié le 20 avril 2018 à 15:11
Au cas où
Pour ajouter une série à gr (via vba)
.SeriesCollection.NewSeries
Pour ajouter une série à gr (via vba)
.SeriesCollection.NewSeries
swarmill
Messages postés
10
Date d'inscription
mercredi 18 avril 2018
Statut
Membre
Dernière intervention
22 mai 2018
20 avril 2018 à 15:41
20 avril 2018 à 15:41
Re,
Désolé je n'avais pas vu les messages ...
Grâce à ta solution ,en rajoutant Newseries je n'ai plus le message d'erreur 1004 merci beaucoup !
Cependant, il m'affiche bien les deux points pour tracer la barre verticale et l'autre horizontal. Mais il ne trace pas de trait reliant les deux comme sur ton graphique :/
désolé je début en VBA et les graphiques je galère vraiment ...
merci par avance encore !
Désolé je n'avais pas vu les messages ...
Grâce à ta solution ,en rajoutant Newseries je n'ai plus le message d'erreur 1004 merci beaucoup !
Cependant, il m'affiche bien les deux points pour tracer la barre verticale et l'autre horizontal. Mais il ne trace pas de trait reliant les deux comme sur ton graphique :/
désolé je début en VBA et les graphiques je galère vraiment ...
merci par avance encore !
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
20 avril 2018 à 15:53
20 avril 2018 à 15:53
Créer de toute pièce un graphique avec vba est une vraie galère, est ce vraiment indispensable dans ton cas ?
Il est beaucoup plus simple de créer et formater un graphique comme tu le souhaites et par vba, modifier ses données source
Si vba obligatoire
Tu lances l'enregistreur de macros (outils/macros/Nouvelle macro sous excel 2003 sous 2007 et plus, ça doit être dans l'onglet développeur) et tu formates ton graphique,. puis arrêter l'enregistrement (tu récupères le code dans un Module vba)
Vas y doucement (un seul truc à la fois car il y a une foule de propriétés attachées à des objets du graphique)
Bon courage
Il est beaucoup plus simple de créer et formater un graphique comme tu le souhaites et par vba, modifier ses données source
Si vba obligatoire
Tu lances l'enregistreur de macros (outils/macros/Nouvelle macro sous excel 2003 sous 2007 et plus, ça doit être dans l'onglet développeur) et tu formates ton graphique,. puis arrêter l'enregistrement (tu récupères le code dans un Module vba)
Vas y doucement (un seul truc à la fois car il y a une foule de propriétés attachées à des objets du graphique)
Bon courage
swarmill
Messages postés
10
Date d'inscription
mercredi 18 avril 2018
Statut
Membre
Dernière intervention
22 mai 2018
20 avril 2018 à 15:58
20 avril 2018 à 15:58
Oui c'est obligatoire, il doit être automatique en fonction de 102 médiane par année et ceci même pour les futures années. Et j'ai essayé comme tu m'as dis et donc j'ai rajouté le code :
".seriescollection(4).select
.seriescollection(4).charttype.xlXYScatterSmoothNoMarkers
mais ça ne me modifie strictement rien :/
peut-être que le problème me vient de la variable X1 : VBA me dit incompatibilité de type quand j’exécute le code ligne par ligne. Mais quand je clic sur mon bouton qui éxécute tout le code. La, aucune erreur :/
une idée ?
encore merci pour ton aide précieuse !
".seriescollection(4).select
.seriescollection(4).charttype.xlXYScatterSmoothNoMarkers
mais ça ne me modifie strictement rien :/
peut-être que le problème me vient de la variable X1 : VBA me dit incompatibilité de type quand j’exécute le code ligne par ligne. Mais quand je clic sur mon bouton qui éxécute tout le code. La, aucune erreur :/
une idée ?
encore merci pour ton aide précieuse !
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
20 avril 2018 à 16:10
20 avril 2018 à 16:10
Pour tracer la ligne entre les deux points
.SeriesCollection(4).Border.LineStyle=xlContinous
et pour la colorier en rouge
.SeriesCollection(4).Border..ColorIndex = 3
.SeriesCollection(4).Border.LineStyle=xlContinous
et pour la colorier en rouge
.SeriesCollection(4).Border..ColorIndex = 3
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
Modifié le 20 avril 2018 à 16:38
Modifié le 20 avril 2018 à 16:38
Avec un nuage de points, je ne vois pas.
Par contre on peut colorier les points de chaque région d'une couleur différente
Par contre on peut colorier les points de chaque région d'une couleur différente
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
20 avril 2018 à 17:01
20 avril 2018 à 17:01
un exemple en ce sens
https://www.cjoint.com/c/HDuo3wGu22B
https://www.cjoint.com/c/HDuo3wGu22B
swarmill
Messages postés
10
Date d'inscription
mercredi 18 avril 2018
Statut
Membre
Dernière intervention
22 mai 2018
23 avril 2018 à 11:16
23 avril 2018 à 11:16
Merci de ta proposition ça marche niquel !
tu as réglé tous mes problèmes en seulement 2 jours.
Merci beaucoup pour ton aide !
tu as réglé tous mes problèmes en seulement 2 jours.
Merci beaucoup pour ton aide !
ccm81
Messages postés
10853
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 avril 2024
2 404
23 avril 2018 à 13:56
23 avril 2018 à 13:56
De rien
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)
Bon après midi
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)
Bon après midi
20 avril 2018 à 14:23
Merci, c'est une super idée ton code !!
petite question : à quoi sert ces 2 lignes ?
xm = X2(UBound(X2))
ym = Y2(UBound(Y2))
merci par avance !
20 avril 2018 à 14:51
Excel me dit : erreur 1004 : paramètre non valide
aurait tu une idée ?
merci par avance !
20 avril 2018 à 15:14
20 avril 2018 à 15:19