Worksheet change innoportun

Bonjour,

Alors voici, j'au un souci qui m'énerve depuis 2 bonnes heures.

Dans une procédure WSChange de la Feuil1, je demande d'aller modifier une cellule d'une autre feuille. Mais problème, cette feuille contient aussi une procédure WSChange qui me bloque l'execution du code alors qu'elle n'a rien à voir! La cellule que je veux modifier n'est pas dans la target...

Ca bloque aussi avec une procédure WSActivate dans la feuille cible mais j'imagine que le problème est le même.

Je ne comprends pas.

Je vous joins un fichier ultra simplifié pour voir ce qu'on peut faire.

Je vous remercie mille fois d'avance, vous me sauveriez, j'ai une réunion dans une heure!!

15vba-wschange.zip (9.09 Ko)

Bonjour

Joss91 a écrit :

bloque l'execution du code

Comment ?

J'ai testé ton programme : La procédure de l'autre page s'exécute mais ne bloque pas celle de la page "Feuil1", une fois terminée dans la nouvelle page , la macro de la page "Feuil1" reprend

Si vraiment tu ne veux pas qu'elle s'exécute, rajoutes les lignes surlignées

            With Sheets(Range("G" & Target.Row).Value)
              Application.EnableEvents = False
                .Range("B1") = Sheets("Feuil1").Range("G7") & " : Title "
              Application.EnableEvents = True
            End With

Salut Banzaï64!!

Effectivement chez moi aussi le code s'execute bien mais j'ai quand même un message d'erreur qui me surligne la partie:

If Target.Count = 1 And Not Application.Intersect(Target, Range("C23:C38,C41:C45,C48:C58")) Is Nothing Then

Là j'ai fait un doc simplifié mais dans ma vraie procédure j'ai encore pa mal de trucs qui sont censés se faire derrière et qui ne sont donc pas faits.

Tu n'as pas de message d'erreur toi?


Et surtout pourquoi le WSChange cherche à s'éxécuter sachant que la cellule en question n'est pas dans la target??

Bonjour

Joss91 a écrit :

Tu n'as pas de message d'erreur toi?

Aucun message d'erreur

Quel message d'erreur as-tu ?

Sépares ta ligne en 2

  If Target.Count > 1 Then Exit Sub
  If Not Application.Intersect(Target, Range("C23:C38,C41:C45,C48:C58")) Is Nothing Then

Vérifies si tu as toujours le message et sur quelle ligne ?

As-tu essayé la modification proposée ? (Application.EnableEvents) ?

Joss91 a écrit :

Et surtout pourquoi le WSChange cherche à s'éxécuter sachant que la cellule en question n'est pas dans la target??

Procédure événementielle : comme son nom l'indique, se déclenche lors d'un événement sur la page (ici modification d'au moins une cellule) et c'est toi qui l'a programmée pour faire quelque chose quand la modification à lieu dans certaines cellules

Mais pour savoir si elle est "concernée" elle doit au moins faire le test de savoir quelle est la(es) cellule(s) modifié(es)

Hi!

Ta première méthode fonctionne très bien, je t'en remercie!!

J'avais un message me disant: la méthode Range de l'objet Worksheet a échoué.

J'avais essayé de fermer l'excel et de le rouvrir mais ça n'avait rien changé

Bonjour

Rends toi bien compte qu'avec un fichier qui fonctionne bien ce n'est pas facile de trouver pourquoi sur le tien cela bloque

Il faut impérativement ton fichier (modifies les données sensibles)

Expliques la démarche à suivre afin de reproduire l'erreur

Vérifies si ta page est protégée

Rechercher des sujets similaires à "worksheet change innoportun"