Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Passer d'une MFC à une macro pour supprimer le bazar dans les règles.

Al1_44

XLDnaute Junior
Bonjour le forum,

Sur un précédent post, je souhaitais indiquer en vert le besoin effectif par rapport au stock.
Exemple : en colonne B, si je prend le code 21, il m'en faut 12 (Feuille 1), il y en a 5 en stock (sur la feuille 2 ).
Grace à une solution proposée par job75, une MFC vient calculer le besoin par rapport au stock et
met en vert ce qui est disponible et en jaune le manquant.
Mon problème, c'est que je viens régulièrement faire des couper/coller et supprimer des lignes ce qui augmente d'autant
le nombre de règles dans la MFC et scinde la plage de recherche dans "s'applique à".
Hormis le fait de venir régulièrement corriger les données dans la MFC, quelle serait la solution la plus "simple" ?
Passer par une macro pour effectuer le calcul ?
Pour le coup je ne suis pas suffisamment au point pour réaliser la macro.

Al1_44
 

Pièces jointes

  • Besoin - Stock.xlsx
    18.8 KB · Affichages: 7

TooFatBoy

XLDnaute Barbatruc
Mais si pour la MFC le TS est un simple Range comme il l'est pour un non-TS, je ne vois pas pourquoi les insertions et les suppressions de lignes qui génèrent ce morcellement auraient un effet différent.
TooFatBoy, oui j'ai testé sans succès le tableau structuré, le problème reste le même, lorsque je supprime des lignes : la MFC se duplique en autant de fois que de suppression de lignes.
Je viens de faire un test, et chez moi la logique est respectée : suppression d'une ligne => aucun morcellement et aucune duplication de MFC.


[edit] Je viens de tester l'insertion de lignes, et chez moi la logique est également respectée : toujours pas de morcellement ou de duplication de MFC. [/edit]
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
@Al1_44,
Si j'ai un peu de temps j'essaierai de reprendre l'option "Merge identical Format Conditions".
Mais bon, me replonger là-dedans 3 ans après...

Pour info tes MFC qui ont un #REF! dans leurs formules (à partir de la 19ème).
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Sylvanu, j'avais bien vu cette astuce, le code tu le mets dans un module?
Sans la macro de Job, mais seulement avec :
une MFC vient calculer le besoin par rapport au stock et
met en vert ce qui est disponible et en jaune le manquant.
Il faut mettre cette ligne au début de la macro qui crée les MFC.
Le but étant de supprimer toutes les MFC du document avant de les reconstruire.
 

Al1_44

XLDnaute Junior
Effectivement ton fichier fonctionne bien, pas de duplication de MFC ni de morcellement de plages.
Dans mon cas, la formule fait appel à une recherche dans une seconde feuille :
($A1<>"")*(SOMME.SI.ENS(K$1:K1;J$1:J1;J1)>RECHERCHEV(J1;Feuil2!$B:$C;2;0))
Le problème ne viendrait-il pas de là ?
Je regarde cela demain, la journée a été longue pour moi et mes yeux se ferment.
Bonne soirée à tous.
 

TooFatBoy

XLDnaute Barbatruc
Dans mon cas, la formule fait appel à une recherche dans une seconde feuille :
($A1<>"")*(SOMME.SI.ENS(K$1:K1;J$1:J1;J1)>RECHERCHEV(J1;Feuil2!$B:$C;2;0))
Le problème ne viendrait-il pas de là ?
Non, je ne crois pas.

Alors essaye le fichier ci-joint.
Il y a ma MFC dans la colonne2, et ta MFC dans la colonne7.
 

Pièces jointes

  • MFC-dans-TS-v2.xlsx
    17.4 KB · Affichages: 3
Dernière édition:

Dudu2

XLDnaute Barbatruc
Après tu n'es pas obligé d'utiliser des MFC pour colorer conditionnellement tes cellules.
Une formule suffit... Enfin à condition d'utiliser une de ces fonctions personnalisées de l'espace:
Tu peux placer tes formules de colorisation en colonnes dans le TS pour être sûr de rester cohérent et si tu n'aimes les voir, tu peux toujours les masquer. Le TS saura en gérer la duplication automatique.

Même fichier que ci-dessus mais sans MFC.
 

Pièces jointes

  • Sans MFC-dans-TS-v2.xlsm
    34.3 KB · Affichages: 2
Dernière édition:

Al1_44

XLDnaute Junior
Non, je ne crois pas.

Alors essaye le fichier ci-joint.
Il y a ma MFC dans la colonne2, et ta MFC dans la colonne7.
Bonsoir TooFatBoy,
Je viens de faire un essai, cela fonctionne effectivement sur la partie insertion et suppression de lignes, mais lorsque l'on fait un couper / insérer, alors je retrouve le problème de duplication de MFC, ainsi que le morcellement de plages.
 

Al1_44

XLDnaute Junior
Bonsoir Dudu2,
Ca m'a l'air très intéressant, il va me falloir du temps pour digérer ton code.
Je pars en congé demain, je m'y met dès mon retour et je suis quasiment certain de revenir vers toi pour des explications complémentaires.
 

Al1_44

XLDnaute Junior
Bonsoir Crocrocro,
Merci de m'aider à ranger mon bazar, j'ai parcouru ton fichier, je vais donner la même réponse qu'à Dudu2.
Il va me falloir un peu temps pour l'étudier.
Je prends un peu de congé et dès mon retour je m'y met.
Merci pour l'aide apportée.
Merci à tous.
Bonsoir le forum et à bientôt, j'en suis sûr.
 

TooFatBoy

XLDnaute Barbatruc
Je viens de faire un essai, cela fonctionne effectivement sur la partie insertion et suppression de lignes, mais lorsque l'on fait un couper / insérer, alors je retrouve le problème de duplication de MFC, ainsi que le morcellement de plages.
"Couper" n'existe pas dans un TS.

En revanche, l'insertion ne devrait pas te poser de problème.
Tu dois mal t'y prendre : peut-être que tu fais un "copier/insérer", qui n'existe pas dans un TS, au lieu d'insérer une ligne puis coller les données.
 

Dudu2

XLDnaute Barbatruc
Bonsoir @crocrocro,
@Al1_44 , comme je l'ai écrit dans le post 7, j'ai créé un fichier (disponible dans les Ressources) qui permet d'arranger le "bazar" dans les MFC.
Pratiquement, pour quelqu'un qui ne connait pas du tout les macros de ta ressource assez longe à lire, et pour éviter qu'il ait à y passer des heures pour les comprendre, que conseilles-tu à @Al1_44 pour qu'ils résolve son problème de macros dispersées sur la base de ce que as placé en ressource ?
Parce que il est là le problème. Il n'a pas envie de décortiquer des trucs complexes pour essayer d'y trouver une solution. Il faut que ce soit clair et directif. Exemple à l'appui si possible.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…