Mise à jour d'un graphique dans Excel 365

Résolu
FPI -  
 FPI -
Bonjour à tous,

Je débute avec VBA pour Excel 365 et je planche depuis 2 jours sur un problème de mise à jour automatique d'un graphique simple.

J'ai écrit la mini macro suivante afin de calculer le sinus des angles de 0 à 360 dans ma feuille Excel et je voudrais montrer "en direct" la variation des valeurs sur un petit graphique situé dans la même feuille de calcul :

Sub angle()

For x = 0 To 360
Range("a1") = x
Next x

End Sub


Quand je l'exécute, les valeurs vont bien de 0 à 360 dans la cellule A1, par contre le graphique que j'ai créé à partir de la fonction sinus dans ma feuille de calcul ne varie pas en fonction de l'évolution des valeurs de x

Est-ce que quelqu'un aurait une idée ?

Je vous remercie d'avance pour vos réponses.

Bonne soirée.

5 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir

    ton code s’exécute mais tellement vite que tu ne vois rien
    Il faut mettre une pause avant le Next
    Pour une pause d'une seconde
    Application.Wait (Now + TimeValue("00:00:01") )


    Ce sera sympa de poster ton fichier lorsqu'il sera fonctionnel (aller sur cjoint.com, telécharger le fichier, faire créer un lien, le copier et revenir le coller ici)

    Cdlmnt
    Via

    1
  2. FPI
     
    Bonsoir Via,

    Un grand merci pour ta réponse.

    J'y avais pensé, j'avais inséré dans la boucle "For - Next" un délai mais le graphique reste toujours figé. Snifff.

    Bonne soirée !

    François.
    0
  3. FPI
     
    Bonsoir,

    Après de nombreuses recherches sur d'autres forums, j'ai enfin trouvé une solution à mon problème, voici le code qui fonctionne :

    Sub angle()

    For x = 0 To 360
    Calculate
    Range("a1") = x
    DoEvents
    Next x

    End Sub


    L'ajout des instructions "Calculate" et "DoEvents" permettent au graphique de se mettre à jour...... mais je ne comprends absolument pas pourquoi....

    J'ai beau chercher dans l'aide l'action de ces instructions, je ne comprends pas car il semble qu'il s'agit d'une méthode et d'une fonction... ???

    Si qq'un pouvait un peu éclairer ma lanterne, ce serait super sympa !

    D'avance merci et bonne nuit...

    François.
    0
  4. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Calculate force Excel à recalculer la feuille mais il n'y en même pas besoin tu peux supprimer cette ligne

    DoEvents suspend la macro et rend la main au système donc la boucle affiche une valeur en A1 puis DoEvents rend la main à Excel, le graphique prend en compte la valeur de A1 puis la boucle continue, nouvelle valeur, nouvelle pause dans la macro, le graphique se met à jour etc d'où l'effet d'animation

    par contre tu ne peux pas régler la vitesse de l'animation alors qu'avec Application.Wait tu mets le temps de latence que tu veux

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. FPI
     
    Hello Via,

    Tu réponds plus vite que ton ombre !!! :)

    Je te remercie pour tes explications claires.

    Bonne nuit et au plaisir !

    François...
    0