Affichage de courbes

C

Claudio54

Guest
Bonjour à tous,

Je suis novice en vba et je viens de découvrir ce superbe forum. En le parcourant, je n'ai pas trouvé la solution à mon problème :

Je veux tracer 2 courbes issues d'un tableau d'environ 900 valeurs. Un graph sous forme de courbe et l'autre sous forme de points. Le premier doit se tracer chronologiquement avec toutes les valeurs tandis que le second ne garde qu'une dizaine de valeurs en "glissant" au même rythme que la première courbe.

Tout ça est mal expliqué mais ça fonctionne (voir le fichier joint ). Le problème que je n'arrive pas à résoudre c'est le scintillement de l'écran. Est-ce qu'il serait possible d'éviter ce problème ?

Merci d'avance et bravo à tous pour cette source considérable d'infos que constitue ce forum.
 

Pièces jointes

  • Exemple.zip
    38.2 KB · Affichages: 27
  • Exemple.zip
    38.2 KB · Affichages: 38
  • Exemple.zip
    38.2 KB · Affichages: 21
G

Gérard DEZAMIS

Guest
Bonjour Claudio54

Au début de ta macro
Application.Screenupdating=False
Cela évite la mise à jour de l'écran à chaque instruction
A la fin
Application.Screenupdating=True

En plus cela évite de perdre du temps donc macro plus rapide

@+
GD
 
C

Claudio54

Guest
Bonjour et merci d'avoir répondu.

Malheureusement c'est ce que je pensait mais que je mette ces instructions ou pas, le résultat est le même. Je n'arrive tjs pas à supprimer le scintillement de l'écran...
 
G

Gérard DEZAMIS

Guest
Re Claudio54

Essaye de supprimer la derniere instruction ==> remise à TRUE

Application.ScreenUpdating=False etant bien mise au début (1° ligne)

ça fonctionne
Quand à savoir pourquoi : Les chefs vont surement nous dire ça !
Bien souvent @+Thierry nous conseille de ne pas oublier de remettre True à la fin . Niark ! En tant que super chef il va nous trouver la solution !

@+
GD
 
G

Gérard DEZAMIS

Guest
Bonsoir Claudio

Nos V[-b]aleureux B[-b]ons A[-b]nges ne sont pas encore venus !

J'endends au loin le bruit de leurs ailes !

ci-dessous copie EXACTE du début - le reste sans changement - le texte qui suit les (') est en vert commentaires

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 04/07/2004 par Claudio
'

'For x = 1 To 900
Application.ScreenUpdating = False
For x = 1 To 90

Sheets("Feuil3").Range("L" & x + 10) = ""
ça fonctionne impec chez moi .
J'espère que ce n'est pas une question de micro-climat !

Cordialement
@+

GD
 
B

Bernard

Guest
Bonsoir Claudio et le forum

Juste une petite modif au code de la macro :

Sub Macro1()
Application.ScreenUpdating = False
For x = 1 To 90
Sheets("Feuil3").Range("L" & x + 10) = ""
Sheets("Feuil3").Range("M" & x + 10) = ""
b = Sheets("Feuil1").Range("B" & x + 20)
c = Sheets("Feuil1").Range("C" & x + 20)
d = Sheets("Feuil1").Range("D" & x + 20)
Sheets("Feuil3").Range("B" & x + 20) = b
Sheets("Feuil3").Range("C" & x + 20) = c
Sheets("Feuil3").Range("D" & x + 20) = d
Sheets("Feuil3").Range("L" & x + 20) = c
Sheets("Feuil3").Range("M" & x + 20) = d
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond) + 1
Application.Wait waitTime
Next
Application.ScreenUpdating = True
End Sub

"Application.ScreenUpdating = False ou true" ne doit pas être placé dans une boucle mais en dehors de la boucle.

Cordialement

Bernard
 
C

Claudio54

Guest
Bonsoir tout le monde

Au risque de passer pour un "lourd", le résultat escompté ne correspond pas à mes attentes. Dans l'exemple, il n'y a que 90 points. En réalité, il y en a au minimum 900. Avec les modifs ci-dessus, il n'y a pas de scintillement de l'écran mais l'affichage des courbes en une seule fois. Ce que je voulais c'est un affichage point par point avec un pas réglable ( 1 seconde ou un peu moins ).
Dans l'exemple, j'ai oublié de copier les cellules C11 à D20 en L11 à M20 pour permettre l'affichage des points sur le premier graph.

Merci encore
 

Discussions similaires

Statistiques des forums

Discussions
312 500
Messages
2 089 005
Membres
104 003
dernier inscrit
adyady__