Souci dans formule Excel
Résolu
jh_kd
Messages postés
41
Date d'inscription
Statut
Membre
Dernière intervention
-
jh_kd Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
jh_kd Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Souci dans formule Excel
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule somme excel colonne - Guide
- Excel mise en forme conditionnelle formule - Guide
- Liste déroulante excel - Guide
3 réponses
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 ...
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 ...
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
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
Bonjour,
pour moi ta 1ère formule ne se valide pas non sur excel, je ne regarde que la 2nde.
Dès le début ca cloche.
Avec le 2nd " ça ferme la chaine et tu poursuis avec
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
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
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
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