Formule pour masquer ligne vide VBA
Bonjour je souhaite masquer les lignes pour lesquels il n'y a pas de valeurs.
J'ai testé cela mais cela ne marche pas.
Il s'agit d'un tableau fermé entre les lignes 39/54 et colonnes B/M
Sub masqueligne()
Lignedebut = 39
Lignefin = 54
Set MaPlage = Columns("B:M").Rows(i)
For i = Lignedebut To Lignefin
If Range(MaPlage).Value = "" Then
Rows(i).Hidden = True
End If
Next i
End Sub
Merci de votre aide
6 réponses
-
Bonjour,
Remplace cette ligne de boucle par celle-ci (on part de la fin vers le début
For i = Lignefin to Lignedebut Step -1 -
Ok merci, mais l'erreur vient de la ligne avec le Range (bug) et je ne vois pas pourquoi...
-
Teste ceci
Sub masqueligne() Lignedebut = 39 Lignefin = 54 For i = Lignefin To Lignedebut Step -1 If WorksheetFunction.CountA(Range(Cells(i, "B"), Cells(i, "M"))) = 0 Then Rows(i).Hidden = True End If Next i End Sub -
La fonction n'est plus en erreur mais ca ne masque pas les lignes
-
il se peut que cela vienne du fait que j'ai plusieurs feuilles et que ce n'est pas la première. Je vais voir pour appliquer la fonction uniquement sur cette feuille. Si vous avez des idées je suis preneur
-
-
@CIF
Re,
Sub masqueligne() Lignedebut = 39 Lignefin = 54 For i = Lignefin To Lignedebut Step -1 If Cells(i, "N") = "" Then Rows(i).Hidden = True End If Next i End Sub -
Contributeur@CIF
Il-y a pas besoin de faire une boucle pour résoudre ce problème !!!
Pet-^tre daigner regarder ce qui a été proposé réponse 6/6 à 14:33H
ce n'est pas difficile de faire cette manip sur plusieurs feuilles mais comme je suis pris pour un ...( au choix) je laisse les petits génies le faire
-
-
Contributeur
Bonjour
Sub Supprimer_si_vide()
Dim Ligne As Long
On Error Resume Next
Ligne = Columns("B").Find("*", , , , , xlPrevious).Row
Range("B2:B" & Ligne).SpecialCells(xlCellTypeBlanks).EntireRow.hidden=true
End Sub