MACRO VBA Masquer et afficher des lignes avec critères

chris6999

XLDnaute Impliqué
Bonjour

Je souhaiterais savoir s'il serait possible d'afficher des lignes masquées à partir d'un critère saisi dans une cellule (dans mon ex C3).
Ce critère ferait référence à un critère présent dans la ligne masquée (dans mon ex colonne A)
Et à l'inverse, masquer une ligne à partir d'un critère saisi dans une autre cellule...(dans mon exemeple C5).

Je mets un fichier en PJ qui sera beaucoup plus parlant que de grands discours.

Merci d'avance pour votre aide
Cordialement
 

Pièces jointes

  • TEST AFFICHAGE.xls
    25.5 KB · Affichages: 49
  • TEST AFFICHAGE.xls
    25.5 KB · Affichages: 57
  • TEST AFFICHAGE.xls
    25.5 KB · Affichages: 60

Pierrot93

XLDnaute Barbatruc
Re : MACRO VBA Masquer et afficher des lignes avec critères

Bonjour,

essaye ceci à placer dansle module de la feuille concernée, click droit sur l'onglet => visualiser le code et tu colles :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Range
If Target.Address <> "$C$3" And Target.Address <> "$C$5" Then Exit Sub
Set x = Range("A8", Range("A65536").End(xlUp)).Find(Target, , xlValues, xlWhole, , , False)
If Not x Is Nothing Then x.EntireRow.Hidden = Target.Row = 5
End Sub

bonne journée
@+
 

chris6999

XLDnaute Impliqué
Re : MACRO VBA Masquer et afficher des lignes avec critères

Merci Pierrot 93

Ta proposition fonctionne pour masquer les lignes si saisie dans C5 (juste magique!) par contre les lignes restent masquées si saisie du code dans C3...

J'ai mis ta macro dans la PJ pour que tu puisses voir le PB

Merci de me dire ce que tu en penses
Cordialement
 

Pièces jointes

  • TEST AFFICHAGE.xls
    30 KB · Affichages: 67
  • TEST AFFICHAGE.xls
    30 KB · Affichages: 69
  • TEST AFFICHAGE.xls
    30 KB · Affichages: 70

Pierrot93

XLDnaute Barbatruc
Re : MACRO VBA Masquer et afficher des lignes avec critères

Re,

modifie comme suit, mais attention au format de cellule... il doit être le même si non lieu de passer par une fonction de conversion....
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Range
If Target.Address = "$C$5" Then
Set x = Range("A8", Range("A65536").End(xlUp)).Find(Target, , xlValues, xlWhole, , , False)
If Not x Is Nothing Then x.EntireRow.Hidden = Target.Row = 5
End If

If Target.Address = "$C$3" Then
    Set x = Range("A8", Range("A65536").End(xlUp))
    With Application
        If Not IsError(.Match(Target, x, 0)) Then Rows(.Match(Target, x, 0) + 7).Hidden = False
    End With
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 184
Membres
103 152
dernier inscrit
Karibu