• Initiateur de la discussion Initiateur de la discussion Payou
  • 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 !

Payou

XLDnaute Occasionnel
Bonjour a tous,

J'ai une macro qui me pose probleme. En effet celle si, lorsque la case E5 de ma feuille est completee, me lance la macro, et "hide" toutes les lignes dont la colonne A ne comprend pas cette valeur.

Cependant quand je vide E5 (Clearcontents), elle me fait un truc bizzare, me cachant tout les lignes dont la colonne A contient une donnee.

Comment faire pour que lorsque je vide E5, je retrouve ma feuille "normale" sans ligne cachee de partout ?

Ci dessous le code
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Cells.EntireRow.Hidden = False
If Target.Address = "$E$5" Then
    Application.ScreenUpdating = False
    For i = 9 To Range("A" & Rows.Count).End(xlUp).Row
        Rows(i).Hidden = IIf(Range("A" & i).Value = Target.Value, False, True)
    Next i
    Application.ScreenUpdating = True
End If
End Sub

Merci d'avance.

Payou

EDIT: J'ai bien tenter de faire une deuxieme fonction if, avec un if E5 vide alors une fonction qui me copie colle a partir de ma base de donnee etc pour me remettre ma feuille correctement, mais je n'arrive pas. Donc au passage si qq'un peut me dire comment on mais une deuxieme fonction if je suis egalement preneur. C'est toujours bon a savoir pour la suite 🙂
 
Dernière édition:
Re : Macro a probleme

Bonjour Payou, Eric, le forum,

Votre ligne de masquage peut aussi s'écrire plus simplement :

Rows(i).Hidden = Range("A" & i) <> Target

On voit immédiatement que :

- si Target est vide (= ""), alors

- Range("A" & i) <> Target est True quand il y a une valeur en colonne A

- et donc la ligne se masque.

Par ailleurs, il vaut mieux ici utiliser la fonction Intersect :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Cells.EntireRow.Hidden = False
If [COLOR="Red"]Not Intersect(Target, [E5]) Is Nothing And [E5] <> ""[/COLOR] Then
  Application.ScreenUpdating = False
  For i = 9 To Range("A" & Rows.Count).End(xlUp).Row
    Rows(i).Hidden = Range("A" & i) <> [E5]
  Next
  Application.ScreenUpdating = True '(on peut supprimer cette ligne)
End If
End Sub

A+
 
Dernière édition:
Re : Macro a probleme

Merci a tous les deux pour votre aide.

J'ai essayer le code de job75, et il fonctionne tres bien, et me donne exactement le resultat voulu. Donc voila merci beaucoup.

Au plaisir de vous relire 🙂
 
Dernière édition:
Re : Macro a probleme

Re bonjour a tous, le forum,

Petite question, il y aurait-il moyen de l'ameliorer sachant que dans la colonne A ce sont des cellules fusionnees, avec un mergearea? Mais je vois pas trop ou le placer...

Si qq'un a une idee, on sait jamais, ce sera avec plaisir 🙂
 
Dernière édition:
Re : Macro a probleme

Bonjour VBACrumble, bah en fait pour le premier fil j'ai choisi de laisser comme ca et de selectionner manuellement ensuite la ligne qui m'interesse. Parce que j'ai besoin des cellules fusionnees, elles me permettent de faire correspondre plusieurs lignes a cette meme cellule, ce qui est tres utiles, notamment pour mes autres macro 🙂

Mais pour ce qui est de ce fil, c'est une autre macro, dont le resultat pourrait gagner en clarete s'il gerait mieux mes cellules fusionnees, c'est pour ca que je pose la question.

Dans plusieurs de mes macros, des gens du forum m'ont place la variable mergearea, et les resultats ont ete magique, c'etait pour ca que je me demandais si dans celle-ci il n'etait pas possible de faire de meme. Mais visiblement tout le monde seche, donc je vais laisser tomber mon idee 🙁
 
Re : Macro a probleme

Re bonjour Job75.

Merci a toi, faudrait vraiment que j'apprenne une fois pour toute ou les placer ces mergearea, qui me simplifient la vie 🙂

Merci beaucoup

Mais en fait je crois que ca va pas etre possible ce que je veux faire parce que mes cellules fusionnees ne sont pas en A, comme j'ai pu le dire plus haut, mais en B> Donc bon je jette l'eponge 🙂
 
Dernière édition:
- 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
236
Réponses
4
Affichages
177
Réponses
7
Affichages
211
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Retour