![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
voila, je fais un graphique sous excel. j'ai créé 3 graphique, pour les mettres en forme directement.
Ce que je voudrais pouvoir faire, qu'apres une selection dans une combo_box, il aille a la ligne correspondant dans ma page excel, et qu'il s'en serve comme donnée source pour mon graph exemple: je choisis la ligne 12 dans ma combo_box: il me prends toutes les cellules de cette ligne la comme source pour la serie de mon graph. (jusqu'a ce qu'il rencontre une cellule vide) (les 3 graph fonctionnant sous le meme principe, j'ai besoin que d'une explication )Mais j'arrive pas a trouver comment on fait. Quelqu'un pourrait m'aider, svp, si cette methode est possible ? C'est assez urgent ![]() Merchi D'avance |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
voici une façon de faire :
Option Explicit 'Ti Sub NouvelleSource(Graph As ChartObject, PlageSource As Range) Dim Source As String Source = "=" & PlageSource.Worksheet.Name & "!" & PlageSource.Address(, , xlR1C1) With Graph.Chart .SeriesCollection(1).Values = Source End With End Sub Sub Test() Dim Plage As Range, Graph As ChartObject On Error GoTo erreur 'ici F1 est le nom de la feuille où se trouvent le graphique et les valeurs With F1 Set Plage = .Range("A6", .Range("A6").End(xlToRight)) Set Graph = .ChartObjects(1) 'tu pourrais aussi écrire 'Set Graph = .ChartObjects("GraphTest") End With 'pour modifier le 1er graphique NouvelleSource Graph, Plage Exit Sub erreur: MsgBox "Erreur !", vbCritical End Sub |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
merci bcp
![]() Je pense que ca correspond, je vais tester ca, et je te dis si c'est bon, mais je te fais confiance ![]() Il me manquait juste la maniere de mettre les nouvelles sources ![]() Hum, question: Je sais que pour la methode Cells(ligne, colonne), ligne et colonne peuvent etre des chiffre. Mais dans une plage, on est obliger de mettre une lettre ? et dans ce cas, est ce qu'il est possible de recuperer la lettre de la colonne ? Merci encore pour le code ![]() |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
non, pour définir la plage de mon exemple , tu pourrais remplacer
Set Plage = .Range("A6", .Range("A6").End(xlToRight)) par Set Plage = Range(.Cells(6, 1), .Cells(6, 1).End(xlToRight)) Ainsi plus de lettres. |
| Liens sociaux |
| Outils de la discussion | |
|
|