Masquer une ligne si une cellule est nulle

Bonjour,

Est-il possible de masquer (voir supprimer) un ligne lorsque qu'une cellule est égale à quelque chose? (dans mon cas, lorsqu'elle est égale à zéro ).

Par exemple si D9=0, alors supprimer la ligne D.

En attente de votre réponse

Merçi et à bientôt

Bonjour

Supprimer la ligne D ?? ou la colonne ?

Utilise cette macro qui supprime la ligne 9 si D9 est vide.

Sub supprimer()
If IsEmpty(Range("D9")) Then Range("D9").EntireRow.Delete
End Sub

A te lire

Dan

Bonjour Nad

Merçi pour ta réponse rapide. C'est bien la ligne 9 dans l'exemple que je voulais supprimer.

La macro à fonctionnée au début, mais depuis que je change la case "D9" par autre chose, il se passe rien.

En faite j'orais voulu répéter l'opération pour plusieurs cellule et donc supprimer plusieurs lignes:

Si "D82"=0 alors supprimer la ligne 82, puis,

Si "D83"=0 alors supprimer la ligne 83, puis,

Si "D84"=0 alors supprimer la ligne 84.

Merçi de ton aide

Erwan

Re,

Tu as demandé pour la ligne 9 et la macro te fait cela dès que D9 est vide.

Là chaque fois que la cellule devient vide, tu dois relancer la macro.

Il est évident que si tu dois faire cela pour d'autres cellules la macro doit être modifiée.

Donne moi la plage de cellules à prendre en considération. Là tu me donnes les cellules D82, D83 et D84.

Deux questions :

  • N'y a t il que ces cellules là ou d'autres à considérer dans cette colonne D ?
  • D'autre part, est-ce que la suppression de ligne doit se faire de façon automatique ou à ta demande ?

A te lire

Dan

Re

- N'y a t il que ces cellules là ou d'autres à considérer dans cette colonne D ?

Il y a dans la colonne D, les cellules suivantes: D83:D86 et D93:D103

En fait, il faudrait chercher parmit ces cellules, celles égales à zéro et donc supprimer la ligne correspondante.

exemple:

Si sur D83:D86 et D93:D103, on a D87, D97 et D101 nulle, alors on supprime les lignes 87, 97, et 101, en lancant la macro.

- D'autre part, est-ce que la suppression de ligne doit se faire de façon automatique ou à ta demande ?

Elle peut ce faire d'une façon automatique si c'est possible. En fait j'ouvre la feuille excel, j'importe des données, (faudrait que ca supprime les lignes dont la cellule D est nulle parmit celles citées), j'imprime le document, et je ferme sans enregistrer. Et je recomence avec de nouvelles données.

Merçi de te pencher sur mon problème!

A te lire

Erwan

Bonjour

Macro XL4 et Bouton associé

Explications dans le classeur joint.

https://www.excel-pratique.com/~files/doc/PxzdkSupprimerLignes.xls

Sécurité des macros sur Moyen pour bien réceptionner.

En attendant que VBA passe par là..

Cordialement

Bonjours Amadéus

Merçi beaucoup pour ton aide, la macro marche à merveille!!!

A très bientôt pour peut être, soliciter à nouveau votre aide, pertinante et rapide.

Salutation

Erwan

Re,

tu dis ;

Si sur D83:D86 et D93:D103, on a D87, D97 et D101 nulle, alors on supprime les lignes 87, 97, et 101, en lancant la macro.

Tu parles de D87. Or tu précises que ta plage est entre D83 et D86. Qu'en est-il ?

Sinon, je vois plusieurs cas de figure :

  • Les trois cellules sont vides en même temps. C'est le cas le plus facile car on supprime les trois lignes en même temps
  • Si D87 et D97 sont vides, on supprime les deux ensembles. Là D101 deviendra D99 puisque deux lignes sont supprimées. Est-ce que cela a une importance ou est ce toujours D101 qui sera pris en considération ?
  • Idem sii D87 est vide, on supprime la ligne 87 mais alors D97 et D101 deviennent D96 et D100.

A te lire

Dan

Bonjour,

Ayant eu le cas à faire, ma solution à été celle-ci (si toutefois l'idée est la même) : sélectionner toute la colonne concernée, la nommer (par exemple "XXX") et ensuite faire une macro qui dit "supprimer les lignes dont la cellule de la colonne A est vide".

Je ne sais pas si je copie tout car ma macro est très longue mais voici l'idée :

    For Each Cellule In Range("XXX").Cells
        ' Colonne 1 = Colonne A
        If Cellule.Value = "" And Cellule.MergeCells = True And Cellule.Column = 1 Then
        Rows(Cellule.Row).Delete
        End If
    Next Cellule

Reste à changer "supprimer" par "masquer" ...

Rechercher des sujets similaires à "masquer ligne nulle"