Boucler pour faire graphiques

Bonjour,

je débute en macro et suis nouveau sur le forum,

voila mon problème:

qui je pense n'est vraiment pas compliqué, mais je bloque

Alors je viens vers vous vous demander de l'aide svp!

Je souhaiterai à partir du fichier joint

réaliser des graphiques à partir des tableaux qui se trouvent en série les uns au dessous des autres,

Avec si possible le titre du graphique relatif aux différents tableaux ( valeur dans la première colonne)

-voir graphique exemple-

Le nombre de tableaux change parfois

Par avance merci!

Bonjour,

Il faudrait que vous précisiez plusieurs choses:

1. Je suppose que le fichier que vous avez joint n'est qu'un extrait de votre fichier. Donc s'il y a plus de tableaux, pouvez vous confirmer qu'ils sont tous positionnés de la même manière (dans les colonnes A à G et une seule ligne séparant chaque tableau).

2. Faut-il aussi s'occuper de la mise en forme des tableaux ou la mise en forme par défaut suffit ??

3. Idem pour le positionnement sur la feuille de calcul.

dracir a écrit :

Le nombre de tableaux change parfois

4. Comment ?? On supprime (rajoute) des lignes, on efface (remplit) les cellules concernées ou autre ??

5. Faut-il donc également prévoir la suppression des tableaux lorsqu'on efface les données ??

Voilà... Juste quelques questions préliminaires mais bon je ne peux pas vous garantir de résultat.

Cordialement,

Darzou

Bonsoir, et merci pour votre réponse!

Alors pour vous répondre:

1 oui, toujours la même forme, avec une seule ligne de séparation

2 non pas besoin de mise en forme des tableaux

3 oui toujours même emplacement des feuilles de calcul

4 il peut y avoir plus ou moins de tableaux pour un classeur donné

5 non pas de suppression

J espère que cela ira ...

Cordialement

Merci!

Bonsoir,

Un essai en PJ.

Je n'ai ni commenté le code ni géré "l’esthétique". Si besoin est, demandez...

Alt+F8 puis exécuter pour lancer la procédure.

Cordialement,

Darzou

Bonjour et merci,

malheureusement ça plante: erreur d'execution 438 , propriété ou méthode non géré par cet objet

et ça me renvoie ligne "Set a Tab...": dans le code ci dessous

Sub AddCharts()

Dim aTab As Shape

Dim j%, Hauteur%, Largeur%, lRow%

Dim Rg As Range

Application.ScreenUpdating = False

Hauteur = 180

Largeur = 400

lRow = Range("A" & Rows.Count).End(xlUp).Row

j = 0

Do

Set Rg = Range("B1").Offset(j * 14, 0)

Set aTab = ActiveSheet.Shapes.AddChart(xlLineMarkers, 450, j * Hauteur, Largeur, Hauteur)

aTab.Chart.SetSourceData Rg.Resize(13, 6)

aTab.Chart.HasTitle = True

aTab.Chart.ChartTitle.Text = Rg.Offset(1, -1)

j = j + 1

Loop While j * 14 < lRow

Set Rg = Nothing

Set aTab = Nothing

End Sub

J'ai essayé de trouver mais sans réussite...

Bonjour,

Essayez avec Dim aTab as Object ou as Variant à la rigueur mais sinon je ne vois pas trop. Ca fonctionne correctement chez moi sur Excel 2010...

Cordialement,

Darzou

Merci,

Malheureusement toujours pas !

Re...

Je n'ai pas d'autres idées ni le temps de m'y atteler pour l'instant. Essayez de vous renseigner sur l'erreur en question sur internet, erreur qui ne survient pas sur ma version 2010, ou de trouver quelqu'un qui vous proposera une autre procédure.

En dernier test, vous pouvez quand même essayer de supprimer la ligne Dim... mais le problème n'a pas l'air de venir de là.

Cordialement,

Darzou

Bonjour

Juste pour info (je ne saurais pas aider)

AddChart n'est pas supporté par XL 2003 (version de dracir)

Supprimer Dim ne change rien,

Dommage

En tout cas merci quand même

Cordialement

Si le problème viens de addchart, un dernier essai (qui fonctionne toujours sur 2010) après je file...

Sub AddCharts()
Dim j%, Hauteur%, Largeur%, lRow%
Dim Rg As Range
Application.ScreenUpdating = False
  Hauteur = 180
  Largeur = 400
  lRow = Range("A" & Rows.Count).End(xlUp).Row
  j = 0
  Do
    Set Rg = Range("B1").Offset(j * 14, 0)
    With ActiveSheet.ChartObjects.Add(450, j * Hauteur, Largeur, Hauteur).Chart
      .SetSourceData Rg.Resize(13, 6)
      .ChartType = xlLineMarkers
      .HasTitle = True
      .ChartTitle.Text = Rg.Offset(1, -1)
    End With
    j = j + 1
  Loop While j * 14 < lRow
  Set Rg = Nothing
End Sub

Cordialement,

Darzou

J essaierai ça après ce week end,

Merci

Super Darzou, ça fonctionne super bien

Parfait !

Merci

Rechercher des sujets similaires à "boucler graphiques"