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

Excel Discussion :

graphique non mis à jour automatiquement


Sujet :

Excel

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut graphique non mis à jour automatiquement
    Bonjour,
    J'ai office 2016. En excel, j'ai un graphique nuage de points (XY) dans une feuille.
    En VBA, j'ai une boucle for qui modifie les coordonnées X et Y.
    Pour que le graphique se mette à jour, je suis obligé d'incorporer les 2 instructions suivantes pour que le graphique se mette à jour à chaque boucle:
    Voici le couple d'instructions:
    calculate
    activesheet.chartobjects("chart 1").activate
    Et des fois, ça ne fonctionne pas.
    Pourtant tout marchait très bien sans ces instructions avec office 2010 !!!
    Merci d'avance pour votre aide.

    Fred

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    C'est connu, c'était toujours mieux avant ! Est-ce que tu peux poster ton code ?

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Ta feuille ne serait-elle pas en recalcul manuel ?
    Tu n'aurais pas commencé ton code par des instructions pour empêcher les recalculs ou le rafraichissement de l'affichage ?

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut
    Bonjour messieurs (qui ont répondu et les autres)
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub CommandButton1_Click()
      Application.EnableCancelKey = xlErrorHandler
      On Error GoTo Gere_Erreurs1
      For i = 1 To 2700
        Worksheets("simul").Cells(1, 9) = i
        Calculate
        Worksheets("simul").ChartObjects("Graphique 5").Activate
      Next i
    Gere_Erreurs1:
      If Err = 18 Then
        MsgBox "You cancelled"
      End If
    End Sub
    Il y a 4 boutons de commandes comme celui-là, chacun pour son graphique.
    Ce code fonctionne pour 2 boutons mais pas pour les 2 autres !!!!!
    Si j'enlève l'activation du graphique, ça ne marche pas.
    Dans l'option générale, le recalcul des formules est en automatique.
    Je n'ai pas vu de recalcul de graphique.
    Je vais peut-être essayer avec des feuilles graphiques autonomes.
    Merci encore,

    Fred

  5. #5
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Est-ce que tu peux, s'il te plait, mettre ton classeur en PJ ?

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut
    Il fait plus de 2Mb donc pas chargeable sur ce site.

    Fred

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Ton problème n'est peut être pas une non exécution mais plutôt un long délais d'exécution.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Il fait plus de 2Mb donc pas chargeable sur ce site.
    Utilise DropBox ou OneDrive, GoogleDrive etc.

  9. #9
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut
    Il y a 4 boutons et 3 graphiques dans une feuille. 1 bouton par graphique et un 4ème qui réactualise les 3 graphiques.
    Sauf que pour 2 boutons qui ne fonctionnent pas, le graphique se réactualise avec des valeurs qui se trouvent dans d'autres feuilles (tout est dans le même classeur).
    Sauf qu'il y a un hic car pour le 4ème bouton qui réactualise les 3 graphiques (qui va chercher des valeurs dans les 3 feuilles), ça fonctionne.

    Je viens de déplacer le graphique et son bouton (qui ne se réactualisent pas) dans la feuille où il y a ses valeurs et ça fonctionne.
    Mais pour les boutons qui fonctionnent bien il faut rajouter "calculate"+ "chartobjects.Activate" sinon ça ne réactualise pas.
    Que penser ?

    Merci d'avance,

    Fred

  10. #10
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par AlfredKr Voir le message
    Mais pour les boutons qui fonctionnent bien il faut rajouter "calculate"+ "chartobjects.Activate" sinon ça ne réactualise pas.
    Que penser ?
    La seul conclusion logique à l'intérêt de Calculate est que la feuille est en recalcul manuel. Mais puisque tu dis que non...

    Par contre, je ne comprends pas pourquoi tu as mis ton calculate à l'intérieur de la boucle For to.
    Recalculer 3000 fois ta feuille, ça doit prendre du temps.

  11. #11
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut
    Merci pour votre réponse, Menhir,

    Premièrement, le 4ème bouton met à jour les 3 graphiques dont les valeurs sont dans 3 feuilles différentes et ça fonctionne très bien et rapidement.
    Deuxièmement, même pour les boutons qui fonctionnent, si je retire l'instruction "calculate", ça ne fonctionne plus.

    Pour Daniel C., je n'ai jamais envoyé par dropbox et autres.
    Je peux envoyer par wetransfer mais à quel mail destinataire?

    Merci pour vous être intéressés à mon problème...

    Fred

  12. #12
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Tu peux charger le classeur ici : http://cjoint.com et poster le lien généré. Sinon, comment définis-tu les données des séries dans les graphiques ?

  13. #13
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut
    Tout d'abord, ça fonctionnait très bien avec EXCEL 2010 et versions précédentes.
    Chaque graphique est un nuage de points XY de 6 points. L'ordonnée est un vecteur colonne simple et constant de 6 valeurs (0..5) et l'abscisse est un vecteur de 6 valeurs qui est mis à jour à chaque fois dans la boucle for, les valeurs sont tirés d'un tableau de 6 colonnes et 2000 lignes. Par la fonction INDEX, le vecteur abscisse est remplacé par la ligne indice i de la boucle for.

    J'ai toujours effectué ce procédé pour faire de l'animation dans les graphiques et ça a toujours marché avant cette version.

    Fred

  14. #14
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sinon, comment définis-tu les données des séries dans les graphiques ?
    Je veux dire : quelles instructions VBA.

  15. #15
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par AlfredKr Voir le message
    Tout d'abord, ça fonctionnait très bien avec EXCEL 2010 et versions précédentes.

    J'ai toujours effectué ce procédé pour faire de l'animation dans les graphiques et ça a toujours marché avant cette version.

    Fred
    Je n'ai pas Office 2016. Mais, si c'est comme pour Office 2010, il y a probablement dans ton aide de VBA, des rubriques sur les modifications du modèle-objet d'une version à l'autre. Tu ne perds pas grand chose à vérifier cela pour 2016.

  16. #16
    Invité
    Invité(e)
    Par défaut
    Salut,

    As-tu essayer DoEvents ?
    Cette instruction permet de mettre à jour les données d'un graphique dans une boucle par exemple.

  17. #17
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut
    Tout d'abord, merci pour toutes vos réponses.
    A Daniel C.: VBA n'est utilisé que pour incrémenter la cellule "indice2". Il n'y a que la méthode que je vous ai envoyée au début. Le tableau qui fournit le vecteur des abscisses est un tableau de valeurs que j'ai copié simplement et que je ne modifie pas et que j'ai importé d'un autre programme par copier-coller.
    Donc VBA ne fait presque rien.
    Dans la boucle for, si j'enlève le calculate ça ne marche pas.
    De plus, dans les graphiques, j'ai un contrôle texte qui indique un temps (=temps d'échantillonnage constant * indice2 qui est incrémenté dans la boucle for.
    Quand j'ai le calculate mais pas l'activation du graphique, le contrôle texte se met à jour mais pas la courbe !!!!

    Je tourne en rond.
    Pour les autres: j'ai essayé avec doevents, ça pédale indéfiniment et rien ne change.
    Fred
    PS: je vais essayer de diminuer le nombre de valeurs de mes tableaux pour que le classeur soit plus light et je pourrai vous l'envoyer.

  18. #18
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut
    Voici la version light du classeur.exemples diff bats light.xlsm

  19. #19
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    "DoEvents" résout le problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub CommandButton1_Click()
      Application.EnableCancelKey = xlErrorHandler
      On Error GoTo Gere_Erreurs2
      For i = 1 To 800
        Worksheets("simul").Cells(1, 9) = i
        DoEvents
    '    Worksheets("simul").Calculate
    '    ActiveSheet.ChartObjects("Graphique 5").Activate
      Next i
    Gere_Erreurs2:
    End Sub

  20. #20
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut
    OK et merci mais je ne comprends toujours pas pourquoi avec calculate et activate ça marche avec des boutons et pas les autres.

    Grand merci quand même...

    Fred

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Graphique formulaire non mis à jour
    Par meud007 dans le forum VBA Access
    Réponses: 0
    Dernier message: 30/06/2014, 17h17
  2. [XL-2007] Formats non mis à jour automatiquement
    Par Le_ménéstrel dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/08/2012, 15h42
  3. Mis à jour automatique signature
    Par Vinceee38 dans le forum Windows XP
    Réponses: 7
    Dernier message: 24/05/2007, 16h20
  4. [AJAX] Incompatibilité avec IE (données non mis à jour)
    Par WeDgEMasTeR dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/05/2007, 19h46
  5. parametre non mis à jour
    Par rherrad dans le forum Struts 1
    Réponses: 2
    Dernier message: 11/04/2007, 13h35

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