Macro automatisation graphique

heislsim

XLDnaute Junior
Bonsoir tout le monde,

Tout d'abord je tiens à remercier l'ensemble des gens oeuvrant pour ce site. J'ai appris progressivement à fair emes premiers macros grâce à vous :) (quel kiff quand ça marche :p).
Je suis en train d'attaquer une nouvelle branche des macro, la partie concernant les graphiques (c'est un bon level la sélections de données, la suppression de certains cases ect).
J'ai tenté de voir un peu les questions déjà posé à ce sujet mais j'avoue que je suis perdu avec ces nouveaux codes.

Pour mon mémoire je suis amener à faire un quantité de "petits" graphiques.
Mes données de bases ont toujours une taille (nombre de ligne) variable mais jamais plus de 200.
Je fais mon graphique type pour qu'il prennent toutes les données jusqu'à 200, généralement si des cellules sont vides ça n'a pas d'impact sur le graphique mais là ça change mes échelles.
Du coup est ce qu'on peut automatiser la sélection des cellules pour le graphique sans toucher au reste (càd le titre du graphique, sa présentation, la présence d'une courbe de tendance etc).


Merci d'avance,

PS : n'hésitez pas à rajouter des remarques sur ce que veut dire les formules O:)
 

Pièces jointes

  • Question pour Forum 1.xlsx
    35.7 KB · Affichages: 51

chris

XLDnaute Barbatruc
Re : Macro automatisation graphique

Bonjour

Si tu mets ta source sous forme de tableau et bases tes graphiques sur les colonnes du tableau et non des plages, les graphiques suivront l'ajout de lignes.

(N.B. : Dans l'exemple joint, les sources semblent correspondre aux plages mais elles ont été déclarées en colonnes du tableau et suivent bien l'ajout de lignes).
 

Pièces jointes

  • GraphiqueTableau.xlsx
    36.3 KB · Affichages: 52

PMO2

XLDnaute Accro
Re : Macro automatisation graphique

Bonjour,

Une piste peut être avec
Code:
Sub aa()
Dim S As Worksheet
Dim CH As ChartObject
Dim R As Range
Dim i&
Dim A$
'---
Set S = ActiveSheet
For i& = 1 To 3
  Set CH = S.ChartObjects(i&)
  Select Case i&
    Case 1
      Set R = S.Range("$A$3:$A$" & S.[A3].End(xlDown).Row)
      A$ = "=SERIES(,'" & S.Name & "'!" & R.Address & _
         ",'" & S.Name & "'!" & R.Offset(0, 1).Address & ",1)"
      CH.Chart.SeriesCollection(1).Formula = A$
    Case 2
      Set R = S.Range("$C$3:$C$" & S.[C3].End(xlDown).Row)
      A$ = "=SERIES(,,'" & S.Name & "'!" & R.Address & ",1)"
      CH.Chart.SeriesCollection(1).Formula = A$
    Case 3
      Set R = S.Range("$A$3:$A$" & S.[A3].End(xlDown).Row)
      A$ = "=SERIES(,,'" & S.Name & "'!" & R.Address & ",1)"
      CH.Chart.SeriesCollection(1).Formula = A$
  End Select
Next i&
[a1].Select
End Sub
 

heislsim

XLDnaute Junior
Re : Macro automatisation graphique

Merci à vous 2 !

Chris j'ai tenté ça a plus ou moins marché, mais ce n'était pas exactement le rendu que je voulais

PMO2 merci +++ j'ai pas tout compris du code mais j'ai su modifier ce qu'il fallait pour l'adapter à tous mes graphiques ! C'est vraiment top et propre :)
 

Discussions similaires

Réponses
6
Affichages
314

Statistiques des forums

Discussions
312 300
Messages
2 087 020
Membres
103 435
dernier inscrit
azizou31