Microsoft 365 Suppression des espaces dans un graphique si données manquantes ou égales à zéro

mathjr74

XLDnaute Nouveau
Bonjour,

Je dispose d'un graphique à barres (voir fichier joint) ou il y a des espaces entre les barres car certaines données sont manquantes ou égales à zéro. Est il possible de supprimer ces espaces, barres et légendes automatiquement dans excel directement (preferable si possible, en créant deux autres colonnes cachées?) ou par le biais d'une macro, par exemple: si les cellules sont vides ou égales à zéro alors masquer la/les barre(s), l'espace vide et/ou légende(s) correspondantes? Vous pouvez avoir un apercu du résultat que je souhaiterais dans le fichier.
Je sais qu'en accédant aux données du graphique je peux cocher/decocher les mois que je veux voir mais je dois le faire manuellement et je souhaiterais que cela se fassse automatiquement.

Merci à vous
 

Pièces jointes

  • Test1.xlsx
    14.5 KB · Affichages: 13

mathjr74

XLDnaute Nouveau
Bonjour

Et merci pour ta porposition cependant la solution proposée fonctionne dans le fichier exemple mais malheuresement si je l'applique dans mon vrai fichier elle ne fonctionne pas car dans le meme onglet j'ai plusieurs tableaux du memes types alignés les uns a cotés des autres donc quand je filtre les autres autres tableaux sont également filtrés ce qui supprime donc des lignes que je souhaite conserver.
 

job75

XLDnaute Barbatruc
Bonjour mathjr74, djidji59430,

Voyez le fichier joint et :

- la formule matricielle en C2 à tirer à droite et vers le bas

- les noms définis X et Y utilisés pour définir les abscisses et ordonnées de la série.

A+
 

Pièces jointes

  • Test(1).xlsx
    16.2 KB · Affichages: 6

chris

XLDnaute Barbatruc
Tchin🍸 🍾

Faisable aussi par TCD/GCD

Sur une version US le classement des mois en lettres sera automatique mais en version FR il faut soit classer à la main, soit créer une liste personnalisée des 12 mois, ce qui automatisera le classement de tous les TCD
 

Pièces jointes

  • Graph_TCD.xlsx
    22.5 KB · Affichages: 4
Dernière édition:

job75

XLDnaute Barbatruc
Pour faire bon poids voyez le fichier .xlsm joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&, X(), Y(), n&
If FilterMode Then ShowAllData 'si la feuille est filtrée
With Range("A1", Range("B" & Rows.Count).End(xlUp)) 'à adapter
    For i = 2 To .Rows.Count
        If .Cells(i, 1) <> "" And .Cells(i, 2) > 0 Then
            ReDim Preserve X(n): ReDim Preserve Y(n) 'base 0
            X(n) = .Cells(i, 1): Y(n) = .Cells(i, 2)
            n = n + 1
        End If
    Next
End With
'---noms définis---
If n Then ThisWorkbook.Names.Add "X", X: ThisWorkbook.Names.Add "Y", Y _
    Else ThisWorkbook.Names.Add "X", "={""n/a""}": ThisWorkbook.Names.Add "Y", "={0}"
End Sub
Elle s'exécute quand on modifie ou valide une cellule quelconque.
 

Pièces jointes

  • Test VBA(1).xlsm
    22.8 KB · Affichages: 7
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 276
Messages
2 086 714
Membres
103 378
dernier inscrit
phdrouart