Supprimer MFC en préservant le formatage des cellules

Bonjour

J’ai un fichier excel constitué d’un gros paquet de lignes formatées par une MFC (mise en forme cond.).

Enfin, dans une des colonnes, figure une formule de calcul.

Il s’avère qu’à chaque filtre activé (dans un but de recherche), excel met un temps fou avant de rendre la main : trop de formules me dis-je.

Forçage en mode calcul manuel vous allez me dire : pas d’accord (raison personnelle) !

Je dois alors trouver une solution pour supprimer toutes ces formules de calcul sans perdre leur résultat et tout en gardant le formatage actuel (issu des MFC).

Pour ce qui concerne la colonne de formules, j’ai fait un "copier/coller valeur" sur elle-mêmes. Ca roule !

En revanche pour ce qui concerne les MFC, je n’ai pas trouvé de solution pour les faire disparaître sans perdre le formatage qu'elles produisent. Ces MFC sont toujours là avec leur formule et le temps de réponse est toujours dégradé.

Voyez vous une possibilité sous excel sinon avec une macro pour arriver à mes fins c'est à dire pour excel plus aucune formule à recalculer et avoir un temps de réponse acceptable malgré le volume important de données ?

J'espère avoir été clair.

Merci de votre aide.

Bonjour

Je vois une solution :

Tu copies l’ensemble de ton tableau et tu en fais un collage spécial format sur une autre feuille (créée pour ce besoin).

Tes calculs finis, tu fais l’inverse : tu copies le tableau de cette feuille temporaire et tu le colles par un collage spécial formats sur ton tableau initial.

Cela devrait marcher, même fait par une macro à qui tu peux demander de supprimer alors la feuille provisoire.

Essaie !

Bye!

Ça ne fonctionne pas. Après le copiage collage spécial formats la nouvelle feuille se retrouve avec les mêmes MFC. Puis le même collage dans l'autre sens ne change rien. J'ai tjs les MFC.

Qd tu écris "Tes calculs finis", qu'entends-tu par là ? Je n'ai pourtant rien à recalculer lorsque j'effectue le premier c/c.

Frk

Bonjour

C035145 a écrit :

Qd tu écris "Tes calculs finis", qu'entends-tu par là ?

N’écris-tu pas :

excel met un temps fou avant de rendre la main

La manip que je vois, et que j’aimerais tester sur ton fichier :

1 – copier ton tableau sur une feuille provisoire avec son format ou que avec son format

2 – copier ce même tableau sur lui-même pour ne conserver que les valeurs

3 – faire le tri que tu souhaites

4 – copier le tableau de la feuille provisoire et faire un collage spécial format sur le tableau initial

5 - supprimer la feuille provisoire

Les étapes 1 et 2 peuvent se faire par un clic sur un premier bouton et les étapes 4 et 5 par un autre bouton.

Et mieux encore, si tu acceptes de faire le tri non pas sur la feuille de calcul mais à travers une boite de dialogue, tu n’aurais besoin que d’un seul bouton.

Si ton fichier est vraiment gros, cela vaut peut-être le coup. Mais c’est pas sûr …

Bye !

Le contenu de mon gros fichier étant confidentiel, j'ai réalisé un petit fichier représentatif de mon pb et que je joins ici.

Je résume mon besoin : ne plus avoir AUCUNE formule de calcul dans l'onglet feuille1 dans lequel j'ai mon tableau. J'entends par formule de calcul les sommes que j'ai créées en colonne D + la MFC qui affecte le rendu des lignes de mon tableau.

En d'autres termes, il faut qu'au final dans mon onglet feuille1 j'ai tjs le résultat des sommes en colonne D mais en valeur et plus en formule et qu'il n'y ait plus de MFC mais que le rendu ait été conservé (en l'occurrence, les lignes comportant le mot "rouge" en colonne A sont entièrement en police rouge).

Merci encore de votre aide

12essaimfc.xlsx (10.18 Ko)
C035145 a écrit :

il faut qu'au final dans mon onglet feuille1 j'ai tjs le résultat des sommes en colonne D mais en valeur et plus en formule et qu'il n'y ait plus de MFC mais que le rendu ait été conservé (en l'occurrence, les lignes comportant le mot "rouge" en colonne A sont entièrement en police rouge).

J’ai fait une macro qui reprend « à lettre » ce que tu demandes sur un tableau de 15 000 lignes.

Elle supprime totaux et MFC et remet elle-même les couleurs selon le critère indiqué.

Elle utilise provisoirement les colonnes F à I

Cela te convient-il ?

49essaimfc-v1.xlsm (291.26 Ko)

J'en déduis qu'il n'y a pas de solution autre que par une proc VBA consistant à traiter les lignes 1 à 1. Je me débrouillerai avec ça.

Car en vérité, le fichier que je t'ai transmis était volontairement simpliste.

Mon fichier d'origine est en fait un mélange de lignes provenant de 2 autres fichiers. Par un jeu de couleurs, je fais ressortir les écarts. Et pour y arriver, les lignes sont bien sûr triées sur un identifiant.

Si je reprends l'exemple de mon fichier de test :

  • la colonne A qui sert à cette colorisation comporte en vérité d'autres valeurs
  • la MFC est plus complexe

Règle n°1 : =($A2="codecoul1") ==> toute la ligne en rouge ==> c'est ce que fait ta macro

Règle n°2 : =($A2="codecoul2")+($A2="codecoul3") ==> toute la ligne en gris ==> je saurai facilement adapter ta macro

Règle n°3 : =($A2="codecoul4")*N(INDIRECT(ADRESSE(LIGNE();COLONNE()))<>INDIRECT(ADRESSE(LIGNE()+1;COLONNE())))

Pour comprendre cette règle, convenons que grâce à un tri préalable sur leur identifiant, les lignes figurant dans les 2 fichiers se suivent et que dans ce cas la 1ère occurrence de cette ligne porte le code "codecoul4" tandis que la seconde occurrence porte le code "codecoul3".

Dans ce cas, cette 3è règle permet de mettre en rouge uniquement les cellules dont la valeur est différente de celle juste en dessous.

Ainsi, ce qui apparaît en rouge correspond pour moi aux écarts qui existent entre les 2 fichiers.

Merci en tout cas pour ton aide.

Si toutefois il est simple pour toi de m'indiquer la manière d'écrire le code VBA qui irait bien pour réaliser ce que fait cette 3è règle, ce serait parfait.

C035145 a écrit :

Si toutefois il est simple pour toi de m'indiquer la manière d'écrire le code VBA qui irait bien pour réaliser ce que fait cette 3è règle, ce serait parfait.

Simple ? J'en doute...

Je pourrais toutefois essayer si je disposais d'un bout de fichier avec les vraies conditions de mise en forme;;;

Bye !

Puisque tu le demandes si aimablement, il m'est difficile de refuser

28essaimfc-2.xlsx (10.39 Ko)

Et bien non ! J’abandonne ! Les formules et moi, ce n’est pas le grand amour …

Tu devrais faire un nouveau post sur le forum pour demander si quelqu’un saurait te traduire la formule (règle n° 3) en instruction VBA.

Il y a des cracks. Et je ne serais pas étonné que l’on te trouve ça. Auquel cas, ce serait gagné !

Bonne chance !

Bye !

Rechercher des sujets similaires à "supprimer mfc preservant formatage"