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 :

Macro Graphique Dynamique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Par défaut Macro Graphique Dynamique
    Bonjour,

    Voici mon souci ... i hope u ll help me

    voila j ai un tableau simple à double entrée...
    en ligne les années,
    en colonne le nom des villes ...

    les années s'étendent pour le moment de 2006 à 2009...

    je génère à partir de ce tableau un histo dont les "séries" sont les années...
    mon souci est que je souhaiterais que lorsque j'ajoute manuellement une colonne à mon tableau (et donc une "série"), mon graph ajoute automatiquement un histogramme ...

    en gros, si je rajoute l'année 2010 (puis 2011...etc etc), je souhaite que la série 2010 apparaisse en auto dans mon graph...avec les valeurs correspondantes bien entendu

    J ai bien essayé avec la fonction decaler, mais cette fonction ne permet pas dajouter de série !

    si vous pouviez m'aider, j suis dépassé la ! ...je crois ke j ai besoin de l aide d'une ptite macro ... Si je n ai pas été clair ( ce qui ne me surprendrais pas ... voici un fichier d'exemple ...)

    Merci par avance !
    Fred
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Hello !
    Alors, petits conseils
    • Sépare ton tableau du titre. Une ligne vide serait bienvenue
    • Quand tu cliques sur A4, puis fais Edition/Atteindre/Cellule/Zone en Cours, tu sélectionne ton tableau (séparé du titre, ne l'oublions pas). Si tu regardes dans le fichier vbalist.xls la correspondance entre le FR et le US, tu verras que ZoneEnCours se dit CurrentRegion
    • Si, depuis le VBE, tu fais F2, et choisis la bibliothèque Excel, tu trouveras, colonne de gauche, le mot Chart. A droite, tu trouveras SetSourceData. La pression sur la touche F1 t'aidera à comprendre la syntaxe et à quoi cela sert.
    En finalité, tu auras une macro d'une seule ligne qui donnera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    'Définit la source (SetSourceData)
    'du graphique (Chart) 
    'du premier objet graphique (ChartObjects(1))
    'de la première feuille de calcul (Worksheets(1))
    'comme étant la zone en cours (CurrentRegion)
    'de la plage A4 (Range("A4"))
    'de la première feuille de calcul (Worksheets(1))
    Worksheets(1).ChartObjects(1).Chart.SetSourceData Worksheets(1).Range("A4").CurrentRegion
    Voilà !
    Je t'ai donné diverses méthodes pour arriver à tes fins.
    J'aurai pu parler de l'enregistreur de macros également, (Outils/Macros/Nouvelle macro).
    Tous ces outils te permettront, la prochaine fois, de ne pas hésiter à nous montrer ce que tu auras déjà fait pour répondre à ton besoin.

    Cordialement,

  3. #3
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Par défaut oui mais ...
    Merci pour cet "élément de réponse" ... Ca me force à ma creuser la tet mais au moins j apprends... à ce sujet, j 'ai enregistré puis modifié la macro comme suit...
    le souci, c'est que si je rajoute une colonne, en activant la macro, elle ne prend pas la nouvelle colonne ... il faut le faire manuellent (en tirant sur la poignée de typ "recopie")

    une idée pour que ca soit en auto ???

    thanks in advance

    merci d'avoir pris le temps de me répondre de manière aussi complète
    Fred

    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
    25
    26
    27
    28
    29
    30
    31
    Sub testfred()
    '
    ' testfred Macro
    ' Macro enregistrée le 07/11/2007 par Frederic
    '
    
    '
        Range("A3:F7").Select
        Range("F7").Activate
        Charts.Add
        ActiveChart.ChartType = xlColumnClustered
        ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("A3").CurrentRegion, PlotBy:= _
            xlRows
        ActiveChart.SeriesCollection.NewSeries
        ActiveChart.SeriesCollection(1).XValues = "=Feuil1!R4C1:R7C1"
        ActiveChart.SeriesCollection(1).Values = "=Feuil1!R4C2:R7C2"
        ActiveChart.SeriesCollection(1).Name = "=Feuil1!R3C2"
        ActiveChart.SeriesCollection(2).XValues = "=Feuil1!R4C1:R7C1"
        ActiveChart.SeriesCollection(2).Values = "=Feuil1!R4C3:R7C3"
        ActiveChart.SeriesCollection(2).Name = "=Feuil1!R3C3"
        ActiveChart.SeriesCollection(3).XValues = "=Feuil1!R4C1:R7C1"
        ActiveChart.SeriesCollection(3).Values = "=Feuil1!R4C4:R7C4"
        ActiveChart.SeriesCollection(3).Name = "=Feuil1!R3C4"
        ActiveChart.SeriesCollection(4).XValues = "=Feuil1!R4C1:R7C1"
        ActiveChart.SeriesCollection(4).Values = "=Feuil1!R4C5:R7C5"
        ActiveChart.SeriesCollection(4).Name = "=Feuil1!R3C5"
        ActiveChart.SeriesCollection(5).XValues = "=Feuil1!R4C1:R7C1"
        ActiveChart.SeriesCollection(5).Values = "=Feuil1!R4C6:R7C6"
        ActiveChart.SeriesCollection(5).Name = "=Feuil1!R3C6"
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
    End Sub

  4. #4
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Citation Envoyé par FreddyNB Voir le message
    une idée pour que ca soit en auto ???
    Oui !
    Tu recopies le code que je t'ai donné...

Discussions similaires

  1. Graphique dynamique par macro
    Par vivevba dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/05/2009, 10h11
  2. Excel, macro, graphique
    Par djibril dans le forum Modules
    Réponses: 8
    Dernier message: 05/05/2006, 21h18
  3. [Map] comment generer une interface graphique dynamiquement?
    Par hby dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 20/04/2006, 16h01
  4. [Librairies] Graphique dynamique
    Par piloup dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/12/2005, 19h56
  5. Interface graphique dynamique
    Par gmonta dans le forum Windows Forms
    Réponses: 7
    Dernier message: 05/10/2005, 14h47

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