Résultat de formule différent à l'ouverture d'Excel

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Unobagu

XLDnaute Nouveau
Bonjour à tous,

J'ai une formule qui fonctionne bien; j'enregistre mon travail, puis je rouvre le document un peu plus tard, pour me rendre compte que la formule ne donne plus le résultat escompté. Je vais vérifier la formule : rien n'a changé. Je clique donc sur "Appliquer", et Hop! tout est apparemment réglé. Sauf qu'il me faut répéter ce processus à chaque fois que j'ouvre le document, ce qui ne sera plus possible une fois qu'il aura été verrouillé.

Aucune autre formule ne me cause ce problème (et il y en a beaucoup), et comme je le mentionnais, la formule fonctionne. Se pourrait-il tout de même qu'il y ait une erreur ? La voici :

=SI($D2=1;"VRAI";SI($D2>12;SI(ET((MOD((D2);LIGNE(INDIRECT("2:"&D2-1)))<>0));"VRAI");""))

Il s'agit de mettre en surbrillance tous les nombres suivant immédiatement un nombre premier, à partir de 12 et incluant "2" (pour ceux qui se demandent, c'est pour créer une machine infernale, style Dr. Folamour 😛). Quand j'ouvre le document, ce sont tous les nombres pairs à partir de 14 qui sont en surbrillance.

Merci de votre aide !

