Transformer les MFC en mises en forme non conditionnelles

RE

J'ai une solution à partir de Display.Format mais pas disponible sur 2007 (2010 et +)

Pourquoi pas ?

Je travaille le plus possible sur 2003, mais je peux passer sur 365 quand c'est nécessaire.

Merci.

RE

Quand on agit sur le plage elle-même il y a des effets de bord.

J'avais testé sur une copie et il m'a fallu corriger

Ceci agit sur la sélection

6classeur4b.xlsm (18.04 Ko)

Rebonjour et remerci.

Je viens de tester sur Office 365 sur Mac et ça a marché nickel quand j'ai sélectionné une cellule contenant une MFC.

En revanche, quand la sélection comprend des cellules sans MFC, j'obtiens une

Erreur d'exécution de type "1004" :

impossible de définir la propriété NumberFormat de la classe Range.

(un peu du chinois pour moi)

...et ça coince sur :

.NumberFormat = SceFormat.NumberFormat

Bonjour,

Pourquoi pas ?

Je travaille le plus possible sur 2003, mais je peux passer sur 365 quand c'est nécessaire.

pourquoi ne pas l'avoir dit ici :

https://forum.excel-pratique.com/viewtopic.php?p=868285#p868285

où tu refusais le Display.Format proposé ???

eric

re,

c'est pour ça que eriiic t'avais suggéré de faire la boucle uniquement sur les cellules ayant une MFC,

Set pl = [C:F].SpecialCells(xlCellTypeAllFormatConditions)

@eriiic

pourquoi ne pas l'avoir dit ici :

viewtopic.php?p=868285#p868285

...bin, parce que je ne pouvais pas imaginer qu'il n'y avait pas de solution sur la v2003

où tu refusais le Display.Format proposé ???

Je n'ai pas refusé. Je ne comprends juste pas la notion...

...bin, parce que je ne pouvais pas imaginer qu'il n'y avait pas de solution sur la v2003

pour la version 2003 je ne voyais pas d'autre solution que de vérifier le résultat de la formule utilisée,

sur le fichier que tu as transmit, j'ai fait les test suivant avec en cellule F3, F15 et D15 la valeur 43836

Sub ttt1()
f = Range("F15").FormatConditions(1).Formula1
t = Evaluate(f)
End Sub
Sub ttt2()
f = "ET(F3>43000,D15<=F3,F15>=F3)"
t = Evaluate(f)
End Sub

et là je suis bluffer, jusqu'à présent je n'aurais pas cru que la méthode Evaluate pouvait faillir

mais là c'est le cas!

je vient de trouver l'erreur, c'est la langue,

celui-ci fonctionne si (And à la place de ET)

Sub ttt3()
f = "And(F3>43000,D15<=F3,F15>=F3)"
t = Application.Evaluate(f)
End Sub

pour pallier à ça, il faut passer par une cellule intermédiaire,

Sub ttt4()
Range("P1").FormulaLocal = Range("F15").FormatConditions(1).Formula1
f = Range("P1").Formula
t = Application.Evaluate(f)
End Sub

RE à tous

En revanche, quand la sélection comprend des cellules sans MFC, j'obtiens une

Erreur d'exécution de type "1004" :

impossible de définir la propriété NumberFormat de la classe Range.

Bizarre je ne reproduis pas.

Le display.format et ses composantes ne s'occupent pas de la MFC, juste de l'aspect de la cellule qu'elle résulte ou non d'une MFC

Tu n'aurais pas des cellules protégées ? Des cellules fusionnées ?

Peux-tu joindre un exemple où cela se produit ?

Merci pour ta réponse.

En fait, je n'ai fait que tester sur le fichier .xlsm que tu as posté le 9 mai à 5:36 pm.

Je viens de le refaire pour vérifier. J'ai :

– changé la valeur en F3 (j'ai saisi : 10/05/20)

– sélectionné la plage E14:G16

– cliqué sur le bouton "Go"

Ça déclenche le message d'erreur direct.

Alors que, quand je ne sélectionne que F15, la macro fonctionne.

(pm : pour Office 365, je suis sur Mac).

RE

Il y bien un souci sur NumberFormat que j'ai corrigé

Mais le souci est que si le classeur a été créé avec une version antérieure à 2010 les bordures ne sont pas gérées de la même façon et le code ne fonctionne pas correctement...

si le classeur a été créé avec une version antérieure à 2010 les bordures ne sont pas gérées de la même façon et le code ne fonctionne pas correctement...

Aïe !

Mon classeur a été créé sous Excel v2003....

Dans ce cas, est-ce qu'éditer la MFC sans rien changer et la revalider résoudrait le problème ?

Merci en tous cas.

RE

Non a priori beaucoup de choses restent dans un classeur baladé d'une version à l'autre (j'en ai déjà fait les frais)

Rechercher des sujets similaires à "transformer mfc mises forme conditionnelles"