Formule pour masquer ligne vide VBA

CIF -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -

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

  1. M-12 Messages postés 1349 Statut Membre 285
     

    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
    0
  2. CIF
     

    Ok merci, mais l'erreur vient de la ligne avec le Range (bug) et je ne vois pas pourquoi...

    0
  3. M-12 Messages postés 1349 Statut Membre 285
     

    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
    
    ​
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. CIF
     

    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

    0
    1. CIF
       

      Finalement, je peux faire plus simple en attribuant juste une cellule en critère et non une plage

      Si cells(i, "N") = "" alors Masquer

      Peux tu m'aider à réécrire ce code ? merci

      0
      1. M-12 Messages postés 1349 Statut Membre 285 > 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
        0
      2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > 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

        0
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     

    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


    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       

      lire masquer au lieu de "supprimer"

      0