BESOIN D'AIDE : PROBLEME AVEC L'EVENEMENT CALCULATE
eupeup
Messages postés57Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention24 avril 2013
-
29 sept. 2006 à 14:33
galopin01
Messages postés133Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention14 octobre 2011
-
30 sept. 2006 à 12:25
Salut à tous,
j'ai un énorme soucis avec l'evenement calculate.
D'abord, dans mon fichier excel, j'ai une feuille qui est reliée à une autre application, qui me permet de mettre à jour automatiquement des données en temps réel (dans ma feuille excel).
Le but de mon programme est de travailler sur ces données à chaque fois que ces données sont mises à jour.
Pour cela, j'utilise l'évènement calculate qui lance mon code dès qu'il y a une modification sur la feuille en question.
A ce niveau la mon programme fonctionne comme je le souhaite.
Seulement le soucis, c'est que lorsque le code commence à afficher mes résultats, cela est considéré comme une modification de la feuille, du coup mon programme se lance de nouveau sans avoir terminé le traitement précédent.
Donc dans un premier temps, j'ai décidé d'afficher les résultats dans une autre feuille du même fichier.
Mais ca ne change rien, apparemment l'évènement calculate détecte les modifications de toutes les feuilles d'un même fichier.
Ca me pose un énorme problème!!!
Est ce que quelqu'un saurait si on peut paramètrer l'évènement calculate en lui disant de détecter les modifications d'une seule feuille uniquement, ou d'une plage de cellule en particulier.
Une autre solution(pas géniale car pas pratique au niveau de la visibilité) à laquelle j'ai pensé serait d'écrire les résultats dans un autre fichier excel, du coup est ce que quelqu'un saurait comment on fait en VBA pour manipuler des cellules d'un autre fichier excel.
Enfin si quelqu'un voit une autre solution à mon problème, je suis preneur
Merci d'avance
Peupeu
A voir également:
BESOIN D'AIDE : PROBLEME AVEC L'EVENEMENT CALCULATE
eupeup
Messages postés57Date d'inscriptionmardi 11 mars 2003StatutMembreDernière intervention24 avril 2013 29 sept. 2006 à 14:50
De plus je viens de trouver ce code sur le net :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Address = "$A$1" Then
MsgBox "La cellule active est A1"
End If
End Sub
Cela envoie ma msgbox si je clique sur la cellule A1.
Quelqu'un saurait si il y a une instruction qui permette de lancer mon code non pas quand je clique sur une cellule mais quand la valeur de la cellule est modifiée.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202172 29 sept. 2006 à 15:10
Private Sub Worksheet_Change(ByVal Target As Range)
Static bIsBusy As Boolean
If Target.Address = "$B$2" And Not bIsBusy Then
bIsBusy = True
TraitementExterne Target.Value
bIsBusy = False
End If
End Sub
Private Sub TraitementExterne(ByVal Value As Long)
ActiveSheet.Range("A1").Value = "Valeur saisie " & Value & " nous allons l'incrémenter"
'# On modifie la cellule en cause.
'# L'evenement Change sera ignoré
Feuil1.Range("B2").Value = 1 + Value
End Sub