RESOLU: Masquer aficher ligne, selon condition

targa

XLDnaute Junior
Bonjour à tous,

Une petite demande pour les experts que vous êtes, voici mon problème.
Je rentre sous 3 feuilles "Calcul_ISO1","…2", et "Calcul_App", des données dans différentes positions, ces données sont reportées et mise en forme sur une autre feuille qui s’appelle "Couts_rabais"

Mon problème:
Je souhaite masquer toutes les lignes de la feuille "Couts_rabais", des positions qui n'ont pas été remplies, ou que les positions qui sont remplies s'affichent.

J'ai déjà un code VBA qui me permet de le faire, mais les lignes ne se masque pas automatiquement sur la feuille "Couts_rabais" au fur-et-à-mesure que je remplis mes tableaux.

J'aimerai que cela s'actualise à mesure que je rentre mes données.

Lorsqu'une position est remplie, j'ai un 1 qui vient dans une cellule dans la colonne AA, en face de chaque pos. remplie.

J'aimerai que devant chaque pos. lorsque un 1 est affiché les lignes de la pos. concernée s'affiche et si c'est 0(zéro), que les lignes se masque automatiquement.

Actuellement il est obligé de repasser dans une de c'est cellule pour actualiser le calcul et que cela fonction.
J'espère avoir été compréhensible dans ma demande, si ce n'est pas le cas n'hésitez pas à me demander plus de précision.

D'avance un grand merci à ceux qui peuvent m'aider.

L'exemple de mon fichier en pièce jointe.

Meilleures salutations
 

Pièces jointes

  • test_cacher-afficher ligne selon conditions.xlsm
    915.6 KB · Affichages: 65
Dernière édition:

gmb

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

Bonjour

Tu écris :
Je souhaiterai cacher-afficher des lignes dans lesquelles il y a une formule.
- la ligne doit être cachée si le résultat de la formule est "" ou vide
- la ligne doit être affichée si le résultat de la formule contient qqch
Joint un fichier et j'essaierai de te satisfaire !
Bye !
 

targa

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

Hello,
Voici les fichiers.
Le premier qui est la continuation
Le deuxième qui est sur le même principe mais un peu différent
Un grand merci pour ton aide !!
 

Pièces jointes

  • 01_Masquer-afficher-lignes-résultat-zero_ex01.xlsm
    505.1 KB · Affichages: 42
  • 02_01_Masquer-afficher-lignes-résultat-zero_ex02.xlsm
    170.1 KB · Affichages: 45

gmb

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

Bonjour

