Si telle cellule est vide, alors masquer la ligne

Feitan

XLDnaute Nouveau
Bonsoir à tous,

Je suis à la recherche de la formule magique qui grâce à une macro, me permettrait d'effectuer l'action suivante :

J'ai un tableau avec des lignes de noms et des caractéristiques en colonne.
Pour chaque nom, les caractéristiques sont cochées dans les colonnes par un X.

excel-15b575f558.jpg


Ce que j'aimerai, c'est que grâce à la macro, si un nom ne possède aucune caractéristique (ici encadrés en rouge), en gros si les colonnes sont vides, et bien la ligne soit masquée.

J'espère avoir été assez clair, merci beaucoup par avance pour votre aide.
 

Excel-lent

XLDnaute Barbatruc
Re : Si telle cellule est vide, alors masquer la ligne

Bonsoir Pixel, DoubleZéro,

Etant donné le nombre important de solutions : 2T, 4T, 2Tc/o, 2T2F

1/ Au lieu d'imbriquer des tonnes de boucle "If ... Then ... Else ... End If" qui serait long, fastidieux, difficile à comprendre et relire, j'ai opté pour la boucle :
"--Select Case ...
------Case Is ...
-----------...
------Case Is ...
-----------...
--End Select
"

2/ J'ai mis en J66 une liste, permettant ainsi d'éviter les fautes de frappes, et donc un mauvais fonctionnement de la macro.

De plus, pour éviter un nombre trop important de lignes de code, tu verras que :

1/ les lignes à masquer ont été regroupées et mises à la suite (utilisation de la fonction "Range" au lieu de "Rows" mais le résultat est le même ;)).

2/ l'affichage des lignes précédements masqué raccourci au maximum, et mis au début et une seule fois
Cells.EntireRow.Hidden = False
Ce code signifie : sélectionner TOUTES les lignes de la feuille ENTIERE (et non pas seulement quelques lignes - au risque d'en louper) et les afficher.

3/ pour éviter la répétition inutile du code "If Target.Address = "$J$66" ", je l'ai placé au début de la macro. Plusieurs avantages : code plus court, mais également un temps d'exécution de la macro plus rapide. Si la cellule sélectionné n'est pas J66, il quitte immédiatement la macro, alors qu'avant non.

Bonne fin de soirée
 

Pièces jointes

  • Proposition Feitan version 2.xls
    25 KB · Affichages: 107
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : Si telle cellule est vide, alors masquer la ligne

Salut Pixel,

Pour que cela soit encore plus formateur et t'aide à progresser plus vite, voici ci-joint ton code corrigé (et très légèrement raccourci : "Target.Address = "$J$66"" et "Cells.EntireRow.Hidden = False" placé au début).

Ainsi cela te permet de mieux visualiser l'imbrication des boucles "If... Then ... Else ... End If"

Comme tu pourras le voir dans le code, pour s'y retrouver et ne pas se tromper, il est primordial de bien présenter son code. Faire des retraits de lignes comme illustré ci-dessous :

If condition 1 Then
------------------------alors réaliser solution 1
Else
------If condition 2 Then
------------------------alors réaliser solution 2
------Else
----------If condition 3 Then
------------------------alors réaliser solution 3
----------Else
------------------------alors réaliser solution 4
----------End If
------End If
End if

Si tu as des questions, n'hésite pas, l'important est de comprendre, et ainsi pouvoir progresser.

Bonne fin de soirée
 

Pièces jointes

  • Proposition Feitan version 3.xls
    26.5 KB · Affichages: 152

pixel

XLDnaute Nouveau
Re : Si telle cellule est vide, alors masquer la ligne

Juste un petit message pour vous remercier, tous.
message particulier à exel-lent, car j'avoue que au-delà d'être impressionné par le savoir, la vitesse de réponse, le dévouement à mon probleme :
Chapeau bas les amis !! Et vraiment merci, car sans vous, je n'aurai STRICTEMENT jamais pu faire face.
merci pour tout.
Pixel
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia