Graphe avec filtre sous vba

Lauwn

XLDnaute Nouveau
Bonjour,

Je cherche à créer un graphe sous vba, sur lequel j'applique un filtre (rechercher un mot dans une colonne). Jusque là pas de soucis.
La deuxième partie de la manip est un peu plus simple. Pour chaque fois que le mot (ici en l'occurence : Mécanique) est rencontré, je voudrais renvoyer une valeur située sur la même ligne afin d'établir la plage de données de mon graphe (En clair : j'ai une colonne catégorie, une colonne article et une colonne prix. Pour telle catégorie voulue je voudrais faire un graphe faisant apparaître les prix de chaque ligne/article).

Voici le bout de code que j'ai commencé à taper (le tout est placé dans un userform) :

Private Sub OptionButton2_Click()
Dim Plage_donnees As Range
Dim variable As Integer
Dim ligneOK As Integer
OptionButton1.Enabled = False
OptionButton3.Enabled = False
OptionButton4.Enabled = False

Charts.Add
Sheets("Feuil1").Select
For variable = 1 To Range("A65536").End(xlUp).Row
Sheets("Feuil1").Select
If ligneOK = InStr(1, Cells(variable, 1), "Mécanique", vbcompare) > 0 Then
Set Plage_donnees = Plage_donnees + Sheets("Feuil1").Range([J + "variable"])
With ActiveChart
.Select
.ChartType = xlColumnClustered
.SetSourceData Source:=Plage_donnees, PlotBy:=xlColumns
.HasTitle = True
.ChartTitle.Characters.Text = "Bilan Mécanique"
End With
End If
Next variable
End Sub



Si quelqu'un a une solution à me proposer... je suis preneur !

Merci !
 

Misange

XLDnaute Barbatruc
Re : Graphe avec filtre sous vba

Bonjour
La charte du forum indique que les fichiers joints expliquant clairement le problème (simplifié) sont bienvenus sur le forum. Pour ça il suffit d'aller en bas de la fenêtre cliquer sur aller en mode avancé puis de cliquer sur le trombone.

Pour ce que je comprends de ton problème, il suffit de faire un filtre, ça masque les lignes qui du coup n'apparaissent pas dans le graphique.
 

Lauwn

XLDnaute Nouveau
Re : Graphe avec filtre sous vba

Bien vu, désolé ! Du coup, j'espère que ce sera plus clair avec le fichier joint (je cherche à visualiser mes quantités d'articles en fonction de la catégorie sélectionnée dans le userform)

Le tableau étant amené à être modifié (ajout/suppression d'articles), le nombre de lignes n'est pas constant (d'où l'utilisation de "variable" dans le code).
Pour le filtre, l'idée serait intéressante mais me paraît compliquée à mettre en place... Mais je me trompe peut-être :eek:
 

Pièces jointes

  • Classeur1.xlsm
    14.5 KB · Affichages: 111
  • Classeur1.xlsm
    14.5 KB · Affichages: 115
  • Classeur1.xlsm
    14.5 KB · Affichages: 109

Misange

XLDnaute Barbatruc
Re : Graphe avec filtre sous vba

A peu près 4 secondes pour faire la manip.
Ajoute des données juste en dessous du tableau, elles s'y ajoutent automatiquement et sont prises en compte dans le graphique. Filtre en utilisant les flèches en haut des colonnes. That's it
 

Pièces jointes

  • Copie de Classeur1.xlsm
    20.2 KB · Affichages: 159
  • Copie de Classeur1.xlsm
    20.2 KB · Affichages: 145
  • Copie de Classeur1.xlsm
    20.2 KB · Affichages: 150

Lauwn

XLDnaute Nouveau
Re : Graphe avec filtre sous vba

Justement, l'idée est sympa mais mon problème c'est que je gère mon tableau via une interface H/M et que le tableau en lui même n'est théoriquement pas accessible. Du coup, j'aimerais passer par un userform me permettant de sélectionner la catégorie voulue et de tracer mon graphe.
(et cette contrainte n'est malheureusement pas contournable : sujet de devoir oblige ! :mad: )
 

Misange

XLDnaute Barbatruc
Re : Graphe avec filtre sous vba

Dans ce cas lance l'enregistreur de macros, filtre ton tableau, récupère le code et crée une macro qui mime ça. Utilise ton formulaire pour faire choisir les valeurs des filtres. A toi de jouer, c'est toi qui rend le devoir, pas moi :)
 

Lauwn

XLDnaute Nouveau
Re : Graphe avec filtre sous vba

Du coup j'ai testé la méthode et ça marche nickel !
Par contre j'ai un leger bug dans la saisie de ma plage de données dans le sens où ca ne prend pas en compte que certaines cellules soient cachées (en gros : sur ma plage qui va disons de J1 a J24, je masque les 12 premieres cellules mais elles apparaissent tout de meme dans mon graphe).
Ayant un tableau qui sera amené a évoluer, je cherche un moyen de selectionner la premiere cellule visible sur mon tableau. Est ce qu'il existe une fonction qui permette de le faire ?
 

Misange

XLDnaute Barbatruc
Re : Graphe avec filtre sous vba

Tu n'as pas du faire les choses correctement.
Si tu masques les lignes du tableau ou que tu les filtres elles ne peuvent pas apparaitre dans le graphique. Joins ton classeur si tu veux qu'on puisse regarder.
 

Misange

XLDnaute Barbatruc
Re : Graphe avec filtre sous vba

Ce n'est pas du tout ce que je t'avais proposé mais chez moi ton exemple fonctionne bien. Que lui reproches tu ?
ton graphique n'est pas construit à partir du tableau initial filtré comme je te le proposais mais à partir d'un tableau créé à partir du premier.
 

Lauwn

XLDnaute Nouveau
Re : Graphe avec filtre sous vba

Je ne suis pas l'auteur du post précédent. J'utilise bien un filtre pour créer mon graphe (je note tout de même l'idée de créer un autre tableau ;p).
Je renvoie ci-joint un fichier avec le code que j'ai utilisé pour mon userform (j'ai pas cherché à optimiser le fonctionnement donc il faut sélectionner un graphe et le supprimer avant de pouvoir en sélectionner un autre sur le userform), c'est juste pour donner une idée de mon problème ;)
 

Lauwn

XLDnaute Nouveau
Re : Graphe avec filtre sous vba

Effectivement si j'oublie de l'ajouter au post, ça marche moins bien :rolleyes:
 

Pièces jointes

  • Classeur1.xlsm
    17.6 KB · Affichages: 105
  • Classeur1.xlsm
    17.6 KB · Affichages: 97
  • Classeur1.xlsm
    17.6 KB · Affichages: 113

Misange

XLDnaute Barbatruc
Re : Graphe avec filtre sous vba

L'idée n'est justement pas de créer le graphique par macro. Tu le crées au départ sur ton fichier (je ne vois pas de tableau, dommage, tu te prives d'un outil puissant). Par macro, tu ne fais qu'appliquer le filtre pour masquer les données.
 

Discussions similaires

Réponses
3
Affichages
591

Statistiques des forums

Discussions
312 338
Messages
2 087 398
Membres
103 536
dernier inscrit
komivi