Cacher les lignes si une cellule de la ligne est vide ?

Bonjour,

Je voudrais cacher toutes lignes dans les quelles la cellule dans la colonne I de la ligne en question est vide.

Ex. : Si I52 est vide alors la ligne 52 en question doit être masquer sans pour autant que le calcul des formule soit fausser.

J'ai trouver ce code qui marche bien dans le fichier que j'ai trouver mais pas dans mon cas :

Sub MasquerLignesVide()
' Macro réalisé par Excel-lent

    For i = [A65536].End(xlUp).Row To 5 Step -1

      '   If Application.WorksheetFunction.CountBlank(Range(Cells(i, 2), Cells(i, 5))) = 4 Then

           Rows(i).EntireRow.Hidden = True
        End If

    Next i

End Sub

Par contre comment le transformer afin qu'il regarde sur toutes la colonne I afin de trouver les cellules vide est enfin masquer les lignes ensuite ?

Merci

Bonjour,

Merci de joindre un bourt de fichier.

Merci voici le fichier exemple ou le code pour marche les lignes en ce qui concerne des colonne B à E marche mais pas celui uniquement pour la colonne I

61lignesvide.zip (19.67 Ko)

Bonjour,

J'ai réécrit la macro.

A vérifier

89lignesvide-1.zip (20.61 Ko)

Merci cela marche mias avant que tu me donne ta solutions j'ai trouve ceci :

Cells.EntireRow.Hidden = False
For Each cell In Range("I2", Range("I65536").End(xlUp))
If cell = "" And cell.Offset(, 1) = "" Then cell.EntireRow.Hidden = True
Next cell

ton code

Derl = Range("I" & Rows.Count).End(xlUp).Row
    For i = 5 To Derl
          contenu = Range("i" & i).Value
          If IsEmpty(contenu) Then
             Rows(i).EntireRow.Hidden = True
          End If
     Next i

qu'elle est la différence entre ces deux code ?

Puis comment je puise a nouveau afficher ces lignes avec :

Rows.EntireRow.Hidden = False

dans ton code au lieu d'avoir deux macro ?

Merci pour la réponse et éclaircissement entres ces deux code ?

En gros c'est la même chose,

dans ton code tu te limites à 35535 lignes, mais ce n'est pas grave

Pour afficher les lignes voir nouveau code

77lignesvide-2.xlsm (21.11 Ko)

Merci pour éclaircissement par contre je viens de rendre dans mon fichier que certains cellules sont fusionne dans la colonne I donc erreur comment je puisse faire pour qu'on regarde dans la colonne I mais pas toutes les lignes mais seulement par exemple :

I7:i43 puis i52:i88 et etc...

Merci

envoie un bout de fichier significatif

Bonjour voici le fichier en question avec sa mise en page dans cet exemple pour mois de janvier les lignes :

i7:i8 devront être masquer

i40:i43 devront être masquer

pour le mois de février

i52:i55 devront être masquer

i84:i86 devront être masquer

etc ....

si j'utilise ce code cela marche

Private Sub MasquerLignes_Click()
Dim cell As Range
    For Each cell In Union(Range("i7:i43"), Range("i52:i88"), Range("i97:i133"), Range("i42:i178"), Range("i187:i223"), Range("i232:i268"), Range("i277:i313"), Range("i322:i358"), Range("i367:i403"), Range("i412:i448"), Range("i457:i493"), Range("i502:i538"))
        If IsEmpty(cell.Value) Then
            cell.EntireRow.Hidden = True
        End If
    Next
End Sub

donc le code est bon par contre si par exemple I7 n'est pas vide alors cela marche et si i7 vide cela ne marche pas c'est à dire que cela me masquer aussi la ligne où j'ai ceci :

CONCATENER("Janvier";" ";STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32))

dans ce cas la ligne I3

29cachelignes.xlsm (258.81 Ko)

Bonsoir,

Nouvelles version tenant compte des cellules fusionnées à ne pas supprimer

35lignesvide-3.xlsm (52.51 Ko)

Bonsoir,

Merci oui cela marche merci encore une fois

Par contre comment je puisse adapter ce code pour le mettre dans un bouton activeX ?

bouton_click que on met dans le code de la feuille parce que dans chaque feuille il vas avoir ce bouton

Parce que j'ai cet erreur : Variable non definie

Edit : Si je met dans le code du bouton appel au code que tu m'a donner cela marche par contre est-ce qu'on peux mettre directement le code sans faire appel un autre code

Je n'ai pas tout compris,

Regarde si le fichier joint solutionne tous tes problèmes

46lignesvide-4.xlsm (139.14 Ko)

Merci et oui cela marche comme tu l'a fait avec des bouton classique et excuse pour incompréhension de ce que je cherché et qu'on met le code dans un module ou thisworkbook.

Par contre si on met un bouton ActiveX

=INCORPORER("Forms.CommandButton.1";"")

et on veux mettre le code

Private Sub CommandButton1_Click()

End Sub

qui se trouve dans l'onglet en question exemple Feuil1 j'ai erreur variable non définie donc la question est comment déclarer ces variable

 Derl = Range("I" & Rows.Count).End(xlUp).Row
    For i = 5 To Derl
         Set c = Range("i" & i)
         contenu = Range("i" & i).Value
       If ((Not (c.MergeCells)) And (IsEmpty(contenu))) Then
       'MsgBox (c.MergeArea.Address & " " & i & " non fusionnée")
               Rows(i).EntireRow.Hidden = True

       End If
     Next i

Derl

C

contenu

J’espère que je suis plus clair

PS : Qu'elle est la différence entre bouton classique et bouton activX

Cela dépasse mes compétences et mon temps dispo.

Je te propose d'ouvrir un nouveau post pour poser cette question précise.

Merci pour ta disponibilité et l'aide que tu m'a apporté puis j'ai trouve ici http://office.microsoft.com/fr-fr/excel-help/ajouter-un-bouton-et-lui-attribuer-une-macro-dans-une-feuille-de-calcul-HP010342137.aspx la différence entre ces deux boutons

Rechercher des sujets similaires à "cacher lignes ligne vide"