(j'utilise la version 2007, sous Windows Vista)
 
Dernière édition:
Re : Résultat de formule différent à l'ouverture d'Excel

Bonjour Unobagu,

Je ne suis pas un "spécialiste" mais le début de la formule me parait étrange:

Code:
=SI(OU($D2=1);"VRAI";SI(ET($D2>12);
Dans le premier OU vous ne tester que $D2=1 donc il est inutile.
Dans le ET vous ne testez que $D2>12
Donc essayez comme ça:
Code:
=SI($D2=1;"VRAI";SI($D2>12;SI(ET((MOD((D2);LIGNE(INDIRECT("2:"&D2-1)))<>0));"VRAI");""))
Cordialement
 
Re : Résultat de formule différent à l'ouverture d'Excel

Edit:
Après relecture de votre post, je pense que ceci vous ira mieux:
Code:
=SI(OU($D2=1;$D2>12);SI(ET((MOD((D2);LIGNE(INDIRECT("2:"&D2-1)))<>0));"VRAI");"")
J'ai également déplacer votre dernière condition ;"" pour que le résultat n'affiche pas: FAUX
Cordialement
 
Re : Résultat de formule différent à l'ouverture d'Excel

Merci Efgé pour cette réponse rapide.

Effectivement, il y avait du superflu dans cette formule (jamais dans un million d'années je n'aurais pu créer cette formule pour les nombres premiers; je l'ai donc copiée sur le net et j'y ai imbriqué mes autres conditions en espérant ne rien bousiller).

La formule épurée fonctionne exactement de la même manière que l'autre : elle donne le résultat souhaité quand je clique "appliquer", mais le même problème survient lors de l'ouverture du document... 😕

EDIT: La même chose se produit pour la formule de votre second message; je commence à croire que ce n'est pas un problème de formule après tout.
 
Dernière édition:
Re : Résultat de formule différent à l'ouverture d'Excel

Salut Unobagu et le forum
Code:
J'ai une formule qui fonctionne bien
Pas sûr, non ?
Code:
=SI(OU($D2=1);"VRAI";SI(ET($D2>12);SI(ET((MOD((D2);LIGNE(INDIRECT("2:"&D2-1)))<>0));"VRAI";"")))
Une formule si complexe, on doit pouvoir en isoler chaque "segment"

on commence par si(condition; vrai;faux), ce qui nous donne:
SI(OU($D2=1);"VRAI";....)
😕 C'est quoi ce charabia ? OU : fonction logique qui fait un OU (logique) entre deux valeurs logiques. On rejoue à la blague "Quelle est la différence entre un canard ?" ? Excel est pas fort en devinette et on peut simplifier, puisque qu'on a une seule valeur :
SI(($D2=1);"VRAI";....)
si la valeur en D=1, on aura "VRAI", dans les autres cas, le résultat de la formule en paramètre si faux.

partie si faux :
SI(ET($D2>12);SI(ET((MOD((D2);LIGNE(INDIRECT("2:"&D2-1)))<>0));"VRAI";""))
donc, on devrait se retrouver avec une fonction SI.... on devrait! Faut arrêter de fumer la moquette : la même en coloriant certaines parenthèses :
SI(ET($D2>12);SI(ET((MOD((D2);LIGNE(INDIRECT("2:"&D2-1)))<>0));"VRAI";""))
Donc, au vu de la construction de la formule, il semble qu'une parenthèse ait migré au mauvais endroit. Je suppose qu'on devrait avoir :
SI(ET($D2>12);SI(ET((MOD((D2);LIGNE(INDIRECT("2:"&D2-1)))<>0)));"VRAI";"")
Ce qui semblerait plus logique (pour la partie SI, hein, parce que le reste...). On aurait Si(condition;"VRAI";""), ce qui est une formulation simple.
Attaquons la condition :
ET($D2>12);SI(ET((MOD((D2);LIGNE(INDIRECT("2:"&D2-1)))<>0)))
Une condition ???? T'as un forfait parenthèses ? Comme tu les paies pas, t'en mets le plus possible ? Une condition devrait ressortir une valeur VRAI/FAUX, mais là.... 2 termes, sans fonction pour les lier. Si Excel s'y retrouve c'est qu'il est plus fort que moi. Personnellement, je trouve que c'est du grand n'importe quoi cette formule.
Excel, à l'ouverture, n'a sans doute pas encore mis à jour toutes ses références, et comme il commence par la première cellule, on peut supposer qu'il se sert d'une qui changera une seule fois et une fois ce paramètre figé, il n'en changera plus.

Chaque fois qu'Excel semble avoir un comportement illogique, on trouve une origine illogique.
A+
EDIT
Après lecture des postes précédents, je comprends mieux.
Une seule chose me chagrine encore :
LIGNE(INDIRECT("2:"&D2-1))
Quelest le but de ce bout de formule ? Si ça fonctionne, ça retourne... 2, quelle que soit la valeur en D2, du moment qu'elle est suppérieure à 1 (j'ai testé en nombre entier). Autant tout racourcir et mettre 2 directement.
A+
 
Dernière édition:
Re : Résultat de formule différent à l'ouverture d'Excel

Salut Gorfael,

Oui, bon, comme je disais, j'ai imbriqué mes conditions un peu vite dans une formule qui n'est pas la mienne. Efgé m'en a d'ailleurs corrigé un bout. Sauf que crois-le ou pas, la formule (eh oui, la première) marche très bien dès que je clique sur "appliquer".

Pour plus de précision, voici la formule dont je me suis servi au départ :

=SI(OU(A1=1;A1=2;A1=3);"Premier";SI(ET((MOD(A1;LIGNE(INDIRECT("2:"&A1-1)))<>0));"Premier";""))

(on voit d'où vient le "ou" que j'avais négligemment laissé, et qu'Excel a très bien su ignorer)

Elle est tirée de ce site :

Monsieur Excel - pour tout savoir faire sur Excel !
 
Re : Résultat de formule différent à l'ouverture d'Excel

Re Unobagu, Bonjour Gorfael,
Unobagu, le problème se reproduit il avec mon exemple?
Pour le 15, dans mon fichier, la formule refaite fonctionne.
Pour le problème de "tirer" les colonnes, il faudrait plus d'explications.
Cordialement
 
Re : Résultat de formule différent à l'ouverture d'Excel

Efgé : oui, le problème se reproduit. Quand je dis "tirer" les colonnes, je veux juste dire ajouter des nombres (de 20 à 21 à 22 etc etc).

Mes excuses à tout le monde, ce n'est pas mon intention de transformer ce thread en salle de chat !

EDIT :
GORFAEL : Quel est le but de "LIGNE(INDIRECT("2:"&D2-1))" ! Haha, ce n'est pas à moi qu'il faut le demander ! Disons que je joue à l'apprenti sorcier avec cette formule ! Sauf que tout était presque parfait avant ce problème étrange, ce serait dommage d'abandonner.
 
Dernière édition:
Re : Résultat de formule différent à l'ouverture d'Excel

Re
Après les différents EDITS et en prenant en compte la judicieuse remarque de Gorfael La formule se raccourci nettement. Nous en sommes là:
Code:
=SI($D2=1;"VRAI";SI($D2>12;SI(MOD(D2;2)<>0;"VRAI";"");""))
Cordialement
 
Re : Résultat de formule différent à l'ouverture d'Excel

😀 Cette nouvelle formule me donne "exactement" le résultat dont je veux me débarrasser à l'ouverture ! Non, il semblerait bien qu'aussi énigmatique soit-elle, la formule dont je me servais au départ soit la bonne (dans mon cas à tout le moins).

J'essaie depuis tout à l'heure de compresser ou de charcuter mon document pour pouvoir le mettre en pièce jointe, mais il est toujours trop lourd. Et vraiment, Efgé, mille mercis pour tes efforts; mais ne vas pas te rendre cinglé avec ça, ce n'est pas si important !

EDIT:
Le OU était bien sûr de trop. On en est donc là :

=SI($D2=1;"VRAI";SI($D2>12;SI(ET((MOD((D2);LIGNE(INDIRECT("2:"&D2-1)))<>0));"VRAI");""))

Toute modification à cette formule me renvoie un message d'erreur, et croyez-le ou non, cette formule fonctionne, SAUF à l'ouverture du document.
 
Dernière édition:
Re : Résultat de formule différent à l'ouverture d'Excel

Bonjour à tous
Voyez une contribution dans le classeur joint.
Au passage, cette discussion remet en question toute l'arithmétique et même presque toutes les mathématiques : en effet, jusqu'à ce matin, 1 n'était pas un nombre premier.
Voyez, par exemple,
Un nombre premier est un entier naturel qui admet exactement deux diviseurs distincts entiers et positifs (qui sont alors 1 et lui-même). Cette définition exclut 1, qui n'a qu'un seul diviseur entier positif.
(...)
ROGER2327
#2738
 

Pièces jointes

Re : Résultat de formule différent à l'ouverture d'Excel

Bonjour Roger, et merci pour cette contribution !

Oui, à propos de 1, c'est qu'ici le problème est plutôt musical que mathématique ! Comme il n'y a aucune signature rythmique à moins de deux temps (dont je veuille me servir en tout cas), le second temps sera toujours en syncope, qu'importe celle qu'on choisit (c'est même un enfantillage de ma part de l'intégrer à la formule 🙄). C'est aussi le cas pour tous les temps suivant un nombre premier à partir de 14.

Bon, en fin de compte c'était inutile d'envoyer le document au complet. Voici un petit document dans lequel le problème a l'amabilité de se présenter. La formule est en Mise en forme conditionnelle dans la colonne D. Je dois passer par Gérer les règles et double-cliquer sur la règle, puis sur appliquer pour que la formule s'exécute comme il faut.

Si le problème se présente, vous verrez tous les chiffres pairs à partir de 14 en surbrillance.

EDIT:
Ajouté un fichier XLS. Aucune différence notable (le prob subsiste)
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

J
Réponses
2
Affichages
925
J
O
Réponses
1
Affichages
922
D
Retour