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 :

Boucle sur Target Address [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 316
    Par défaut Boucle sur Target Address
    Bonjour,

    Je cherche à empêcher l'evénement sélection change sur une référence on va dire circulaire.

    Voilà j'ai un code qui effectue une multiplication sur le target.offset (-2,0)

    Sauf que ce code s'applique aussi sur le Range de cet offset (-2,0)

    Donc forcément, je ne sais quel terme on emploie pour VBA, mais ceci correspon à une référence circulaire

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Private Sub Worksheet_Change(ByVal Target As Range)
     
     
       Dim TxE As Range, Intersection As Range, o As Range, p As Variant
     
       Set TxE = Range("AD338:AY338")
       Set HP = Range("AD336:AY336")
     
      p = Target.Offset(-1, 0).Value
     
        If Not Intersect(TxE, Target) Is Nothing And Target.Count = 1 Then
        Target.Offset(-2, 0).Value = p * Target.Value
        End If
        If Not Intersect(HP, Target) Is Nothing And Target.Count = 1 Then
        Target.Offset(2, 0).Value = p / Target.Value
        End If
     
     
     
    End Sub
    J'aurais besoin soit de dire à Vba de ne ne pas intervenir ou de trouver une autre solution que je n'ai pas à brule pour point

    Merci de votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour ALEX80800,

    Sauf erreur de ma part, ton code dit :
    1) Si je modifie une (et une seule) cellule de la range AD338:AY338, alors écrit dans la cellule de la range AD336:AY336 correspondante (deux cases au dessus) le résultat de la multiplication des deux cellules des lignes 338 et 339.

    ou alors,

    2) Si je modifie une (et une seule) cellule de la range AD336:AY337, alors écrit dans la cellule de la range AD338:AY338 correspondante (deux cases en dessous) le résultat de la division des deux cellules des lignes 337 par 336.

    Que veux-tu donc faire exactement ?

    Cordialement,
    Kimy

  3. #3
    Membre éclairé
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 316
    Par défaut
    Oui c'est cela. Mais par exemple si je modifie une cellule de la ligne 336 la 338 effectuera la division et comme celle-ci a fait l'objet d'un changement la ligne 336 va effectuer la multiplication et ainsi de suite d'où une boucle infinie

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Application.EnableEvents = False
        If Not Intersect(TxE, Target) Is Nothing And Target.Count = 1 Then
            Target.Offset(-2, 0).Value = p * Target.Value
        End If
        If Not Intersect(HP, Target) Is Nothing And Target.Count = 1 Then
            Target.Offset(2, 0).Value = p / Target.Value
        End If
    Application.EnableEvents = True
    Avec ceci, ça marcherait ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 316
    Par défaut
    Super ca marche!!!
    j'ai réessayé une deuxième fois et bizarement le worksheet change ne réagit plus au changement même en enlevant "Application.EnableEvents "

    j'ai ouvert un autre fichier xlsm et pareil plus de macro qui s'éxecute (workbook open ....)

  6. #6
    Membre éclairé
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 316
    Par défaut
    J'ai redémarré le PC

    Et ça fonctionne


    résolu


    Un grand merci Kimy_Ire

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

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 13h45
  2. [JDBC]Boucle sur tous les éléments du ResultSet
    Par Terminator dans le forum JDBC
    Réponses: 1
    Dernier message: 22/09/2005, 20h30
  3. L'installation d'XP boucle sur elle-même
    Par pf106 dans le forum Windows XP
    Réponses: 13
    Dernier message: 20/08/2005, 15h55
  4. document.location.href sur target=_parent
    Par davelop dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/06/2005, 13h19
  5. [MFC] Boucle sur un bouton
    Par karl3i dans le forum MFC
    Réponses: 6
    Dernier message: 17/02/2004, 12h37

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