Masquer automatiquement certaines lignes en fonction contenu

Bonjour,

Je me suis créé un tableur avec macros qui me sert à faire mes devis et mes factures (avec les réponses à mes questions des participants à ce forum, que je remercie à nouveau).

Aujourd'hui j'essaie de l'améliorer encore un peu, car mes collaborateurs ne le trouvent pas forcément super pratique.

Je m'explique :

En fonction de l'option sélectionnée dans une liste déroulante et/ou d'une coche présente, certaines lignes de ma feuille sont utiles, ou inutiles.

Quand elles sont inutiles, je fais apparaître le message "Merci de masquer cette ligne", avec un fond de couleur bien criard pour que personne n'oublie. Las, malheureusement quelques fois, on travaille trop vite, et on oublie de masquer la ligne... Le devis arrive ainsi chez le client : pas terrible...

Je me demandais comment je pourrais bien demander à Excel de masquer de lui-même certaines lignes si le résultat d'une option choisie dans une liste déroulante ou une case à cocher donne un certain résultat...

Je ne sais pas si je suis très claire, mais cela pourrait se résumer à trouver une commande qui masquerait une ligne si le résultat de la formule qu'elle contient était zéro par exemple.

Heu... je n'ai aucune notion des "enregistrements de macros" dont j'ai vaguement entenu parler. Les seules macros que j'utilise sont les trucs tout prêts qui figurent dans l'obglet développeur sous la commande "Insérer"...

Alors, qu'en dites-vous : faisable ou pas ? (pour une novice, curieuse, mais novice).

Merci 1000 fois encore !

Bonjour

Tu peux masquer les lignes dont la colonne X ou y affiche 0 par exemple.

Un fichier avec le Code qui masque les lignes non vides et dont la valeur en colonne A est 0.

Pour l'appliquer sur ton fichier, tu changes dans le Module "A2:A10" par ta plage concernée.

Cordialement

4'725masquer-lignes-0.zip (7.20 Ko)

Super, merci !

Je pense avoir compris comment cela fonctionne dans ton tableur, mais figure-toi que dans le mien, j'ai des lignes "sous-total" que je ne dois pas masquer.

Du coup, la plage de cellules n'est pas un plage, mais une suite de plages.

Pour que tu comprennes, voici comment j'ai tenté de modifier ta macro :

Sub Zero()

Dim Cel As Range

For Each Cel In Range("H23:H27;H29:H36;H39:H44;H46:H48")

If Cel.Value <> "" And Cel.Value = 0 Then

Cel.EntireRow.Hidden = True

End If

Next

End Sub

... mais... çà n'a pas marché...

Peux-tu me dire si c'est techniquement possible d'écrire une macro qui fasse ce que je veux, et quelle serait la syntaxe ?

Parce que si je dois avoir autant de boutons "masquer lignes vides" que j'ai de rubriques dans mon devis, çà va devenir lourdingue...

En tout cas merci encore, et j'espère que tu sauras m'éclairer pour la suite ?

A bientôt


Ah oui, j'oubliais !!!

j'ai déjà vu des tableurs qui intégraient un bouton "remise à zéro".

Cela me serait fort utile, car tout le monde dans ma boite ne pense pas forcément à enregistrer d'abord ce tableur sous le nom du client avant de commencer la saisie des données, et du coup, de temps, il traîne des chiffres dedans qui n'ont rien à y faire.

Problème : là aussi, les cellules contenant des variables sont disséminées un peu partout, et il faudrait pouvoir saisir une étendue de plages assez complexe...

Une idée ?

Bonjour

Remplace les points virgules par la virgule

For Each Cel In Range("H23:H27;H29:H36;H39:H44;H46:H48")

par

For Each Cel In Range("H23:H27,H29:H36,H39:H44,H46:H48")

Pour effacer la même plage d'un coup, tu ajoutes ce Code dans le Module et tu utilise un bouton pour lancer

Sub RAZ()
    Range("H23:H27,H29:H36,H39:H44,H46:H48").ClearContents
End Sub

Cordialement

Incroyable ! Non seulement tu as les réponses à toutes mes questions, mais en plus tu réponds à la vitesse de la lumière !

Génial !

J'ai bien l'impression que je vais avancer à pas de géants dans ma compréhension de cette vilaine chose velue qui me faisait si peur, j'ai nommé : les macros, le VBA....

MERKI !!!

Bonjour,

ca fonctionne correctement mais comment ova faire automatique sans cliquer sur afficher ou masquer parce que je dois envoyer ce rapport à mon superieur et je ne voulait pas que lui va faire le cliquer à chaque changement des items.

Merci.

Bonjour,je veux masquer des lignes qui contient des 0 ms je sais pas comment je le faire.

merci de me répondre.

Voila mon tableau excel

Bonjour

1) La réponse à ta première question est dans le fichier exemple qui figure dans les premiers messages.

2) Pour qu'une macro se déclenche, il faut un événement et si ton supérieur ne veut pas cliquer sur un bouton, il serait bon que tu dises quel événement déclencherait la macro tout en sachant qu'il faudra aussi un autre événement pour re-afficher, une fois masqué. Jusqu'ici, ni le regard, ni la pensée ne déclenchent de macros.

Cordialement

Merci, mais je te comprend ps ce que vous dire, moi je veux lorsque il y a un zero dans un ligne il suffit que tous le ligne masquer automatiquement sans clic si possible .

merci de me répondre

Bonjour

Les masquer est facile, mais,

quand elle seront masquées, tu feras comment quand tu voudras entrer une valeur en colonne S de ta ligne masquée ?

Bon allez..Tu diras...

A l'ouverture du fichier, les lignes avec 0 sont masquées

Pour les afficher, tu cliques sur le bouton "Afficher Tout"

Cordialement

Merci,mais je remarque que le masque ne fais pas automatiquement càd il suffit de clic sur le macro pour le masquer . je pense que si impossible de masquer automatiquement.

moi je veux que lorsque je clic sur par ex admin 1 les lignes qui contient les zéro masque et aussi la même chose lorsque je clic sur admin 2 ou 3 ou 4 .je sais pas est que si possible ou non.

Cordialement

Bonjour,

Déjà Bravo à Amadeus pour son travail fourni. J'ai récupéré la macro pour la réutiliser en essayant de l'adapter à mon cas mais je rencontre des difficultés. En fait, je souhaite masquer seulement les lignes comportant un 0 dans les cellules de la ligne. En effet sur une ligne je peux avoir des 0 et des chiffres mais avec la macro, la ligne est masquée.

Merci d'avance pour votre aide.

Cordialement

Rechercher des sujets similaires à "masquer automatiquement certaines lignes fonction contenu"