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 :

Stopper une boucle APPLICATION.INTERSECT [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Par défaut Stopper une boucle APPLICATION.INTERSECT
    Bonjour à tous,

    Novice en VBA, je vous sollicite car je suis bloqué.... j'essaye de créer un fichier qui utilise des formules si des cellules sont modifiées. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Not Application.Intersect(Target, Range("F:F")) Is Nothing Or Not Application.Intersect(Target, Range("E:E")) Is Nothing And Target.row > 11 Then
    MsgBox "Je calcule le coût de l'agent"
    End If
     
    End sub
    Cela fonctionne cependant via un bouton les colonnes E et F peuvent être changées, cela à pour conséquence de m'afficher deux fois ma MsgBox.
    Moi je ne veux l'afficher qu'une fois.

    Globalement:
    Si E est changée alors MsgBox ; Si F est changée alors MsgBox ; Si F et E sont changées alors 1 seule MsgBox, non 2

    Je ne sais pas si je suis clair ou si je me suis bien exprimé. Ce doit être simple mais je suis vraiment nul

    Merci pour votre aide.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si vous effectuez un test logique avec OR, il est normal au vu de votre code que le message s'affiche deux fois
    Il suffit d'ajouter un second test après être passé le premier comme par exemple tester le numéro de colonne soit Target.Column
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Si vous effectuez un test logique avec OR, il est normal au vu de votre code que le message s'affiche deux fois
    Il suffit d'ajouter un second test après être passé le premier comme par exemple tester le numéro de colonne soit Target.Column
    Bonjour Philippe Tulliez,

    Merci pour votre réponse.
    Justement, ce qu'il affiche est normal car je lui demande de le faire.
    Ce que je cherche c'est pallier cela en changeant le code, en utilisant une autre méthode. Moi je ne vois aucune piste


    Bonne journée.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.Column = 5 Then MsgBox "Je calcule le coût de l'agent"
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2009
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 110
    Par défaut
    Merci pour votre aide.

    En faite, comme vous me l'avez dit, je mets deux conditions (OR) pour lancer le IF donc il va forcément le lancer 2 fois quoiqu'il en soit si les deux colonnes sont modifiées.
    Je vais essayer de faire autrement.

    Bonne journée.

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

Discussions similaires

  1. Stopper une boucle while
    Par Emotion dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/01/2010, 09h57
  2. Stopper une boucle
    Par jocqfd dans le forum MATLAB
    Réponses: 5
    Dernier message: 07/01/2008, 11h34
  3. Stopper une boucle
    Par Spani dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/08/2007, 12h11
  4. N'arrive pas a stopper une boucle
    Par Mac Twist dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 16/07/2007, 12h25
  5. stopper une boucle en attendant un evenement
    Par Psykorel dans le forum Langage
    Réponses: 4
    Dernier message: 08/01/2006, 23h08

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