Sélectionner plage données variable graphique

Résolu
Sadokaze78 Messages postés 2 Statut Membre -  
Sadokaze78 Messages postés 2 Statut Membre -
Bonjour à tous,

Etant novice en programmation je requiers votre aide pour me permettre à ma macro de fonctionner complètement.

Pour expliquer mon problème en langage courant, je souhaite :

- Sélectionner le graphique dans le feuille "Choix"
- Déterminer la plage de données du graphique type radar
- La plage de données se trouve sur la feuille "Matrice_Graph"
- Sélectionner dans la feuille "Matrice_Graph" la plage de B1 à la dernière cellule non vide de la colonne D
- Fin de macro

Voilà ce que m'affiche VisualBasic :

Sheets("Choix").Select
ActiveSheet.ChartObjects("Graphique 3").Activate
Application.CutCopyMode = False
ActiveChart.SetSourceData Source:=Sheets("Matrice_Graph").Range("B1:D18")

Je ne souhaite pas que dans .Range("B1:D18"), D18 soit sélectionner mais Dernière cellule non vide de la colonne D (comme lorsqu'on fait Ctrl+Flèche de droite puis Crtl+Flèche du bas) car ma plage de données sera variable et ne sera pas toujours égale à 18 lignes.

Je vous remercie d'avance
A voir également:

2 réponses

f894009 Messages postés 17413 Statut Membre 1 715
 
Bonjour,
derniere cellule non vide colonne D
derlig = Range("D" & Rows.Count).End(xlUp).Row
ActiveChart.SetSourceData Source:=Sheets("Matrice_Graph").Range("B1:D" & derlig) 
0
Sadokaze78 Messages postés 2 Statut Membre
 
Bonjour,

Si je comprends bien tu définis une plage de cellules variable que tu nommes derlig et ensuite tu l'inclus dans la commande SetSourceData c'est cela ?

Après avoir entrer ta commande dans VisualBasic, le graphique ne sélectionne que la première ligne (soit la ligne 1). En changeant xlUp par XlDown la commande fonctionne parfaitement !!

Merci à toi et bonne journée !
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Bonjour

Pourquoi ne pas nommer dans la feuille tes plages de données de façon dynamique avec DECALER

Sinon avec vba

Dim gr As Object, lifin As Long
lifin = Sheets("Matrice Graph").Range("D" & Rows.Count).End(xlUp).Row
With ActiveSheet
Set gr = .ChartObjects(1).Chart
gr.SetSourceData Source:=Sheets("Matrice Graph").Range("B1:D" & lifin)
End With


Cdlmnt
0