Clignotement d'ecran - macro Excel

Antoine -  
Gord21 Messages postés 928 Statut Membre -
Bonjour à tous,

Voilà j'ai un problème de clignotement d'écran qui persiste malgré le

application.screenupdating = false

après recherche des sujets similaires, il semblerait que les .activate pourraient être les coupables...

ma macro met à jour des graphes avec une boucle qui les active un par un:

NbChart = ActiveSheet.ChartObjects.Count

For cht = 1 To NbChart
ActiveSheet.ChartObjects(cht).Activate
<code>
next cht

comment aller trafiquer un graphe sans "activate"?

Merci d'avance pour votre aide!

1 réponse

  1. Gord21 Messages postés 928 Statut Membre 289
     
    Bonsoir,
    Dans ton code, tu utilises probablement des lignes du type :
    ActiveChart.Axes(xlCategory).HasTitle = True

    qu'il faudrait remplacer par :
    Charts(cht).Axes(xlCategory).HasTitle = True

    L'effet de clignotement devrait être réduit.

    @+
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour à tous

      essaies aussi
      With sheets("nomde la feuille").ChartObjects(cht)
      le code
      end with

      nota: avec ce système, les propriétés et méthodes de l'objet "chart" doivent être précédées d'un point

      par exemple sur l'idée de l'ami Gord (bonjour, ca va ?)
      With sheets("nomde la feuille").ChartObjects(cht)   
         .Axes(xlCategory).HasTitle = True   
      end with 


      en général, il vaut mieux employer with end with aussi bien pour les feuilles et les objets car cela évite les activate ou select: plus rapide et évite les scintillements

      tu pourrais ainsi avoir ce code

      With Sheets("nomfeuille")
          NbChart = .ChartObjects.Count
          For cht = 1 To NbChart
              With .ChartObjects(cht)
                  .Axes(xlCategory).HasTitle = True
              End With
          Next
      End With


      encore une fois: n'oublie pas les points (expérience perso) !!!
      0
    2. Gord21 Messages postés 928 Statut Membre 289
       
      Bonsoir,
      Je dois admettre que la solution proposée par Michel (oui, ça va) est plus complète que la mienne, elle a aussi l'avantage d'accélérer l'exécution du code surtout s'il y a beaucoup d'objets.
      @+
      0