Graphique dynamique

HEMIYELY Messages postés 71 Statut Membre -  
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

7 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    0
    1. HEMIYELY Messages postés 71 Statut Membre
       
      Bonjour,
      Merci pour cette réponse.
      Quels sont les éléments à changer dans cette formule pour qu'elle doit adaptée à mon fichier ?
      A quoi correspond "i" et "a" ?
      0
    2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      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
      0
    3. HEMIYELY Messages postés 71 Statut Membre
       


      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.
      0
    4. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Ce n'est pas une image qui peut être utile mais un extrait du fichier à poster selon la procédure indiquée précédemment sur le site de partage de fichier mon-partage.fr
      0
    5. HEMIYELY Messages postés 71 Statut Membre
       
      https://mon-partage.fr/f/PEpSJAgp/

      Voici le lien avec l'extrait de mon fichier
      0
  2. DjiDji59430 Messages postés 4280 Date d'inscription   Statut Membre Dernière intervention   718
     
    Bonjour,

    Antérieur a quoi ?

    Crdlmt
    0
    1. HEMIYELY Messages postés 71 Statut Membre
       
      Antérieur à la semaine actuelle. Ce qui fait que chaque semaine mon graphique change
      0
  3. danielc0 Messages postés 2211 Date d'inscription   Statut Membre Dernière intervention   294
     
    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
    0
  4. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    0
    1. HEMIYELY Messages postés 71 Statut Membre
       
      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
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Sans ton fichier je ne peux rien dire
    Postes le sur mon-partage.fr et communiques moi le lien
    0
    1. HEMIYELY Messages postés 71 Statut Membre
       
      Voici le lien
      https://mon-partage.fr/f/ujDMsrkP/
      0
  7. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Il n'y a pas de macro dans le fichier que tu m'as envoyé ! donc pas de bug

    0
    1. HEMIYELY Messages postés 71 Statut Membre
       
      Oups... je n'ai pas enregistré le fichier avec la macro
      https://mon-partage.fr/f/4CqI39Zd/

      Le voici à nouveau
      0
  8. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    0