Masquer une ligne d'une Listview

cpeens

XLDnaute Occasionnel
Bonjour à tous est 'il possible de masquer une ligne dans une listview sous condition

exemple:

si la seconde colonne de mà listview la valeur 10 apparait cette meme ligne se cache

es ce possible svp merci
 

cpeens

XLDnaute Occasionnel
Re : Masquer une ligne d'une Listview

bonjour banzai j'utilise cette macro pour remplir ma listview


Code:
ListView3.ListItems.Clear
Dim Col As Integer
 Dim s As Worksheet, i As Long, j As Byte
  With ListView3
    .ListItems.Clear
    If ComboBox1 <> "" Then
      For Each s In Worksheets
        If Left(s.Name, 9) = "FORMATION" Then
        For i = 1 To s.Cells(Rows.Count, "B").End(xlUp).Row
          For Col = 1 To 11  'pour une recherche sur les 4 premières colonnes !
            If s.Cells(i, "E") <> "" And s.Cells(i, Col) = ComboBox1 Then
              .ListItems.Add , , s.Cells(i, 1)
              For j = 2 To 11
                .ListItems(.ListItems.Count).ListSubItems.Add , , s.Cells(i, j)
              Next
              .ListItems(.ListItems.Count).ListSubItems.Add , , s.Name
            End If
          Next
        Next
      
    End If
  Next
  End If
  End With

comment puis je faire pour mettre la condition suivante

Si la ligne de la colonne J est inférieure à 10 ne pas charger cette ligne merci d'avance de ton aide
 

Banzai64

XLDnaute Accro
Re : Masquer une ligne d'une Listview

Bonjour

Sans fichier pas facile à tester

VB:
ListView3.ListItems.Clear
Dim Col As Integer
 Dim s As Worksheet, i As Long, j As Byte
  With ListView3
    .ListItems.Clear
    If ComboBox1 <> "" Then
      For Each s In Worksheets
        If Left(s.Name, 9) = "FORMATION" Then
        For i = 1 To s.Cells(Rows.Count, "B").End(xlUp).Row
        '
        ' Recherche sur les 11 premières colonnes
        '
          For Col = 1 To 11  'pour une recherche sur les 4 premières colonnes !
            
            If s.Cells(i, "J") >= 10 And s.Cells(i, "E") <> "" And s.Cells(i, Col) = ComboBox1 Then
              .ListItems.Add , , s.Cells(i, 1)
              For j = 2 To 11
                .ListItems(.ListItems.Count).ListSubItems.Add , , s.Cells(i, j)
              Next
              .ListItems(.ListItems.Count).ListSubItems.Add , , s.Name
            End If
          Next
        Next
     
    End If
  Next
  End If
  End With
 

cpeens

XLDnaute Occasionnel
Re : Masquer une ligne d'une Listview

Re bonsoir

Merci pour ta macro sa fonctionne trés bien j'aurais juste une derniere question

si je veux que la condition soit entre deux nombre exemple entre 10 et 20

j'ai tenter ceci

Code:
If s.Cells(i, "J") >= 10<=20 And s.Cells(i, "E") <> "" And s.Cells(i, Col) = ComboBox1 Then

mais rien ne se passe uarais tu svp une idée

en tous cas déja un grand merci ta solution fonctionne trés bein merci
 

Banzai64

XLDnaute Accro
Re : Masquer une ligne d'une Listview

Bonjour

A voir

VB:
ListView3.ListItems.Clear
Dim Col As Integer
 Dim s As Worksheet, i As Long, j As Byte
  With ListView3
    .ListItems.Clear
    If ComboBox1 <> "" Then
      For Each s In Worksheets
        If Left(s.Name, 9) = "FORMATION" Then
        For i = 1 To s.Cells(Rows.Count, "B").End(xlUp).Row
        '
       ' Recherche sur les 11 premières colonnes
       '
         For Col = 1 To 11  'pour une recherche sur les 4 premières colonnes !
           
            If s.Cells(i, "J") >= 10 And s.Cells(i, "J") <= 20 And s.Cells(i, "E") <> "" And s.Cells(i, Col) = ComboBox1 Then
              .ListItems.Add , , s.Cells(i, 1)
              For j = 2 To 11
                .ListItems(.ListItems.Count).ListSubItems.Add , , s.Cells(i, j)
              Next
              .ListItems(.ListItems.Count).ListSubItems.Add , , s.Name
            End If
          Next
        Next
     
    End If
  Next
  End If
  End With
 

cpeens

XLDnaute Occasionnel
Re : Masquer une ligne d'une Listview

Bonjour banzai et merci encore pour ta réponse c'est vraiment très sympa désolé de répondre aussi tard je n’avais pas accès à l'informatique.

Pour compléter ma curiosité et à mon grand étonnement cela n'a jamais été abordé quand je coche ma checkbox au lieu d'affiché les lignes comme c'est le cas comment faire pour au contraire il me masque cela et laisse les autre visible svp.


Je m'explique un peu ta macro actuel quand je coche ma textbox charge uniquement les lignes présent dans la condition c'est à dire entre 10 et 20

Je souhaiterais quelle charge toutes les autres lignes sauf ceux comprise entre 10-20

Ceci est t'il possible svp merci après je t'embête plus :)
 

Banzai64

XLDnaute Accro
Re : Masquer une ligne d'une Listview

Bonjour

Tu ne m'embêtes pas

Remplace dans le code
VB:
If S.Cells(i, "J") >= 10 And S.Cells(i, "J") <= 20 And S.Cells(i, "E") <> "" And S.Cells(i, Col) = ComboBox1 Then

Par celle-ci
Attention aux parenthèses

VB:
If (S.Cells(i, "J") < 10 Or S.Cells(i, "J") > 20) And S.Cells(i, "E") <> "" And S.Cells(i, Col) = ComboBox1 Then

Bonne nuit
 

cpeens

XLDnaute Occasionnel
Re : Masquer une ligne d'une Listview

Bonjour Banzai64 une fois de plus merci pour ton aide tu as sympathiquement répondu à toute mes questions pas toujours facile à cerné mais ta sus trouvé à chaque fois la réponse précise à toi un grand merci et à très bientôt

Bon Week End
 

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 183
dernier inscrit
karelhu35