AU SECOURS! VB - Private sub worksheet change

Résolu/Fermé
Druss - 23 juin 2009 à 18:36
 Druss - 24 juin 2009 à 01:40
Bonsoir, je m'arrache les cheveux depuis plusieurs jours à tenter de trouver une solution à mon problème. Pourriez-vous m'aider?


Je récupère des données depuis un site web (bourse) sur excel. Je traite une de ces données en particulier, et en fonction de ses états ma cellule A1 a soit la valeur 1, soit 0.
Je veux pouvoir lancer la macro EvolutionGain quand A1 vaut 1.


Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A1").Value = 1 Then
        call EvolutionGain
    End If
End Sub



Cependant, bien que ce code fonctionne en modifiant directement la valeur de A1, rien ne se passe quand A1 se modifie depuis le site web.
Est-ce un cas particulier? Avez-vous une solution?
A voir également:

4 réponses

Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
23 juin 2009 à 18:43
Salut,

Ton code est bon, mais souvent les données reçues sont au format texte essayes de mettre 1 entre "1"

If Range("A1").Value = "1" Then


A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)
0
Bonsoir Mike-31, merci de ta réponse rapide, j'ai essayé mais visiblement ça ne fonctionne pas non plus.

Comme la mise à jour des données s'exécute automatiquement je me demande si le problème ne vient pas de là (habituellement c'est en validant la cellule ou la fonction que la macro s'active), mais je ne sais pas comment y remédier... vous auriez une idée?
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
23 juin 2009 à 21:20
Re,

Crées un petit fichier dans le quel tu colles 2 ou 3 valeurs que tu reçois, que je vois

pour joindre ton exemple avec ce lien

https://www.cjoint.com/

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)
0
Je te remercie pour ton aide Mike, j'ai finalement trouvé une solution différente en fouillant un bout de temps dans l'aide d'Excel.

Je me sers de la mise à jour automatique des données qui entraine un recalcul de certaines cellules.



Private Sub Worksheet_Calculate()
        
    If Range ("A1").Value = 1 Then
         Call EvolutionGain
    End If
End Sub


0