IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

graphique sous vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 174
    Par défaut graphique sous vba
    Bonjour,

    voici mon code pour insérer un graphique sous vba.
    mais il ne reconnait pas la fonction "setsourcedata"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub graph()
    Dim graph As Chart
     
    Set graph = Chart.Add()
    With graph
    Name = tracé
    ChartType = xlXYScatterLines
    SetSourceData calcul2.Range("i10:k109")
    HasTitle = True
    HasLegend = True
    chartitle.Text = "titre du graphique"
    End With
     
    End Sub
    pourriez vous m'éclaircir la situation.

    merci

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    A vue de nez, si calcul2 est le nom de ta feuille, tu dois l'écrire comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetSourceData Sheets("calcul2").Range("i10:k109")
    C'est ça ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 174
    Par défaut
    oui j'ai essayé cette solution mais ça ne fonctionne toujours pas

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    au pif, il manque plein de point dans la clause with.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Sub graph()
    Dim graph As Chart
     
    Set graph = Chart.Add()
    With graph
        .Name = "tracé"
        .ChartType = xlXYScatterLines
        .SetSourceData calcul2.Range("i10:k109")
        .HasTitle = True
        .HasLegend = True
        .chartitle.Text = "titre du graphique"
    End With
     
    End Sub

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 174
    Par défaut
    oui pardon c'est vrai.

    mais meme avec les points cela ne fonctionne toujours pas. Je ne comprends pas surtout que j'ai un exemple dans mon cours qui reprends la même écriture que j'ai.

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Oui sorry, j'ai regardé un peu trop en diagonale, ton code possède plusieurs erreurs. Voici un exemple commenté que tu pourras adapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub Graph()
    Dim Graph As Chart
     
    Set Graph = Charts.Add 'insertion du graphique
    With Graph
        .ChartType = xlColumnClustered 'type de graphique, ici modèle classique
        .Name = "Graphique" 'nom du graphique
        .SetSourceData Source:=Sheets("Feuil1").Range("A1:D32"), PlotBy:=xlColumns 'ce qu'on veut voir apparaître dans le graphique
        .Location Where:=xlLocationAsNewSheet 'emplacement du graphique, dans ce cas sur une nouvelle feuille
        .HasTitle = True 'oui on veut nommer le graph.
        .ChartTitle.Characters.Text = "Test Graphique" 'nom du graph.
        .Axes(xlCategory, xlPrimary).HasTitle = True 'oui on veut nommer l'axe des absisses (X)
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Dates" 'nom de l'axe X
        .Axes(xlValue, xlPrimary).HasTitle = True 'oui on veut nommer l'axe des ordonnées (Y)
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Valeurs" 'nom de l'axe Y
    End With
     
    End Sub
    2 erreurs fondamentales, valables pour toutes les procèdures :
    • Lorsque tu utilises With...End With, tu dois ajouter un point devant la propriété ou l'objet, par exemple :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      With Sheets("Feuil1")
          .Range("A1") = "coucou" '<-- point devant Range
          .Name = "toto" '<-- point devant Name
      End With

    • Lorsque tu définis la valeur d'une variable ou d'une propriété de type String, ta chaîne de caractères doit être entourée de guillements, pour exemple voir ci-dessus avec la propriété Name

  7. #7
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    si l'erreur persiste

    tu peux nous dire laquelle est renvoyée par le debugger?


  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 174
    Par défaut
    non c'est bon je l'ai remis à ma sauce et cela fonctionne nickel;

    mais alors connaissez vous le code pour "nuage de points" mais non relié.

    dernière petite précision, comment faire pour indiquer à coté des point leur numéro (par exemple 1001 (1800,1800))

    merci

  9. #9
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Un truc à faire est d'utiliser l'enregistreur de macro, tu lances l'enregistreur, tu crées manuellement un graphique comme tu souhaites l'avoir, tu arrêtes l'enregistrement et tu regardes le code obtenu. Après il faut un peu nettoyer ce code vu que l'enregistreur note absolument tout comme par exemple les déplacements sur la feuille, mais au moins ça te donne une bonne indication.

    Essaye déjà ça

Discussions similaires

  1. Graphique sous VBA
    Par bsangoku dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 05/02/2013, 20h34
  2. Nommenclature graphique sous VBA
    Par p51 mustang dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/12/2010, 20h49
  3. Graphiques sous VBA (excel)
    Par charlotte3 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/08/2009, 16h22
  4. Graphique sous VBA Excel 2003
    Par sincenono dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/01/2009, 13h44
  5. [VBA-E]Deplacer un graphique sous Excel
    Par gaudy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/04/2006, 06h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo