Sélectionner plage données variable graphique

Résolu
Sadokaze78 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Sadokaze78 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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 Date d'inscription   Statut Membre Dernière intervention  
 
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 10909 Date d'inscription   Statut Membre Dernière intervention   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