VBA - graph variable selon selection

Résolu
Pyvoudelet Messages postés 179 Statut Membre -  
Le Pingou Messages postés 12638 Statut Contributeur -
Bonjour,


JE voudrais réaliser un graph radar, en fonction de la liste de champs prealablement selectionnés.

voici le classeur: http://www.cijoint.fr/cjlink.php?file=cj201105/cijw4sUv4V.xlsm

Le principe de fonctionnement visé:

- j'ai tableau de base contenant toute mes valeurs
- avec les deux boutons ADD je selection uniquement les catégories qui m'interesse au sein du tableau
- je voudrais placer sur un graphique radar les valeurs des categories selectionnée.

mon probleme est la selection des données du graphique par une macro. Comment faire? Ai - je besoin de creer un second tableau reprenant les valeurs voulu, ou est possible de tracer direct le graph?

J'Ai realiser mes macro "ADD" avec le peu de connaissance que j'ai. SI vous avez des corrections a proposer , elles seront la bienvenue!

Merci d'avance!



9 réponses

ccm81 Messages postés 11033 Statut Membre 2 433
 
bonsoir,
peux tu envoyer ton fichier au format excel 2003
bonne suite
0
Le Pingou Messages postés 12638 Statut Contributeur 1 461
 
Bonjour ccm81,
Le voici en 2003 : https://www.cjoint.com/?3EjvCqJkLFv
Bonne suite.
0
Le Pingou Messages postés 12638 Statut Contributeur 1 461
 
Bonjour Pyvoudelet,
Petite question, est-ce que les catégorie se suivent ou il peut y avoir des saut ( votre exemple de 1,2,3,4 et 5 ou 1,2,3,7, 10) ?
0
Pyvoudelet Messages postés 179 Statut Membre 12
 
Bonjour,

Merci Le Pingou de l avoir transformé en 2003.

Pour répondre à ta question, oui il peut y avoir des sauts, justement(!), et l'utilisateur n'est pas obligé de sélectionner toutes les catégories, ni dans le bon ordre. C'est pour ça que y a les boutons ADD. En fait je voudrais pouvoir faire un graph avec juste les catégories sélectionnées par l'utilisateur.

MErci de vous pencher sur le cas en tout cas!
0
Le Pingou Messages postés 12638 Statut Contributeur 1 461
 
Bonsoir,
Merci pour l'information.
J'ai une petite idée... patience.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12638 Statut Contributeur 1 461
 
Bonjour,
Ma proposition : https://www.cjoint.com/?3EkjkSBBVvg
0
Pyvoudelet Messages postés 179 Statut Membre 12
 
Merci beaucoup!! C'est tout à fait ce que je voulais!!! t'es un As!
0
Pyvoudelet Messages postés 179 Statut Membre 12
 
en fait j'essaye de l'adapter, pour pouvoir mettre le tableau de données de base sur une autres feuille (je sais, j aurais du le dire plus tôt!!...).

j'ai essayé de juste changer les ref de Sheets() mais avec le bloc with, je suis un peu perdu....

je comprend s pas tout le fonctionnement ( notamment les fonction match) mais en tout cas ça fait l effet désiré!
0
Le Pingou Messages postés 12638 Statut Contributeur 1 461
 
Bonjour,
Merci pour le message.
Faites moi savoir se qui ne marche pas .....
Sur quoi voulez-vous une explication ?
Sur quelle feuille se trouve:
1.- la plage de données ?
2.- Les 2 listes déroulantes ?
3.- la liste des catégories ?
4.- Le graphique ?
Salutations.
Le Pingou
0
Pyvoudelet Messages postés 179 Statut Membre 12
 
Finalement, j'ai réussi, en supprimant totalement le bloc with, et en ajoutant a chaque fois la référence de la feuille concernée. ça à l'air de bien fonctionner ainsi. cela me donne ceci:


Sub MonGraphRad()
Dim ad1, ad2, mescat, nomcat
Dim plage As String
Dim c As Long, nbcat As Long, nuco
plage = "$A$3:$A$6"
Application.ScreenUpdating = False

mescat = Application.Transpose(Sheets("Feuil1").Range("listcate").Value)
nbcat = Sheets("Feuil1").Range("listcate").Count
For c = 1 To nbcat
If nbcat = 1 Then
nuco = WorksheetFunction.Match(mescat, Sheets("Feuil2").Rows(3), 0)
Else
nuco = WorksheetFunction.Match(mescat(c), Sheets("Feuil2").Rows(3), 0)
End If
Set nomcat = Sheets("Feuil2").Cells(3, nuco)
ad1 = nomcat.Address
ad2 = WorksheetFunction.Substitute(ad1, 3, 6)
plage = plage & "," & ad1 & ":" & ad2
Next

Sheets("Feuil1").ChartObjects("Graphique 1").Activate
ActiveChart.SetSourceData Source:=Sheets("Feuil2").Range(plage)
Application.ScreenUpdating = True
Range("a1").Select
End Sub


MErci encore pour vos conseils.
0
Le Pingou Messages postés 12638 Statut Contributeur 1 461
 
Bonjour,
Merci pour l'information.
C'est une autre manière d'écriture de code, le principal est que cela fonctionne.
Salutations.
Le Pingou
0