IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[PHPExcel] Formule invisible !


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Par défaut [PHPExcel] Formule invisible !
    Bonjour à toutes et à tous,

    Alors voila par souci d'une mise en page complexe, j'ai décidé de charger un template et de lui inclure les données grâce à PHPExcel.
    Tout ce passe bien jusque la.
    Néanmoins j'ai plusieurs feuilles. la deuxième feuille contient des formules appelant des cellules de la première feuille.

    Voici l'insertion de la formule dans la cellule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $feuille->setCellValueByColumnAndRow(18, ($i+2),'=IF(E'.($i+2).'="",LEFT(B'.($i+2).',2),CONCATENATE(VLOOKUP(E'.($i+2).',\'Engagements\'!$A$31:$B$42,2,FALSE)," ",G'.($i+2).'))', PHPExcel_Cell_DataType::TYPE_FORMULA);
    Mon problème est que la formule ne se met pas dans la cellule ce qui génère une case vide et blanche. J'avais déjà testé ma formule auparavant en créant un fichier Excel depuis la librairie et elle fonctionnait. Et d'après mon analyse cela provient du fait que je vais chercher des données dans la première feuille, mais je ne comprend pas pourquoi ma formule n’apparaît pas dans mon fichier.

    Auriez-vous une idée?

    D'avance merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    J'ai fais le test et le formule est bien prise en compte avec liaison vers la feuille Engagements.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Par défaut
    Salut merci de ta réponse, désolé du temps de réponse mais mon week-end fut chargé ^^. Bah je comprend pas comment ça ce fait car je suis sur que la formule est bonne car je l'avais testé en créant directement mon excel. Mais la j'importe un template excel , la seul différence réside donc dans la récupération de la feuille ou je veux mettre mes données.

    Le pire c'est toutes les autres données sincères correctement, c'est vraiment quand je fais appel à une autre feuille du fichier que cela ne me rempli pas ma cellule... d'ailleurs, de base il y a un fond orange. Lorsque je récupère après traitement, à l'emplacement des formules le fond à disparu...


  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Justement je te confirme que la formule est bonne.
    tu es sur que tu regardes la bonne cellule.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Par défaut
    Absolument, je recommence le développement du traitement de zéro des fois que j'aurais loupé quelque chose...
    Je reviens vite pour vous tenir au courant si c'est résolu ou non

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu ferais mieux de faire un test avec seulement ton problème pour essayer d'isoler ce qui ne fonctionne pas.

    Est-ce que tu n'aurais pas quelque chose qui réecrit sur la cellule par exemple ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Par défaut
    J'ai pas réellement réécrit mon code, j'ai juste repris la partie concernée..
    En faite j'ai toujours le même problème, j'ai isolé celui-ci mais ça change rien, je vois aucune ligne qui réécrit par dessus ma cellule, je comprends vraiment pas la u_U j'ai aucun message d'erreur rien du tout...


    édit: j'ai rajouté toto devant le = pour voir si j'avais bien ma formule dans la cellule, et je vois bien celle-ci... donc la je comprend pas >< ça veut dire que rien ne réécrit par dessus.. maintenant la je vois pas bien car sauf erreur de ma part, "PHPExcel_Cell_DataType::TYPE_FORMULA" c'est bien pour dire que la cellule est de type formule ?

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu peux nous montrer ton code de test ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Par défaut
    Je réutilise le code qui sert a compléter la page "Engagements"
    Ensuite je vais chercher des données
    puis j'effectue le traitement.
    Une fois le traitement effectué je commence à remplir la feuille 'liste dossier" ou j'ai le problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
                //S fonctionne pas
                $feuille->setCellValueByColumnAndRow(18, ($i+2), "=IF(E".($i+2)."=\"\",LEFT(B".($i+2).",2),CONCATENATE(VLOOKUP(E".($i+2).",Engagements!A$31:B$42,2,FALSE),\" \",G".($i+2)."))",PHPExcel_Cell_DataType::TYPE_FORMULA);
     
                //$feuille->setCellValueByColumnAndRow(18, ($i+2),'=IF(E'.($i+2).'="" , LEFT(B'.($i+2).', 2 ), CONCATENATE(VLOOKUP(E'.($i+2).' ,\'Engagements\'!$A$31:$B$42 , 2 , FALSE ) , " " , F'.($i+2).'))');
                //T fonctionne pas
                $feuille->setCellValueByColumnAndRow(19,($i+2),'=IF(E'.($i+2).'="",LEFT(B'.($i+2).',2),VLOOKUP(E'.($i+2).',\'Engagements\'!A$29:B$40,2,FALSE))');
                //U fonctionne pas
                $feuille->setCellValueByColumnAndRow(20,($i+2),'=IF(LEFT(B'.($i+2).',2)="SB","SB",VLOOKUP(C'.($i+2).',\'Engagements\'!$A$49:$B$87,2,FALSE))');
                //V fonctionne
                $feuille->setCellValueByColumnAndRow(21, ($i+2), round($demande['total_tempsTMA']*8/$djt,2));
                //W fonctionne pas
                $feuille->setCellValueByColumnAndRow(22,($i+2),'=VLOOKUP(Y'.($i+2).',\'Engagements\'!$A$8:$E$19,5,FALSE)');
                //X fonctionne
                $feuille->setCellValueByColumnAndRow(23,($i+2),'=IF(H'.($i+2).'="Fermé",IF(AB'.($i+2).'>AC'.($i+2).',"KO", "OK"),"N/A")');
    En sommes on peut voir que c'est lorsque dans une formule il y a un appel vers une autre feuille que cela ne fonctionne pas...

    En faite la question que je me pose actuellement est: j'utilise un template créer en mode compatibilité excel 1997 à 2003. dans phpExcel je l'ouvre avec "Excel5" en tant que type. Est-ce que ça peut jouer ? car quand j'avais voulu l'ouvrir avec Excel2007 cela me mettait un message d'erreur.. la fonction getFromName() qui planté et ça parlé d'un objet ZIP...

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Encore une fois je te propose d'écrire un code de test avec seulement l'écriture de la formule dans une cellule de ton fichier modèle.
    Vu que cela fonctionne chez moi (moi j'avais tout en Excel 2007), il faut voir ce qui se passe de différent chez toi.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 9
    Par défaut
    Finalement j'ai décidé de faire autrement en générant l'affichage avec ce qui résous le problème , Je te remercie quand même pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHPExcel] formule qui ne s'execute pas a l'ouverture du fichier
    Par yiibee dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 03/03/2017, 05h45
  2. Réponses: 2
    Dernier message: 03/06/2012, 18h21
  3. [PHPExcel] Formule dans un champs, erreur opérateur
    Par spark_legion dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 09/05/2011, 10h16
  4. [PHPExcel] Formule qui référence une autre feuille
    Par DanTesS dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 07/04/2011, 16h21
  5. [PHPExcel] Ecrire 2 formules + texte
    Par Junior_jef dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 06/10/2010, 13h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo