Création de graphique avec VBA

CandideLeReveur Messages postés 4 Date d'inscription vendredi 13 février 2009 Statut Membre Dernière intervention 18 février 2009 - 17 févr. 2009 à 12:00
CandideLeReveur Messages postés 4 Date d'inscription vendredi 13 février 2009 Statut Membre Dernière intervention 18 février 2009 - 18 févr. 2009 à 13:12
Bonjour,

Je voudrais créer un graphique avec VBA mais le programme ci-dessous ne fonctionne pas. Savez-vous pourquoi?

Range("B3:B9,D3:D9,F3:F9").Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range( _
        "Tab!$B$3:$B$9;Tab!$D$3:$D$9;Tab!$F$3:$F$9")
    ActiveChart.ChartType = xlLineMarkers

Il bogue dès la ligne 2. Si je rajoute Cells(1,1).Activate entre la ligne 1 et 2, il bogue à la ligne 3 (ActiveChart.SetSourceData [...])

Merci beaucoup!

3 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
17 févr. 2009 à 12:34
Salut
Simple : Enregistre une macro pendant que tu fais la manip à la main et il te fournira le code adéquat.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 13
17 févr. 2009 à 15:42
Salut,

Une petite remarque pour commencer : Tu n'es pas dans le bon theme !... Pour Excel et plus generalement le VBA c'est ici :

--->  Thèmes / Visual Basic 6 / Langages dérivés / VBA /

Non non !!! ne reposte pas ailleurs on continu malgré tout avec celui-ci !

Ceci etant dit, je ne sais evidemment pas quelle version d'excel tu utilises mais en V2003 Addchart n'existe pas donc pour une meilleur aide je te conseil de preciser la version d'excel utilisée.

Avec excel 2003 on pourrait faire un truc comme ça :

    Dim MesDonnees As Range, MaFeuille As Worksheet
    Set MaFeuille = ActiveSheet
    Set MesDonnees = MaFeuille.Range("B3:B9,D3:D9,F3:F9")
    Range("B11").Activate 'activation de la cellule de reference pour la position du graphe
    Charts.Add
    With ActiveChart
        .ChartType = xlLineMarkers
        .SetSourceData Source:=MesDonnees
        .Location xlLocationAsObject, MaFeuille.Name
    End With
    With ActiveChart
        .HasTitle = False
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With

A+
0
CandideLeReveur Messages postés 4 Date d'inscription vendredi 13 février 2009 Statut Membre Dernière intervention 18 février 2009
18 févr. 2009 à 13:12
Bonjour,

Merci à tous les deux de vos indications et désolé pour le mauvais forum (je ferai mieux la prochaine fois!).

Jack, j'avais justement fait ça pour sortir le programme que je donne mais en le reproduisant, il ne fonctionnait plus.

Big Fish, ton programme fonctionne parfaitement, merci beaucoup. Un problème cependant : est-il possible de passer par Cells(i,j) plutôt que par Range? Car mon tableau de données varie à chaque fois (entre 1 et 10 colonnes) donc j'ai besoin de créer une boucle pour rentrer ces données.

Merci encore!
0