Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Afficher les lignes sous condition

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

Ilino

XLDnaute Barbatruc
Bonjour Forum
Je vous sollicite a compléter mon code .
Dans la feuille j’ai une dizaine de tableaux indépendants chaque tableau ( de 101 lignes ) a une zone de saisie ( le code de zone de saisie pour remplir le tableau est fonctionnel ,merci JOb)
J’ai masqué les lignes de chaque tableau et Je souhaite afficher la ligne chaque fois que je saisie dans la zone de saisie est il possible ?*
Grazie
a+
 

Pièces jointes

Re : Afficher les lignes sous condition

Bonjour Ilino,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then 'interdit de modifier une plage (copier-coller)
  With Application: .EnableEvents = False: .Undo: .EnableEvents = True: End With
ElseIf Target.Column > 6 And Target.Interior.ColorIndex <> xlNone Then
  If Target = "Saisir ici !" Then Exit Sub
  If Target(101) <> "" Then
    MsgBox "La dernière cellule de la colonne est occupée !", 48
  'ElseIf Application.CountIf(Target.Resize(10), Target) > 1 Then
    'MsgBox "La donnée '" & Target & "' existe déjà !", 48
  Else
    If Target <> "" Then
      With Target(101).End(xlUp)(2)
        .Value = Target
        .EntireRow.Hidden = False 'affiche la ligne
      End With
    End If
  End If
  Target = "Saisir ici !": Target.Select
End If
End Sub
Nota : les tableaux ont 102 lignes (la ligne d'en-têtes compte), tu peux corriger...

A+
 
Re : Afficher les lignes sous condition

Bonjour Ilino, le forum,

En complément, et pour bien commencer la journée :

Code:
Sub Afficher()
'touches Ctrl+A
Rows.Hidden = False
End Sub

Sub Masquer()
'touches Ctrl+M
Dim nlig&, ncol%, i&, dercel As Range, m As Range
nlig = 102 'nombre de lignes de chaque tableau
ncol = 11 'nombre de colonnes
For i = 4 To Me.UsedRange.Row + Me.UsedRange.Rows.Count - 1
  With Cells(i, 7) 'colonne G
    If .Interior.ColorIndex <> xlNone Then
      Set dercel = .Resize(nlig, ncol).Find("*", , , , xlByRows, xlPrevious)
      If dercel Is Nothing Then Set dercel = .Cells
      If dercel.Row < .Cells(nlig).Row Then
        With Rows(dercel.Row + 1 & ":" & .Cells(nlig).Row)
          Set m = Union(.Cells, IIf(m Is Nothing, .Cells, m))
        End With
      End If
    End If
  End With
Next
Application.ScreenUpdating = False
Afficher
If Not m Is Nothing Then m.EntireRow.Hidden = True
End Sub
Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : Afficher les lignes sous condition

Re,

En testant on remarquera que si des tableaux ont plus de 102 lignes ce n'est pas bien grave.

Par contre si des tableaux ont moins de 102 lignes c'est le pataquès.

A+
 
Re : Afficher les lignes sous condition

Re,

Ah Ilino, petit coquin, je viens de me rendre compte que tu avais mis une couleur blanche à la cellule G5.

Ce genre de chose peut créer de sérieux problèmes avec les macros !

J'efface cette couleur sur le fichier du post #4, ne recommence pas.

A+
 
Dernière édition:
Re : Afficher les lignes sous condition

Bonjour Job
désolé pour le retard and soory pour la couleor des cellule and ..... Mais je te dis que tu es le mielleur😱 super c'est exactement ce que je cherche un gros Merci MAITRE
GRAZIE
 
- 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
23
Affichages
682
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…