MACRO VBA Masquer et afficher des lignes avec critères

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

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

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
@+
 
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

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
 
- 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
3
Affichages
451
Réponses
5
Affichages
409
Réponses
17
Affichages
467
Retour