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 :

[VBA-E] Actualiser un Graphique aprés Placement des données


Sujet :

Macros et VBA Excel

  1. #1
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut [VBA-E] Actualiser un Graphique aprés Placement des données
    Lut à tous,

    J'utilise vba pour piloter excel;

    Je voudrais savoir comment actualiser un graphique qui depend de valeurs présentes dans quelques cellules aprés avoir changé les valeurs de ces cellules dans une macro.

    L'actualisation se fesait automatiquement lorsque j'avais des entiers dans mes cellules mais maintenant je suis obligé de double cliquer sur une cellule pour que la valeur de celle-ci soit prise en compte dans le graphique.

    je pensai à quelque chose dans le genre :
    Sheets("Graphs").chart("Avancement des tests").Refresh

    evidement ca ne va pas .. quelqu'un aurait-il la solution ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut Re
    salut tout l'monde,

    apparement mon probleme ne vous di pas grand chose,

    pour le resoudre, sauriez-vous comment simuler l'edition d'une cellule ?
    (le double-clic sur celle-ci)

    Merci ;)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 50
    Points
    50
    Par défaut [VBA-E] Actualiserl un Graphique après Placement des Donnée
    Bonjour ,
    j'ai déjà eu ce genre de problème.

    maintenant je redéfinis le graphique, après que des macros aient modifié les données sources
    -->> Je ne Touche pas au TYPE de Graphique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Charts("TONGRAPH").ChartTitle.Text = "TON TEXTE"
     
    Charts("TONGRAPH").SetSourceData Source:=Sheets("TAFEUILLE").Range ("COORDONNEES DES DONNEES SOURCE")
     
    Charts("TONGRAPH").Axes(xlCategory).CategoryNames = Sheets("TAFEUILLE").Range("COORDONNEES DES ABCISSES")))
     
    ' Et je redéfinit aussi la Légende, si elle existe
     
    Charts("TONGRAPH").SeriesCollection(1).Name = "NOM DE LA SERIE 1"
    Charts("TONGRAPH").SeriesCollection(2).Name = "NOM DE LA SERIE 2" ' etc...
    Si ça peut t' aider .....

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Et si tu essayais simplement, par soft :
    Manuellement : F9
    ou "outils -> options -> Calcul immédiat
    Tu dis

  5. #5
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut Test
    Merci pour vos reponse

    ouskel'n'or :

    le Application.calculate ne change rien (ni le F9),
    je n'ai pas trouvé l'option calcul immediat , peut-etre est-ce parceque jutilise excel 2000 ..

    durdesfois :

    je test de suite ta solution,
    j'ai crée le graph sans passer par le code, quel est le nom du graph à utiliser pour Charts("TONGRAPH") ??

    bye a+

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox Activesheet.Shapes(1).name
    si tu n'as qu'un graphe, et là tu as le nom du graphe en grec (qui n'est pas celui affiché dans la feuille de calculs )
    A+

  7. #7
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Re,

    je sens bien que c'est la bonne solution mais je narive pas à acceder à mon graphique,

    lors du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Charts("Chart 9").ChartTitle.Text = "TON TEXTE"
    j'obtien l'erreur (code 9) l'indice n'appartient pas à la selection. (meme lorsque le code est dans la meme feuille que le graphique)

    ps: la msgbox me renvoye Chart 9

    Quel est le pti truc qui ne va pas ?

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu dois le sélectionner pour lui faire des chose dedans Et pour le sélectionner, tu dois désigner la feuille.
    Tu as récupéré le bon nom ?

  9. #9
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    yep,

    bon, ma feuille se nomme "Graphs", mon graph "Chart 9" et je narive toujours pas à le selectionner ..

    j'ai essayé plusieurs solution comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Sheets("Graphs").Select
     
        Charts("Chart 9").ChartTitle.Text = "TON TEXTE"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Sheets("Graphs").Select
        Dim Index As Integer
        Index = 2
        Charts(Index).ChartTitle.Text = "TON TEXTE"
    toujours la meme erreur (sur la der ligne), l'indice n'appartient pas à la selection.

    Pourquoi ne trouve-til pas le graphique ?

    Merci d'avance

  10. #10
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Re,

    petite précision :

    le graphique est incorporé dans la feuille de calcul (ChartObjects)

    et je n'ai pas d'objet correspondant dans l'explorateur du projet.


  11. #11
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Redefinition du graphique Reussie !!

    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
    Private Sub Worksheet_Activate()
     
        ActiveSheet.Range("A1").Activate
        ActiveSheet.ChartObjects(2).Activate
     
        ActiveChart.ChartTitle.Text = "Avancement des tests"
     
        ActiveChart.Axes(xlCategory).CategoryNames = Sheets("Graphs").Range("B67:B70")
     
        ActiveChart.SeriesCollection(1).Name = "Tests executés"
        ActiveChart.SeriesCollection(1).Values = Sheets("Graphs").Range("C67:C70")
     
        ActiveChart.SeriesCollection(2).Name = "Tests à executer"
        ActiveChart.SeriesCollection(2).Values = Sheets("Graphs").Range("D67:D70")
     
    End Sub
    mais le post n'est tjr po résolu ..

    Cela actualise, si je met un range vide rien ne s'affiche mais quand je remet le bon range il me faut encore doubleCliquer sur la celule modifiée ..

    je vais surement abandonner, pourtant je developpe en c++ d'habitude et c'est du vba qui me bloque !! l'halu ..

    bye

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Points : 50
    Points
    50
    Par défaut [VBA-E] Actualiser un Graphique aprés Placement des données
    Alors,

    Comme tu utilises des Graphiques incorporés dans une feuille, la collection
    Charts est VIDE.

    Dans ce cas tu dois te servir le la collection ChartObjects

    Ce qui veux dire que tu dois remplacer:

    Charts("TONGRAPH")

    par

    sheets("Graphs").Chartobjects("TONGRAPH").Chart

    Je n'ai pas essayé, mais ca tourne autour de çà.


    Regarde 'ChartObject" dans l'aide VBA et tu verras mieux.

    A+

  13. #13
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Pour le pb de la mise à jour des données par clic dans les cellules, pour rafraîchir tes données, comment t'y prends-tu ? Peux-tu mettre un bout de code ?

  14. #14
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Re,

    je place simplement mes données comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ' pour le titre
    Sheets("Graphs").Cells(70, 2).Value = "Admin : " & nbTestPasse & "/" & nbTest
    ' pour les données
    Sheets("Graphs").Cells(70, 4).Value = Format(((TempEst - TempRestant) / 60), "#0.0")
    Sheets("Graphs").Cells(70, 3).Value = Format((TempRestant / 60), "#0.0")
    ps: h est un double les autres sont des entiers

    Peut etre faut-il placer directement des variable d'un certain type ?

  15. #15
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 128
    Points : 188
    Points
    188
    Par défaut actualisation graph
    Je rentre tard dans la discussion mais mieux vaut tard que jamais !

    J'ai déjà eu ce problème avec des nombres flottants. La courbe est bonne mais l'étiquette (= valeurs des ordonnées affichées pour chaque abscisse directement sur le graphique) ne s'affiche pas correctement.

    J'ai résolu ce problème de 2 façons:
    1) Tu fais une macro qui redéfinit tes axes (abscisse & ordonné) [mais toi ça ne marche pas si j'ai bien lu ? ]
    2) tu sauvegarde ton classeur: ActiveWorkbook.Save et l'actualisation se fait d'elle même

    La deuxième solution est très "naïve", mais elle fonctionne pour moi !

    J'espère t'avoir aidé !

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/03/2015, 11h53
  2. Réponses: 3
    Dernier message: 30/10/2007, 13h48
  3. Probleme placement des données
    Par wiLBuzz dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 19/07/2007, 16h01
  4. Réponses: 7
    Dernier message: 02/11/2006, 02h15
  5. atteindre un ancre aprés soumission des données
    Par adilou1981 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/03/2005, 17h23

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