Question

Excel traite généralement les formules de mise en forme conditionnelle comme s'il s'agissait de formules matricielles, sauf lors du chargement depuis un fichier de feuille de calcul XML Excel 2002/2003.

Ce problème ne concerne que le format Excel 2002/2003 XML Spreadsheet ... le format Excel natif fonctionne correctement, tout comme le nouveau format XML Excel 2007 (xlsx).

Après avoir chargé la feuille de calcul, il est possible de la faire fonctionner correctement en sélectionnant la plage mise en forme, en accédant à la boîte de dialogue Mise en forme conditionnelle, puis en cliquant sur OK. Toutefois, cela ne résout que le problème de la session.

Cas de test:

Entrez les informations suivantes dans une nouvelle feuille:

  A B C
1 N N N
2 x x x
3 x x x

Créez cette formule de format conditionnel sur les cellules A1: C1 (votre choix de jolies couleurs pour le format):

=(SUM(($A1:$C1="N")*($A$2:$C$2=A$3))>0)

C’est une formule matricielle qui s’active pour A1, B1 et C1 chaque fois qu’un d’eux a un "N". et la cellule de la rangée 2 en dessous du "N" est égal à la cellule de la ligne 3 de la colonne en cours.

(Ceci a été simplifié à partir d'un tableur professionnel. Désolé pour la complexité du scénario de test, j'essaie de trouver un scénario de test plus facile à présenter ici.)

Et cela fonctionne ... vous pouvez modifier les N ou les x comme bon vous semble et le formatage fonctionne très bien.

Enregistrez ceci en tant que feuille de calcul XML. Fermez Excel et rouvrez le fichier. Le formatage est maintenant cassé. Désormais, vous ne pouvez activer le formatage conditionnel que si A1 est un "N". et A2 est identique à A3, B3 ou C3. Les valeurs de B1, B2, C1 et C2 n’ont aucune incidence sur le formatage.

Maintenant, sélectionnez A1: C1 et examinez la formule de mise en forme conditionnelle. Exactement comme avant. Hit OK. La mise en forme conditionnelle recommence à fonctionner et fonctionne pendant toute la session d’ouverture du fichier.

Solutions de contournement envisagées:

  1. Fournir le fichier au format Excel natif (BIFF). Ce n’est pas une option, ces feuilles de calcul sont générées à la volée par un serveur Web et ce n’est qu’un des dizaines de types de classeurs générés dynamiquement par notre système.

  2. Fournir le fichier au format XML natif Excel 2007 (xlsx). Pas une option, la base d'utilisateurs actuelle n'a pas Office 2007 ni le plug-in de compatibilité.

  3. Demandez aux utilisateurs de sélectionner la plage, entrez dans la boîte de dialogue Mise en forme conditionnelle, puis appuyez sur ok. Pas une option dans ce cas, les utilisateurs non avertis.

  4. Demander aux utilisateurs d'ouvrir la feuille de calcul XML, de l'enregistrer en tant que XLS natif, de fermer et de rouvrir le fichier XLS. Cela ne fonctionne pas! La mise en forme reste interrompue au format XLS natif si elle a été chargée à partir d'un fichier XML. Si (3) ci-dessus est exécuté avant de sauvegarder, le fichier XLS fonctionnera correctement.

J'ai fini par réécrire le formatage conditionnel pour ne pas utiliser de formules matricielles. Donc, je suppose que ceci est "répondu" dans une certaine mesure, mais il s'agit toujours d'un bogue non documenté, même s'il est obscur, dans la gestion des fichiers XML par Excel 2002/2003.

Était-ce utile?

La solution

J'ai essayé de recréer le problème que vous décrivez. Voici ce que j'ai trouvé.

  • Pourrait toujours recréer le problème d'utilisation d'Excel 2003 sous Windows XP lors de la sauvegarde au format XML feuille de calcul.

  • Le pas ne pourrait-il pas reproduire le problème en utilisant Excel 2003 sur Windows XP lorsque enregistrer en tant que xls standard feuille de calcul.

  • Le pas ne pourrait-il pas reproduire le problème utiliser Excel 2007 sous Windows Vista lors de la sauvegarde du fichier en natif format xlsx.

  • Le pas ne pourrait-il pas reproduire le problème utiliser Excel 2007 sous Windows Vista lors de l'enregistrement du fichier dans Excel Format 97-2003 xls.

    (Remarque: Toutes les instances d'Excel et de Windows sont à jour avec toutes les mises à jour de Windows. )

J'ai également ajouté une formule de mise en forme conditionnelle simple à chaque test. Dans tous les cas, cela a fonctionné comme prévu après avoir enregistré le fichier, fermé Excel et rouvert le fichier.

La solution semble donc être d'utiliser le format de fichier Excel 2003 standard lors de l'enregistrement du fichier.

BTW, c’est une formule de formatage très étrange. Il est difficile d'imaginer comment vous l'utiliseriez. Ce doit être un très spécifique & amp; analyse de rentabilisation inhabituelle. J'ai aussi le sentiment que quelque chose manque dans votre message. (Je ne vous accuse pas d'être malhonnête et je me demande simplement si vous avez raccourci la formule pour en améliorer la lisibilité.) Si ce n'est pas la formule exacte que vous utilisez, modifiez votre message d'origine. avec la formule complète et je me ferai un plaisir de revenir sur cette question.

Autres conseils

Vous pouvez trouver des vidéos didactiques à étudier soi-même sur le problème de la mise en forme conditionnelle dans les pages suivantes: mise en forme conditionnelle

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top