HELLLLLLLLLLLLLPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP

Kamal - 6 nov. 2001 à 08:36
 Orion - 7 nov. 2001 à 09:31
Bonjour,

J'ai un probleme avec ce code :

Sub dat1()
Dim i As Integer
i = 1
While Hour(Time) >= 7 And Hour(Time) <= 8
If Sheet1.Cells(1, 1) <> Sheet1.Cells(i, 3) Then
Sheet1.Cells(i + 1, 3) = Sheet1.Cells(1, 1)
i = i + 1
End If
Wend
End Sub

Je m'explique: Cette macro a pour but d'enregistrer les valeurs de la cellule A1 (a chaque fois que celles ci changent)dans les cellules de la colonne C. Elle doit mettre la premiere valeur de A dans C1, puis si A1 change elle met la nouvelle valeur dans C2 etc...

Le probleme est que cette macro s'execute toutes les secondes ce qui fait que ma page Excel est completement gelee. Ca se traduit par la fait que la valeur de A1 ne change jamais. J'oublie de preciser que la cellule A1 est reliee a un autre logiciel qui lui donne une nouvelle valeur environ toutes les 2 a 3 secondes.

Si qqu'un pouvait m'aider ca me serait sympa.

PS: Si qq connait une autre technique avec un timer ca m'interesse bcp.

Merci BCPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP

Kamal

1 réponse

j'ai simulé un changement de la cellule A1 toutes les 4
secondes et le code ci dessous marche.
le probleme c'est que je ne sais pas comment tu reçois
le changement.mon changement se fait a l'interieur de la
boucle while.

Sub dat1()
debut = Timer
Dim i As Integer
i = 1
While Hour(Time) >= 9 And Hour(Time) <= 10
If Sheets("feuil1").Cells(1, 1) <> Sheets("feuil1").Cells(i, 3) Then
Sheets("feuil1").Cells(i + 1, 3) = Sheets("feuil1").Cells(1, 1)
i = i + 1
End If
tempo = Timer

If (tempo - debut) >= 4 Then
Sheets("feuil1").Cells(1, 1) = Sheets("feuil1").Cells(1, 1) + 1
debut = tempo
End If

Wend
end sub
0
Rejoignez-nous