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 :

Créer un graphique avec des données sources variables


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par défaut Créer un graphique avec des données sources variables
    Bonjour à tous.

    Après avoir pas mal cherché, sans succès, une solution à mon problème, je viens vous l'exposer (je code sous excel 2002).

    J'aimerais afficher un graphique par macro, dont les composantes sont laissées au choix de l'utilisateur. Mon projet comprend donc 3 phases:

    Macro 1: Récupération et agrégation des données choisie par l'utilisateur
    Macro 2: Création du graphique à partir des données agrégées
    Macro 3: Affichage du graphique dans un userform

    Les macro 1 et 3 fonctionnent parfaitement.

    Cependant je bloque sur la macro 2.

    Pour la réaliser je me suis inspirer de l'enregistreur de macro, qui donne le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Charts.Add
        ActiveChart.ChartType = xl3DPie
        ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("C2:D6"), PlotBy:= _
            xlColumns

    Etant donné que ma plage de donnée est variable, j'ai voulu remplacer le code en rouge (Range...) par ma plage de donnée variable.

    J'ai essayé une centaine de solution différente, et je pense avoir réussi à en trouver une satisfaisante, la voici:

    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
    19
    20
    21
    22
    23
    24
    Sub macro4()
     
    Dim var1, var2 As Byte 'Ma plage de donnée est en réalité variable. J'ai simplifié ici le problème
    var1 = 3
    var2 = 6
     
    'Sélection de la zone variable, et adaptation à mes besoins : Pas la première ligne, et seulement 2 colonnes
    Cells(2, var1).Select
    Selection.CurrentRegion.Offset(1, 0).Resize(Rows.Count - 1).Resize(var2 - 1, 2).Select
     
        Charts.Add
        ActiveChart.ChartType = xl3DPie
     
        ActiveChart.SetSourceData Source:=Sheets("Feuil1").Selection, PlotBy:= _
            xlColumns
     
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
     
        With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = "titre"
        End With
     
    End Sub

    Je tiens à signaler qu'avec ce code, mon graphique est créé, exactement comme je le désire. (enfin presque, car avec ce code il est créé sur une nouvelle feuille, et je souhaiterais qu'il soit créé sur la feuille courante).
    Cependant, à cause de l'erreur, mon application est bloquée !

    Je ne comprend pas pourquoi j'obtiens cette erreur, alors que la macro fonctionne !!!

    Donc si vous avez une idée à me proposer, je vous remercie d'avance!
    N'hésitez pas à me demander un complément d'information, si mon explication n'est pas suffisamment claire.

    Merci d'avance !

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Bonsoir,

    ton remplacement tu la effectuer comment, on peu voir le code, pense à utiliser les balises de code (bouton # ) ... pour éviter d'avoir des bonhommes rieurs au milieu de ton code ..

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par défaut
    Désolé, j'avais pas fait attention.
    C'est mieux maintenant?

  4. #4
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    il ne faut pas utiliser selection et select pour autre chose que pour faire de l'animation !


    montre nous ton code entre balise [ code ] bouton # , en texte pas en images ! qu'on n'est pas à tout retaper pour ta correction ..

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par défaut
    Citation Envoyé par JackOuYA Voir le message
    il ne faut pas utiliser selection et select pour autre chose que pour faire de l'animation !
    A priori, ce que je veux faire est de l'animation.
    Puisque dans l'étape 3, ce graphique sera présenté à l'utilisateur.

    Enfin, si tu as une meilleure proposition, je suis preneur :-)

  6. #6
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    et tes sélections tu veux les afficher pour que lors de l'animation ton utilisateur les voient ????

    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
     
    dim yaPlage as range
    Dim yaCh as chart
    set yaPlage = sheets("Feuil2").Cells(2, var1).CurrentRegion.Offset(1, 0).Resize(Rows.Count - 1).Resize(var2 - 1, 2)
       Set yaCh = Charts.Add
       yaCh.ChartType = xl3DPie
       yaCh.SetSourceData Source:=yaPlage, PlotBy:= _
           xlColumns
       yaCh.Location Where:=xlLocationAsObject, Name:="Feuil1"
     With ActiveChart
         .HasTitle = True
        .ChartTitle.Characters.Text = "titre"
      End With
     
    End Sub

    tu dis quoi ..

Discussions similaires

  1. Graphique avec des données précises en vba
    Par seyflo dans le forum Excel
    Réponses: 10
    Dernier message: 25/05/2010, 09h47
  2. Créer un graph avec des données variables
    Par Damien.020 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2010, 09h52
  3. Créer un graphique avec des données dynamiques
    Par nikobell dans le forum Excel
    Réponses: 5
    Dernier message: 17/01/2010, 19h39
  4. Réponses: 1
    Dernier message: 28/01/2009, 09h01
  5. Créer du xml avec des données Oracle
    Par Baumont dans le forum Oracle
    Réponses: 3
    Dernier message: 23/11/2005, 15h35

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