Macro a probleme

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:

job75

XLDnaute Barbatruc
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:

Payou

XLDnaute Occasionnel
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:

Payou

XLDnaute Occasionnel
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:

Payou

XLDnaute Occasionnel
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 :(
 

Payou

XLDnaute Occasionnel
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:

Statistiques des forums

Discussions
312 525
Messages
2 089 327
Membres
104 121
dernier inscrit
bobquad01