Macro pour masquer des lignes

Résolu
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. 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. Bonjour et merci
      je vais tester
      bonne journée
      0
    2. Bonjour
      J'ai essayé d'appliquer, mais faute d'explication, je n'arrive à rien.
      0
    3. Contributeur
      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. Contributeur
    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. 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. 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