Souci dans formule Excel

Résolu/Fermé
jh_kd Messages postés 41 Date d'inscription lundi 11 janvier 2021 Statut Membre Dernière intervention 2 mars 2024 - 15 janv. 2022 à 11:54
jh_kd Messages postés 41 Date d'inscription lundi 11 janvier 2021 Statut Membre Dernière intervention 2 mars 2024 - 17 janv. 2022 à 09:16
Bonjour,

J'écris ce message dans le sous-forum Excel mais il est possible qu'il concerne plutôt (ou aussi) le sous-forum php.
En tout état de cause j'ai d'abord une erreur de formule dans Excel.

Voilà, j'ai une formule qui marche dans Excel (et aussi sur Internet pour le code PHP), sachant que partout les LC contiennent du texte variable selon les lignes

="<?php $text = '"&LC(-8)&" - "&LC(-7)&" ("&LC(-6)&") | "&LC(-5)&" | "&LC(-4)&" | "&LC(-3)&" - "&LC(-2)&"…<a href="""&LC(-1)&""" target=""_blank"">+++</a>"&"'; if ((strtotime(""now"") <= strtotime (substr($text,0,10))) && (strtotime(""+1 month"") >= strtotime (substr($text,0,10)))){echo $text . '<br>';} else {echo '';}?>"

3 colonnes plus loin dans la même ligne, j'ai la formule suivante similaire qui est refusée par Excel.

="<?php $text2 = '"<tr><td>"&LC(-11)&"<br> ("&LC(-10)&" - "&LC(-9)&")</td><td>"&LC(-8)&"</td><td>"&LC(-7)&"</td><td>"&LC(-6)&"</td><td>"&LC(-5)&"</td><td><a href="""&LC(-4)&""" target=""_blank"">+++</a></td></tr>"&"'; if ((strtotime(""2022-01-01"") <= strtotime (substr($text2,9,10))) || (strtotime(""+1 month"") >= strtotime (substr($text2,9,10)))) {echo $text2 . '<br>';} else {echo '';}?>"

J'ai essayé plein de variations sur la position et le nombre de caractères ' " ' mais je n'y arrive pas y compris avec strtotime(2022-01-01) au lieu de strtotime(""2022-01-01""), la seule différence avec la première formule qui marche est que le if est ici avec OU alors que dans la première c'est un if ave ET

Merci de votre coup de pouce!

Cordialement

JH

Configuration: Windows / Opera 82.0.4227.43
A voir également:

3 réponses

Raymond PENTIER Messages postés 58866 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 1 mars 2025 17 290
15 janv. 2022 à 17:28
Bonjour.

Pourquoi trouves-tu surprenant qu'une formule en programmation php soit illisible par le logiciel Excel ?
Moi, ce qui me stupéfie, c'est que ta première formule soit reconnue par Excel !
J'ai essayé : ça ne marche évidemment pas ...
0
jh_kd Messages postés 41 Date d'inscription lundi 11 janvier 2021 Statut Membre Dernière intervention 2 mars 2024
15 janv. 2022 à 19:40
Bonjour,

Je ne sais pas comment répondre.

La 1ère formule ne donne pas de message d'erreur car pour Excel elle est bonne (c'est indépendant de PHP, la vérification de PHP se fait ensuite par ex après avoir mis le fichier sur Internet).
Excel considère la 1ère formule comme une suite de concaténation de cellules et de texte (le code PHP étant compris comme du texte).
Pas de souci.
Comme je l'ai dit il y a sans doute un souci de ' " ', mais je ne trouve pas.
Quand je met la 2ème formule dans la cellule Excel ouvre une pop-up avec:
<<<<<
Nous avons rencontré un problème avec cette formule.
Etes-vous en train, etc.
>>>>
J'ai donc sollicité les yeux d'un expert qui est neuf.

Merci

Cdlt, JH
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 255
Modifié le 16 janv. 2022 à 00:38
Bonjour,

pour moi ta 1ère formule ne se valide pas non sur excel, je ne regarde que la 2nde.

="<?php $text2 = '"<tr><td>"    

Dès le début ca cloche.
Avec le 2nd " ça ferme la chaine et tu poursuis avec
<tr><td>
donc non déclaré en chaine. Il faut supprimer ce 2nd " :
="<?php $text2 = '<tr><td>"

Mais maintenant on se retrouve avec une simple quote qui semble être toute seule. Etrange...
Vue l'heure, je n'ai pas été plus loin.
Si ça n'est pas suffisant il faudrait un exemple entièrement en chaine (correcte pour PHP) de ce que tu veux obtenir.
eric

PS : met ta phrase PHP à la syntaxe correcte sans rien ajouter toi-même. Remplace les variables par &XX& ça sera plus facile pour nous
0
jh_kd Messages postés 41 Date d'inscription lundi 11 janvier 2021 Statut Membre Dernière intervention 2 mars 2024
17 janv. 2022 à 09:16
Bonjour,

Ah, bravos et merci Eriiic!

J'avais le nez dans le guidon, donc je bloquais.
Pourtant j'ai laissé passer plusieurs nuits avant de poster.
Comme suggéré j'ai isolé la formule hors code PHP et Excel m'a dit qu'il y avait une erreur et m'a proposé de la corriger.

Voici la bonne version (finale) dont le code PHP marche aussi sur Internet.

="<?php $text2 = '<tr><td>"&LC(-11)&"<br> ("&LC(-10)&" - "&LC(-9)&")</td><td>"&LC(-8)&"</td><td>"&LC(-7)&"</td><td>"&LC(-6)&"</td><td>"&LC(-5)&"</td><td><a href="""&LC(-4)&""" target=""_blank"">+++</a></td></tr>"&"'; if ((strtotime(""2022-01-01"") <= strtotime (substr($text2,9,10))) || (strtotime(""+1 month"") >= strtotime (substr($text2,8,10)))) {echo $text2;} else {echo '';}?>"

Merci encore pour cet œil neuf.

Cdlt, JH
0