Pour la question qui te « turlupine » :
La macro commence à la ligne 4 colonne AA de la feuille ‘’Cout_Rabais ‘’ : c’est la première cellule de la colonne sur laquelle elle va faire un test sur son contenu. Elle va regarder si cette cellule contient une formule qui commence par : « =SI(SOMMEPROD((Calcul_ » soit dans la macro, en anglais : « =IF(SUMPRODUCT((Calcul_ »
Sur ta nouvelle feuille, il te faudrait donc partir de la ligne qui contient cette formule. Si tu continue à partir de la ligne 4, tu ne risques pas grand-chose car il y a peu de chance que tu aies cette formule dans la colonne AA avant ta position 1 : la macro va tester des cellules inutilement…
 

targa

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

Bonjour gmb,
Oh là là, je vois que tu as bossé tard!:(
Merci pour ton dévouement, c'est trèèèès sympa! :)
Pour te répondre à ton message, oui en analysant un peu plus en profondeur tes codes et les différence entre les deux, j'avais réussi à déterminer l'histoire des lignes et leur chiffres.
Par-contre dans ton code tu as:
If Left(Range("AA" & L).Formula, 23)[\QUOTE]
Ce chiffre 23 ne change pas? il fait référence à quoi?
En tous cas, encore un GRAND MERCI pour ce que tu fais¨
Te souhaite une excellente journée
 

targa

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

gmb à dit:
Voilà pour le premier fichier. A tester.
Bonjour gmb,

Merci pour ton énorme travail, et le temps que tu me consacres à mes fichiers. Je te suis très reconnaissant. Merci.
Alors pour te répondre, le 1er ex. est bon, mais il faut juste que je mette des 1 sur les interlignes ou il n'y a rien,entre chaque position pour espacer un peu,car là du coup il me cache même les lignes qui n'ont rien, mais ça c'est un détails. Je peux contourner le problème comme ça!
Nickel merci!!;)
 

targa

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

gmb à dit:
Et voilà le deuxième!

Pour le 2ème, oui c'est aussi presque ça, mais.., désolé y a un mais, j'aurais souhaiter si possible, faire comme dans le 1er fichier, que cela s'actualise automatiquement lorsque j'ouvre la feuille sans avoir à appuyer sur un bouton, ce qui me paraît contraignant pour l'utilisateur.

J'ai testé ton fichier, cela masque les lignes à 0(zéro que dans la feuille "Couts_rabais" et pas sur les autres, car les conditions 0-1 ne sont pas sur la même colonne.
Et en plus, sur les autres feuilles, le commencement des lignes à masquer sont différentes d'une feuille à l'autre

Est-il possible de mettre un code pour chaque feuille et qui masque automatiquement les lignes dont la valeur de la colonne "x" (car une fois, sur une feuille ce sera la colonne AA sur une autre ce sera la colonne AU, etc.) ?

Merci de ton aide.:)

Cordialement
 
Dernière édition:

gmb

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

Bonjour

Pour répondre à ta question :
If Left(Range("AA" & L).Formula, 23)
Ce chiffre 23 ne change pas? il fait référence à quoi?
"Left" est une fonction de VBA qui a deux arguments exprimés dans la parenthèse qui suit ce mot.
Le premier argument est la valeur sur laquelle porte cette fonction. Ici c'est la valeur de la cellule "AA" & L.
Le deuxième argument est un nombre : celui dont on veut extraire les caractères de cette valeur, en partant de la gauche (left en anglais).
Ainsi, dans la formule utilisée on fait porter la condition sur les 23 premiers caractères de la formule qui est dans la cellule et qu'on compare à la deuxième partie du if.
Un truc maintenant : si tu veux un détail sur une fonction contenue dans une macro, il te suffit de cliquer dessus puis de taper sur la touche F1. Tu sauras comment cette fonction fonctionne et à quoi elle sert.
Bye !
 

gmb

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

Bonjour

Tu écris :
souhaiter si possible, faire comme dans le 1er fichier, que cela s'actualise automatiquement lorsque j'ouvre la feuille
Pas de problème, j’ai modifié.
Tu écris plus loin :
Est-il possible de mettre un code pour chaque feuille et qui masque automatiquement les lignes dont la valeur de la colonne "x"
On peut mais il faut copier et coller la macro dans chaque feuille-code correspondante et l’adapter aux conditions de la feuille de calcul concernée.
Pour cela :
• Tu ouvres VBA : « Développeur – Visual Basic »
• Tu cliques sur l’icone « Explorateur de projets » dans la barre d’outil
• Tu développes éventuellement les arborescences et tu doubles cliques sur l’icone de la feuille qui t’intéresse. Une feuille de code s’ouvre.
• En haut de la feuille, il y a 2 menus déroulants. Dans le 1er, tu choisis : « Worksheet »
• Dans le 2° tu choisis : « Activate »
• Tu colles le code de ta macro et tu l’adapte à la feuille concernée
Et chaque fois que tu reviendras sur cette feuille de calcul, la macro s’exécutera.
Bon courage !
Bye !
 

Pièces jointes

  • masquer-aficher-ligne-selon-condition-masquer-aficher-ligne-selon-condition-v7.xlsm
    185.7 KB · Affichages: 27

targa

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

Bonjour,
Merci pour tes explications tès appréciables, je comprends en effet beaucoup mieux maintenant.
Ok, petit à petit, les différentes parties du code s'éclaircit. :eek:
Merci aussi pour la petite astuce!
 

targa

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

gmb à dit:
Pas de problème, j’ai modifié.
Magnifique !!! trop fort. ça marche du tonnerre !! :D
C'est tout à fait ce qu'il fallait et l'avantage je peux la mettre et l'adapter sur toutes les feuilles.
Et pour l'impression, l'utilisateur n'a pas besoin à chaque fois de masquer les lignes manuellement. GENIAL !
gmb !!! tu es mon sauveur !!!

Un ÉNORME merci pour le temps que tu m'as consacré!
Excellente journée
Cordiales saluations
 

targa

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

Re bonjour,

Heu en testant ce dernier fichier, le 2ème que tu as modifié.
Je me rends compte en le mettant sur mes feuilles de prod et en le testant, que ça marche pour masquer les lignes qui sont à 0(zéro), mais qu'elles ne se réaffiche pas lorsque la valeur de la ligne revient à 1(si une valeur a été modifiée par la suite, mettant la condition de la ligne à 1).
Peux-tu me m'actualiser le code en conséquence, stp?

Et ensuite une autre petite chose, stp.

J'ai une macro avec un bouton qui se trouve sur la feuille "Cout_rabais"(par exemple) et qui exporte le texte de la feuille "Texte_SAP"
dans un fichier txt (notepad), et qui l'enregistre dans le répertoire "Mes documents" du USER tout en lui donnant un nom automatiquement.

Peut-on intégrer ce code "Masquer-afficher les lignes" dans la macro "exporter textes", de manière à ce que je me retrouve pas sur le fichier txt avec des lignes vides aussi.

Le fichier en pièce jointe.
Merci.
 

Pièces jointes

  • 02_Masquer-afficher-lignes-résultat-zero_ex02_V2.xlsm
    191.8 KB · Affichages: 22

targa

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

Bonjour,
gmb à dit:
Pas de problème, j’ai modifié.
J'ai essayé de modifier le code, Je suis toujours avec mon problème d'actualisation d'affichage, les lignes qui reviennent à la valeur 1, ne reviennent pas une fois masquée.
Quelqu'un pourrait-il m'aider à finaliser ce code, ainsi que de m'aider pour mon autre demande de supprimer les lignes avec valeurs 0 (bien-sûr il faut que cela s'actualise si une valeur revient à 1 et que l'on rappuie sur le bouton exporter) d'une d'export du texte dans le fichier .txt
A grand merci!
 

targa

XLDnaute Junior
Re : Masquer aficher ligne, selon condition

Bonsoir,

Bon finalement j'ai réussi à trouver une solution en testant un peu tout, et avec un peu de chance j'y suis arrivé.
Voici le fichier corrigé.
Merci et à bientôt.
Slt
 

Pièces jointes

  • 02_Masquer-afficher-lignes-résultat-zero_ex02_solutionV2.xlsm
    86.5 KB · Affichages: 36
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 331
Membres
103 519
dernier inscrit
Thomas_grc11