XL 2019 Masquer lignes entièrement vide

  • Initiateur de la discussion Initiateur de la discussion ALE37
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

ALE37

Guest
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

Solution
A
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

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.
 
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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
30
Affichages
3 K
Réponses
8
Affichages
1 K
V
  • Question Question
Réponses
2
Affichages
2 K
C
  • Question Question
Réponses
0
Affichages
597
Camille.98
C
T
Réponses
4
Affichages
820
twenchany
T
A
  • Question Question
Réponses
2
Affichages
666
angelis70
A
Retour