IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Inconvénient avec Worksheet_calculate


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Par défaut Inconvénient avec Worksheet_calculate
    Bonjour,

    Je cherche à lancer une macro si une case est modifier.

    Donc il faut utiliser Worksheet Change... mais le problème est que la case est modifier par un calcul automatique de deux cellule. Donc celà ne marche pas.

    Donc j'utilise Worksheet Calculate. Mais le probleme c'est que j'ai deux cellules qui bougent toutes les secondes automatiquement ("""lié à Reuters""") donc, donc la macro est lancé des que un des trois (les deux cellules) plus la cellule qui m'interesse.

    En gros, je cherche une fonction Worksheet Calculate mais qui ne concernerait qu'une cellule ou plage de données et non pas toute la feuille.

    Merci beaucoup.

    Badouba

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Pourquoi tu n'utiliserais pas WorkSheet_Change sur l'une des deux cellules à l'origine du calcul?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Par défaut
    A + B = C

    A, B, changent automatiquement, donc C aussi.


    Je veux quema macro se lance juste quand C bouge. pas A ou B.

    Merci d'avance

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Justement: en détectant un changement de A ou de B, tu détecte un changement de C.

    N'est-ce pas ce que tu voulais?

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Salut,
    Il est possible que worksheet_change ne détecte pas non plus le changement de A ou B vu que ce n'est pas "manuel", du moins c'est ce que j'ai compris.

    Pour les cas simples j'utilise pour ma part une petite astuce :
    Imaginons que C soit la somme de A + B, au lieu de mettre "= A1 + B1" comme formule dans C1, je crée une fonction personnalisée dans un module (ici nommée sommeF) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Function sommeF(a As Integer, b As Integer) 'modifier les types selon le besoin
    sommeF = a + b
    MsgBox "calcul" 'remplacer "MsgBox "calcul"" par le traitement souhaité
    End Function
    Alors C1 doit avoir comme formule "=sommeF(A1;B1)"

    Ceci permet de faire à la fois la somme et le traitement supplémentaire que tu aurais voulu faire sur l'événement on_change de C1.

    Par contre c'est moins souple qu'une formule classique dans la mesure où, par exemple, tu dois avoir un nombre de paramètres bien déterminé.

    Ceci dit il existe peut-être d'autres méthodes plus élégantes.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 14
    Par défaut
    Exactement
    il y a A et B, qui changent de valeur continuellement.

    C change de valeur lorsque A ou B sont inférieurs à une valeur fixe.

    et donc je veux etre averti lorsque C change de valeur.


    Worksheet Calculate peut il etre valable que sur une Feuil ?

    donc en fait ces solutions ne s'appliquent pas.
    Au secours !!! loool

    Merci

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Citation Envoyé par neupont Voir le message
    Par contre c'est moins souple qu'une formule classique dans la mesure où, par exemple, tu dois avoir un nombre de paramètres bien déterminé.
    Que tu crois.
    La même chose peut se faire avec un paramArray:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function sommeF(ParamArray listevaleurs() As Variant) As Double 'modifier les types selon le besoin
        On Error GoTo vide
        Dim argument As Variant
        sommeF = 0
        For Each argument In listevaleurs
            sommeF = sommeF + argument
        Next
        Exit Function
    vide:
    End Function
    Là tu peux mettre 0,1,2,3... une infinité d'arguments.

    Dis-moi... ça marche pas aussi bien que la formule classique ça desfois?

    EDIT:
    @badouba

    Ahh... mais aussi si tu ne dis pas tout, on peut pas deviner.

    Dans ce cas, je te propose d'utiliser une variable statique dans ton WorkSheet_Calculate qui mémorise la valeur de ta cellule C. Si par rapport au dernier calcul la valeur de cette variable est différente de celle de ta cellule C, c'est que son contenu a changé, et tu dis "ça a changé de valeur" et tu mémorise la nouvelle valeur dans la variable statique.

    J'espère que c'est assez clair...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. inconvénient de compiler avec tex puis DVItoPDF
    Par melreg dans le forum Débuter
    Réponses: 1
    Dernier message: 03/04/2009, 16h53
  2. Data warehousing avec les solutions Oracle ,avantages/inconvénients?
    Par footmaster dans le forum Approche théorique du décisionnel
    Réponses: 3
    Dernier message: 25/02/2008, 15h27
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo