Masquer/Afficher lignes automatiquement dynamique

Bonjour tout le monde,

J'ai déjà un peu fouiller le forum, avec des réponses à mes questions mais je n'arrive pas à les appliquer à mon problème. C'est pourquoi je m'adresse à vous directement aujourd'hui.

Ci-joint à ce post un fichier en exemple.

Globalement j'ai un bouton qui me permet de choisir un responsable. A ce responsable est attribué un certain nombre de vendeur, nombre qui varie. Aux vendeurs est attribué un chiffre d'affaire.

En dessous il y a un graphe représentant le CA de chaque vendeurs.

Mon problème est qu'en changeant de responsable, je change le nombre de vendeur, de ce fait si j'ai un responsable avec 3 vendeurs attribués, mon graphique représentera les 3 vendeurs + 3 vendeurs à 0 car mon maximum de vendeur pour un responsable est de 6.

Je pensais donc qu'en trouvant une macro qui masque ou affiche automatiquement les lignes du tableau lorsqu'elle trouve la valeur "0" en colonne C, par exemple masquer la ligne 8 quand C8=0, me permettrait d'avoir un graphe propre.

La macro se doit d'être dynamique à chaque changement de la liste déroulante.

Voilà, j'espère avoir été clair pour vous. Je reste à votre dispo.

Merci d'avance.

G.

Bonjour et bienvenue sur le forum

Un essai. Te convient-il ?

Bonjour GmB,

Oui absolument c'est ce que je recherchais. Le seul "hic" c'est qu'il cache une ligne de trop à priori (ce qui n'influe néanmoins pas sur le graphe). Par exemple si je sélectionne "5", il y a bien un graphe avec 2 vendeurs, conformément aux donnés. Par contre le tableau n'affiche qu'une seule ligne.

Mais merci beaucoup pour la rapidité de réponse !

G.

Salut, cette macro dans le module de la Feuil1

Supprime ta liste deroulante cheloue et mets en une de validation en G8. ou alors change G8 à la main

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G8")) Is Nothing Then
    i = 5
    While Range("C" & i) <> 0
        i = i + 1
    Wend
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.SeriesCollection(1).Values = "=Feuil1!$C$5:$C$" & i - 1
    ActiveChart.SeriesCollection(2).Values = "=Feuil1!$D$5:$D$" & i - 1
End If
End Sub
Rechercher des sujets similaires à "masquer afficher lignes automatiquement dynamique"