Macro pour masquer des lignes

Résolu
crooner76 Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   -  
crooner76 Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai besoin d'un petit coup de main pour une macro :
J'ai un bordereau de plusieurs centaines de lignes d'articles en plusieurs paragraphes, le tout sur une même feuille.
dans une colonne, j'indique ici et là des quantités suivant mes besoins
Je souhaiterais une macro qui repérerait toutes les lignes dont la cellule "quantité" est à zéro (ou vide) et les masquerait.
(J'attribuerais ensuite cette macro à un pavé à cliquer)
Merci d'avance pour vos réponses

3 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour

    un exemple de code

    Const coqte = "C"    ' colonne quantité
    Const lideb = 2 
    
    Private Sub btMasquer_Click() 
    Dim li As Long, lifin As Long, q 
    lifin = Range(coqte & Rows.Count).End(xlUp).Row 
    For li = lideb To lifin 
      q = Range(coqte & li).Value 
      If q = 0 Then Rows(li).Hidden = True 
    Next li 
    End Sub

    bonne suite
    0
    1. crooner76 Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   54
       
      Bonjour et merci
      je vais tester
      bonne journée
      0
    2. crooner76 Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   54
       
      Bonjour
      J'ai essayé d'appliquer, mais faute d'explication, je n'arrive à rien.
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      sans doute qu'avec un fichier exemple les propositions seraient plus adaptées.
      Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.

      eric
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    ce n'est pas plus simple de mettre un filtre automatique sur l'en-tête des colonnes puis de filtrer sur (non vides) ?

    eric
    0
    1. crooner76 Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   54
       
      Bonjour
      Comme je l'indique, mon bordereau comprend plusieurs paragraphes avec des en-tetes différentes, donc le filtre, ça va être compliqué...
      merci bonne journée
      0
  3. crooner76 Messages postés 338 Date d'inscription   Statut Membre Dernière intervention   54
     
    Bonjour
    A force de tâtonnement et en adaptant, j'ai une macro qui tourne

    Sub MasquerLignes()
    Dim plage As Range, c As Range
    Set plage = Union([N11:N21], [N25:N30], [N34:N47], [N51:N53], [N57:N63])
    For Each c In plage
    If c.Value = 0 Then
    c.EntireRow.Hidden = True
    Else
    c.EntireRow.Hidden = False
    End If
    Next c

    End Sub
    0