• Initiateur de la discussion Initiateur de la discussion WDAndCo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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 🙄

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:
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+
 
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+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
839
Retour