Clignotement d'ecran - macro Excel

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. 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. Contributeur
      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. 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