Masquer des lignes et des colonnes dans un fichier

roukili Messages postés 17 Statut Membre -  
 roukili -
j'ai un fichier Excel qui contient des données et je souhaite masquer les lignes et les colonnes qui ne contiennent pas une chaine de caractères; "DE" par exemple
j'ai essayé ce code mais il ne fonctionne pas car il prend en compte seulement une seule colonne:

Private Sub CommandButton1_Click()
    
       Cells.EntireRow.Hidden = False

        For L = 18 To Range("Feuil15" & Rows.Count).End(xlUp).Row

          If Range("BM" & L).Value = "DQ Russie" Then

             Rows(L).EntireRow.Hidden = False

          Else

            Rows(L).EntireRow.Hidden = True

        End If

Next
End Sub

je vous remercie d'avance pour votre aide merci

1 réponse

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Essaies :
    Sub test()
    Dim src As Range
    Dim dst As Range
    Dim cel As Range
    
      Cells.EntireRow.Hidden = False
      Set src = Cells.SpecialCells(xlCellTypeConstants, xlTextValues)
      For Each cel In src.Cells
        If cel.Value Like "*DE*" Then
          If dst Is Nothing Then Set dst = cel Else Set dst = Union(dst, cel)
        End If
      Next cel
      If Not dst Is Nothing Then dst.EntireRow.Hidden = True
    
    End Sub
    0
    1. roukili Messages postés 17 Statut Membre
       
      en fait le soucis c'est que je cherche ma chaine de caractère seulement sur une plage de cellules et non pas tout le classeur et je vois pas comment faire; par exemple de la ligne 18 à la ligne 30 et de la colonne D à la colonne DE
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Re,

      Désolé, j'ai été un peu trop vite, je n'avais pas vu « qui ne contiennent pas »
      Remplaces :
       If Not dst Is Nothing Then dst.EntireRow.Hidden = True

      par:
       If Not dst Is Nothing Then
          Cells.EntireRow.Hidden = True
          dst.EntireRow.Hidden = False
        End If


      Et si tu veux tester uniquement une plage remplaces Cells dans :
      Set src = Cells.SpecialCells(xlCellTypeConstants, xlTextValues)

      par la plage à tester, par exemple par :
      Set src = Range("B18:F51").SpecialCells(xlCellTypeConstants, xlTextValues)

      Cordialement
      Patrice
      0
      1. roukili Messages postés 17 Statut Membre > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
         
        j'ai essayé mais cela ne marche pas je crois que y a un petit souci
        cordialement
        Reda
        0
      2. roukili > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
         
        J'ai un problème au niveau de ce code d'après le programme
        If Not dst Is Nothing Then
            Cells.EntireRow.Hidden = True
            dst.EntireRow.Hidden = False
         End If
        0
    3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      j'ai essayé mais cela ne marche pas !!!! Mais encore ???
      0