Je n'y arrive pas !

WDAndCo

XLDnaute Impliqué
Bonjour le Forum,

Voici un bout de code qui doit se déclencher lors d'un changement de valeur. Mais ce dernier ne fonctionne pas.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Si le changement n'a pas lieu en J1 sortir
If Not Application.Intersect(Target, Range("J1")) Is Nothing Then Exit Sub
'Boucle sur le nombre de ligne M1 à 5
For Lg = Range("M1").Value To 5
'Masque la ligne LG
Rows(Lg).Selection.EntireRow.Hidden = False
'Si en A(LG) et égale a J1 ou K1 ou L1 affiche la ligne
If (Range("A" & Lg).Value = Range("J1").Value Or Range("A" & Lg).Value = Range("K1").Value Or Range("A" & Lg).Value = Range("L1").Value) Then Rows(Lg).Visible = True
'Suite de la boucle
Next Lg
'Sortie
End Sub

D'avance merci
 

Modeste

XLDnaute Barbatruc
Re : Je n'y arrive pas !

Bonjour WDAndCo,

Avec plus de 600 messages, tu te souviens sans doute qu'il vaut mieux choisir un titre évocateur à l'ouverture d'une discussion :rolleyes:

Pour le reste, pose cette bière d'abbaye que tu bois chaque fois que je te vois sur le forum, met un point d'arrêt sur la première ligne de ton code et exécute la suite en pas-à-pas ... le souci devrait te sauter aux yeux, me semble-t-il!?

[Edit:] salut Chalet53 ... et salut paf
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Je n'y arrive pas !

Bonjour à tous

a priori tel qu'il est, le code sort si on saisit en J1

il faudrait modifier en
If Application.Intersect(Target, Range("J1")) Is Nothing Then Exit Sub

ou

If Target.Address<>"$J$1"Then Exit Sub

ou ...

A+
 

WDAndCo

XLDnaute Impliqué
Re : Je n'y arrive pas !

Merci pour vos réponses mais toujours pas de déclenchement, je ne saisie pas en J1, il y a juste changement de valeur.
Voici juste la feuille qui me pose problème.

D'avance merci
 

Pièces jointes

  • Classeur1.xls
    27.5 KB · Affichages: 37
  • Classeur1.xls
    27.5 KB · Affichages: 40
  • Classeur1.xls
    27.5 KB · Affichages: 42

Paf

XLDnaute Barbatruc
Re : Je n'y arrive pas !

Re,

plutot qu'en J1 on ait la formule =D1, qui fait que J1 se modifie au changement en D1, peut être mettre une liste de validation en J1 et en D1 mettre :=J1.

La sélection dans une liste de validation déclenche les procédures évènementielles.

A+
 

Paf

XLDnaute Barbatruc
Re : Je n'y arrive pas !

Re

Ca fonctionne ( du moins le code s'exécute) si on modifie , comme l'a brièvement signalé Jean-Marcel on rajoute step -1 dans les limites de la boucle For LG... puisque les valeurs sont décroissantes

For Lg = Range("M1").Value To 5 Step -1

Bonne suite
 

Statistiques des forums

Discussions
312 493
Messages
2 088 949
Membres
103 989
dernier inscrit
jralonso