XL 2019 Masquer lignes entièrement vide

ALE37

XLDnaute Junior
Bonjour le forum,

Je souhaiterai pouvoir masquer (et démasquer) toutes les lignes entièrement vides (zéro, formules ou pas) dans cette matrice Excel.
Dans l'exemple de la ligne 14 à 159. J'ai fouillé un peu partout dans le forum mais je n'ai pas trouvé mon bonheur.
Quelqu'un pourrait il me proposer une solution ?
D'avance merci pour votre aide.
 

Pièces jointes

  • Test_masquer ligne entierement vides.xlsm
    73.7 KB · Affichages: 8
Solution
Je reviens sur le sujet. Finalement un collègue m'a proposé la solution suivante en VBA, extrêmement rapide.
Ci joint le code pour ceux qui seraient intéressés.

Sub masqueligne()
Dim i As Integer, derLig As Long
derLig = Cells(Rows.Count, 1).End(xlUp).Row 'ou 1 = le numéro de la colonne à tester pour savoir quelle est la deniere ligne utilisée
For i = 11 To derLig 'alors si on veux faire commencer l'opération à partir d'une ligne autre que 1 et on change le nombre
If Cells(i, 50) = "" Or Cells(i, 50) = 0 Then '(on teste sur la colonne 50 dans l'exemple, soit AX, car il s'agit d'un cumul, ligne i)
Cells(i, 11).EntireRow.Hidden = True
Else: Cells(i, 11).EntireRow.Hidden = False
End If
Next i
End Sub

ALE37

XLDnaute Junior
@ALE37

Lis d'abord mon post précédent. :)

Regarde la pièce jointe 1141455

autre version du fichier précédent, avec un seul
bouton pour masquer / démasquer les lignes.



code VBA (18 lignes) :

VB:
Option Explicit

Sub masqueligne()
  Dim plg As Range, dlg&, lg1&, i%: Application.ScreenUpdating = 0
  dlg = Cells(Rows.Count, 1).End(3).Row 'dernière ligne, selon colonne A
  For i = 11 To dlg 'de la ligne 11 à la dernière ligne
    If Cells(i, "AX").Value = 0 Then
      If plg Is Nothing Then
        Set plg = Rows(i): lg1 = i
      Else
        Set plg = Union(plg, Rows(i))
      End If
    End If
  Next i
  If Not plg Is Nothing Then _
    plg.EntireRow.Hidden = Not Rows(lg1).Hidden
End Sub

soan
Génial! Encore merci pour le temps consacré à ma demande.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Lionel,

Bon WE à toutes et à tous :)

bon WE à toi aussi, ainsi qu'à ALE37 et tous ceux du forum. 🍀



Intéressant ton code :)

merci, je partage ton avis ! 😄



comment modifier ton code pour supprimer les lignes ?

1) dans le code VBA :

* la sub est maint'nant supprimerlignes()

* voici l'ancienne dernière instruction :

VB:
  If Not plg Is Nothing Then _
    plg.EntireRow.Hidden = Not Rows(lg1).Hidden

elle est devenue :

VB:
  If Not plg Is Nothing Then plg.Delete

2) sur la feuille "TEST" :

* j'ai modifié le texte du bouton en "Supprimer Lignes"
* affectation de la nouvelle sub supprimerlignes



code VBA (17 lignes) :

VB:
Option Explicit

Sub supprimerlignes()
  Dim plg As Range, dlg&, lg1&, i%: Application.ScreenUpdating = 0
  dlg = Cells(Rows.Count, 1).End(3).Row 'dernière ligne, selon colonne A
  For i = 11 To dlg 'de la ligne 11 à la dernière ligne
    If Cells(i, "AX").Value = 0 Then
      If plg Is Nothing Then
        Set plg = Rows(i): lg1 = i
      Else
        Set plg = Union(plg, Rows(i))
      End If
    End If
  Next i
  If Not plg Is Nothing Then plg.Delete
End Sub

soan
 

Pièces jointes

  • Test supprimer lignes entièrement vides.xlsm
    77 KB · Affichages: 0
Dernière édition:

Discussions similaires

Réponses
30
Affichages
868
Réponses
2
Affichages
397

Statistiques des forums

Discussions
302 236
Messages
2 001 687
Membres
215 256
dernier inscrit
Adso