Microsoft 365 Masquer ligne dans plage cellule

Sonia2020

XLDnaute Nouveau
Bonjour

Je voudrais savoir s'il est possible de masquer les lignes vides à l'intérieur d'une plage de cellules données en VBA ? Mais seulement celles à la fin vers la dernière lignes non vides.
Exemple :
Dans la colonne A, Plage correspondante : A5 à A23. Dans cette plage, il y a les cellules A5 à A15 qui sont non vide (mais entre A5 et A15, il se peut qu'il y ai des cellules vides mais faut pas les masquer celles la), je voudrais masquer les lignes A16 à A23.

Merci pour votre aide.

Sonia
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Sonia,

je te propose le fichier joint ci-dessous.

regarde la colonne A ; bien qu'il y aie des cellules vides sous la ligne 6 et au-dessus de la ligne 14, seules les lignes sous la donnée "F" seront masquées, donc les lignes 16 à 23 ; fais Ctrl e pour le voir ➯ maintenant, on voit uniquement les lignes 5 à 15. :)

VB:
Sub Essai()
  Dim n&: n = Cells(Rows.Count, 1).End(3).Row + 1
  If n > 5 And n <= 23 Then Rows(n & ":" & 23).Hidden = -1
End Sub

soan
 

Pièces jointes

  • Exo Sonia2020.xlsm
    14.3 KB · Affichages: 11

soan

XLDnaute Barbatruc
Inactif
Bonjour mapomme, Sonia,

j'viens d'essayer ta solution ; j'ai pas l'habitude d'utiliser .SpecialCells(xlCellTypeBlanks), mais j'confirme que ça marche très bien ! 👍 pour éviter la répétition de la plage, j'ai réécrit ta sub ainsi :​

VB:
Sub Test()
  Dim plg As Range: Set plg = [A6:A23].SpecialCells(xlCellTypeBlanks)
  If [A23] = "" Then plg.Areas(plg.Areas.Count).EntireRow.Hidden = -1
End Sub

soan
 

Discussions similaires

Réponses
7
Affichages
489