Rechercher / remplacer dans formules de MFC

Bonjour,

J'ai des centaines de cellulles auxquelles j'applique une mise en forme conditionnelle à l'aide d'une formule.

La formule appliquée est différente pour chaque cellulle mais il s'avère que j'ai besoin de remplacer dans toutes ces formules un élément commun par un autre même élément.

Par exemple ça peut être le signe < qui est commun à toutes les formules à remplacer chaque fois par le signe >

Est-il possible de faire cela automatiquement sans avoir à aller faire ce changement dans chaque formule de la mise en forme conditionnelle ?

Et pour information, je suis sous excel 2010.

Merci de votre aide !!

Bonjour,

La réponse courte est ... Oui ...

La véritable réponse ... concrète et tangible ... n'est possible qu'avec un bout de fichier ...

Bonjour !

Je te propose d'essayer ce que j'utilise régulièrement pour effectuer des modifications (que ce soit dans un ou plusieurs onglets) : affiche les formules (CTRL+"), c'est plus facile pour vérifier les modifications, puis CTRL+H; une fenêtre Rechercher et remplacer apparaît : remplis les champs puis sélectionne l'option Remplacer tout : normalement le travail est fait !

Tiens-moi au courant si ça a fonctionné

La réponse courte est ... Oui ...

La véritable réponse ... concrète et tangible ... n'est possible qu'avec un bout de fichier ...

Oui en effet c'est plus facile avec un fichier !!

Alors dans le fichier joint, dans la feuille 'Ligue2' j'aimerais pouvoir faire les changements suivants dans les formules de MFC des cellules B68 à T124:

  • remplacer Liste_J_L1 par Liste_J_L2
  • remplacer Liste_Eq_L1 par Liste_Eq_L2
  • mettre à la fin de la formule =6 au lieu de =2

A noter qu'une même formule ne s'applique qu'à 3 cellules contiguës afin de pouvoir les colorer en gris si la formule est vraie:

Par exemple, la formule suivante s'applique aux cellules B68 à B70:

=SUMPRODUCT(MAX((Liste_J_L1=B$64)*(Liste_Eq_L1=$A$68)*COLUMN(Liste_Eq_L1)))=2

Et pour ces 3 cellules la formule souhaitée serait donc:

=SUMPRODUCT(MAX((Liste_J_L2=B$64)*(Liste_Eq_L2=$A$68)*COLUMN(Liste_Eq_L2)))=6




KASKAVEL45 a écrit :

Bonjour !

Je te propose d'essayer ce que j'utilise régulièrement pour effectuer des modifications (que ce soit dans un ou plusieurs onglets) : affiche les formules (CTRL+"), c'est plus facile pour vérifier les modifications, puis CTRL+H; une fenêtre Rechercher et remplacer apparaît : remplis les champs puis sélectionne l'option Remplacer tout : normalement le travail est fait !

Tiens-moi au courant si ça a fonctionné

Merci mais ce que tu proposes ne permet d'afficher que les formules associées aux cellules, et pas les formules de mise en forme conditionnelle de ces cellules !!

14exemple-mfc.zip (147.25 Ko)

Oups... je pense que je n'avais pas tout lu ou mal compris... As-tu essayé de reproduire la mise en forme ?

KASKAVEL45 a écrit :

Oups... je pense que je n'avais pas tout lu ou mal compris... As-tu essayé de reproduire la mise en forme ?

comment ça ? peux-tu expliquer ?

Re,

Merci pour le fichier ...

J'avoue ne pas avoir compris la raison pour laquelle ta formule ne doit être appliquée que par bloc de 3 cellules fusionnées ...

Ci-dessous un premier code à tester ... pour savoir si nous sommes (ou pas...)sur la bonne voie ...

Sub MFC()
  With Sheet5.Range("B68:B70")
    .FormatConditions.Delete
    .FormatConditions.Add Type:=xlExpression, Formula1:= _
          "=SUMPRODUCT(MAX((Liste_J_L2=B$64)*(Liste_Eq_L2=$A$68)*COLUMN(Liste_Eq_L2)))=6"
    .FormatConditions(1).Interior.color = 12632256
  End With
End Sub

En espèrant que cela t'aide ...

Bonjour

A mon avis la MFC peut être appliquée à l'ensemble avec une formule adéquate : cela n'a pas de sens de faire 1 MFC par 3 cellules.

En utilisant DECALER + LIGNE + COLONNE + MOD on doit trouver une formule unique...

Ci-dessous un premier code à tester ... pour savoir si nous sommes (ou pas...)sur la bonne voie ...

CODE: TOUT SÉLECTIONNER

Sub MFC()

With Sheet5.Range("B68:B70")

.FormatConditions.Delete

.FormatConditions.Add Type:=xlExpression, Formula1:= _

"=SUMPRODUCT(MAX((Liste_J_L2=B$64)*(Liste_Eq_L2=$A$68)*COLUMN(Liste_Eq_L2)))=6"

.FormatConditions(1).Interior.color = 12632256

End With

End Sub

En espèrant que cela t'aide ...

Oui ça marche pour les 3 cellules concernées, le remplacement est bien exécuté dans la formule et comme elle est vraie les cellules sont grisées.

Maintenant, comment appliquer ce remplacement partout.... telle est la question !!


Bonjour

A mon avis la MFC peut être appliquée à l'ensemble avec une formule adéquate : cela n'a pas de sens de faire 1 MFC par 3 cellules.

En utilisant DECALER + LIGNE + COLONNE + MOD on doit trouver une formule unique...

Oui c'est sans doute la meilleure option à prendre au départ, mais quelle serait cette formule unique ??

Bonjour

Pas décortiqué ni activé tes fonctions mais dans la MFC tu peux remplacer le Liste_Eq_L2=$A$2

par

Liste_Eq_L2=DECALER($A2;-MOD(LIGNE()+1;3);0)

et l'appliquer de la ligne 2 à la ligne 61

Re

Vérification faite en ajoutant le nom Liste_EQ_L2b pour limiter à la colonne F au lieu de FG

tu peux appliquer la formule de MFC

=NB.SI.ENS(Liste_EQ_L2b;DECALER($A2;-MOD(LIGNE(B2)+1;3);0;1;1);Liste_J_L2;B$1)

à la plage B2:T61

Re,

Merci Chris ... d'avoir pris le temps de refondre la MFC ...

78chris a écrit :

Re

Vérification faite en ajoutant le nom Liste_EQ_L2b pour limiter à la colonne F au lieu de FG

tu peux appliquer la formule de MFC

=NB.SI.ENS(Liste_EQ_L2b;DECALER($A2;-MOD(LIGNE(B2)+1;3);0;1;1);Liste_J_L2;B$1)

à la plage B2:T61

ça marche du tonnerre merci !!

Cependant ça ne fonctionnera pas sous excel 2003 parce-que la fonction NB.SI.ENS n'est disponible que depuis la version 2007, n'est-ce-pas ?

ou bien y-aurait-t-il une astuce ?

Bonjour

Pour ma part une formule combinant SOMMEPROD et DECALER fonctionne dans une cellule mais pas dans la MFC.

A priori lié à l'utilisation de LIGNE...

2003 commence à être ancien... si tu dois tout rendre compatible, tu te prives de pas mal de choses...

78chris a écrit :

Bonjour

Pour ma part une formule combinant SOMMEPROD et DECALER fonctionne dans une cellule mais pas dans la MFC.

A priori lié à l'utilisation de LIGNE...

2003 commence à être ancien... si tu dois tout rendre compatible, tu te prives de pas mal de choses...

Oui je sais bien mais c'est juste que c'est beaucoup plus pratique si je peux utiliser ce fichier sur le pc à la maison

Rechercher des sujets similaires à "rechercher remplacer formules mfc"