Graphique dynamique
HEMIYELY
Messages postés
71
Statut
Membre
-
via55 Messages postés 14393 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14393 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite réaliser un graphique en barre. En Ordonnées se trouve "la consommation d'aliment" et en Abscisse les semaines. Je souhaite que les barres correspondants aux semaines antérieurs soient en pointillées.
Je ne sais pas si je dois passer par un code VBA pour réaliser cela. Si oui, quelqu'un aurait-il une idée du code ?
Merci d'avance pour votre réponse.
Cordialement
Je souhaite réaliser un graphique en barre. En Ordonnées se trouve "la consommation d'aliment" et en Abscisse les semaines. Je souhaite que les barres correspondants aux semaines antérieurs soient en pointillées.
Je ne sais pas si je dois passer par un code VBA pour réaliser cela. Si oui, quelqu'un aurait-il une idée du code ?
Merci d'avance pour votre réponse.
Cordialement
7 réponses
-
Bonjour
Oui il faut passer par un code VBA de ce style :Sub pointilles() sem = Format(Date, "WW") ActiveSheet.ChartObjects("Graphique 1").Activate ActiveChart.SeriesCollection(1).Select With ActiveChart.SeriesCollection(1) For i = 1 To .Points.Count a = ActiveChart.SeriesCollection(1).XValues With .Points(i).Border If a(i) < sem Then .LineStyle = xlDash Else .LineStyle = xlContinuous End With Next End With End Sub
Cdlmnt
Via
-
-
Bonjour
i est l'indice de la boucle qui passe en revue tous les points de la série du graphique, il n'y a pas lieu de le changer
De même a est un indice correspondant à la valeur en abscisse et a(2) renvoie la valeur de l’abscisse du point 2, donc rien à changer non plus
En principe la seule chose à modifier si nécessaire c'est le nom du graphique s'il est différent dans ton fichier (ici "Graphique 1")
Si tu avais posté un exemple de ton fichier sur mon-partage .fr, fait créé un lien, l'avoir copié puis collé ici d'ès le départ cela aurait été plus simple pour te proposer tout de suite la macro adaptée
Cdlmnt
Via -
Voici une image représentant un extrait de mon fichier.
Je veux représenter ce tableau par un histogramme.
Je souhaite que les données antérieures à la semaine actuelle soient en pointillées (ou transparents, peu m'importe, faut juste qu'elles soient représentées différemment que les données postérieures à la semaine actuelle.
Merci de votre aide. -
-
-
-
Bonjour,
Antérieur a quoi ?
Crdlmt -
Bonjour,
Sinon, tu peux le faire sans macro, mais avec deux colonnes supplémentaires. Les numéros de semaine étant en colonne A et les conso en colonne B, en C2, à recopier vers le bas, mets :
=SI(A2<NO.SEMAINE.ISO(AUJOURDHUI());B2;NA())
et en D2 :
=SI(ESTNA(C2);B2;NA()), à recopier vers le bas.
Le graphique est construit sur les colonnes A, C et D.
https://mon-partage.fr/f/mxfTUQ9V/
Cordialement.
Daniel -
Re
Ton fichier avec macro en retour
La macro se déclenche dès qu'on active la feuille Graph et met en transparence les semaines précédentes
Elle est basée sur le n° de semaine en C1 du tableau (modifie C1 pour voir)
https://mon-partage.fr/f/1OPPMTQ2/
Cdlmnt
Via
-
Bonjour,
Merci beaucoup pour cette solution qui fonctionne presque à merveille.
J'ai adapté la formule VBA à mon fichier. Cela fonctionne. Cependant même si la macro fonctionne, j'ai toujours un message d'erreur "Erreur d'exécution 1004, Paramètre non valide". Je clique sur debug et le graphique apparaît comme je le souhaite.
As tu une solution pour supprimer ce message d'alerte ?
Merci d'avance
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour
Sans ton fichier je ne peux rien dire
Postes le sur mon-partage.fr et communiques moi le lien
-
Il n'y a pas de macro dans le fichier que tu m'as envoyé ! donc pas de bug
-
Bon ce n'est pas grave
Dans le 1er graphique il y avait 8 items pour chaque semaine du graphique, celui là n'en a plus que 6
Il suffit donc de corriger la ligne dans la Marco transparence du Module 1 et remplacer :
For n = 1 To 7
par For n = 1 To 6
Cdlmnt
Via