Forum Clubic

Bonjour, javascrpit dans excel ?

voila bon …alors hum…j’affiche des liens sur une page web via excel…j’aimerai que quand on click sur ce lien ce soit une popup qui s’execute … sans passer par excel ca fonctionne impec sauf que je dois absolument passer par celui ci…comment je dois m’y prendre ?

C’est pas très clair
Tu peux préciser les rôles respectifs de ton excel et de ta page web, et la façon dont ils interfèrent ?
Et aussi quel navigateur tu utilises pour afficher ta page ?

j’utilise IE…alors en gros je genere un organigramme a partir d’un code qui prend sa source dans excel (un fichier .csv) …j’aimerai que les lien que j’affiche dans l’organigramme quand on click dessus s’ouvre comme pop up

Ton code, tu le génère avec quel outil ?

c’est du php donc easy php c’est ca que tu demandes ?

Php …OK je comprends mieux, parce que lire un fichier avec du javascript …

1- ton fichier .csv, ce n’est pas de l’excel (c’est produit par excel, c’est tout), c’est un simple fichier texte qui suit certaines règles au niveau du formatage de ses lignes.
Et un fichier texte, ca ne peut pas contenir de code (contrairement à Excel qui peut contenir du VBA)

2- Si tu optes pour un passage au xls, tu pourras inclure du code. En gros, le VBA te génèrera un fichier source de type .html, dans lequel tu pourras bien sûr avoir des liens.

3- L’utilisation de cette méthode va quand même t’obliger à conserver une fonction javascript au niveau de ton .html pour l’ouverture du popup.
En effet, comme le javascript est fait pour être interprété au moment même où on s’en sert, il faut bien qu’il soit présent
Là tu as deux méthodes :

  • ou tu fais un include d’un fichier .js qui contient ton javascript
<script type="text/javascript" src=" etc. - ou tu fais écrire les lignes du script par le VBA (5 ou 6 lignes), mais mieux vaut utiliser la méthode avec le fichier js

un include dans le fichier .csv ??? je croyais qu’on ne pouvait pas mettre de code a l’interieur :neutre:

include, ce n’est pas le terme exact, je te l’accorde, mais sur le moment je n’ai pas trouvé mieux.
Mais je t’ai mis la syntaxe à la ligne en dessous.

ok merci j’essaye ca et je te redis

bon je ne vois pas trop comment faire donc je vais decrire un peu plus mon pb :

j’ai une page ou se trouvent des liens…ces liens sont en provenance d’un fichier .csv …sous la forme classique…
mon but est qu’en cliquant sur ces liens une popup s’ouvre sauf que je ne vois pas comment faire meme en tapant <script type=“text/javascript” src=" dans mon fichier .csv :frowning:

Heu… Alors soit j’ai pas tout compris, soit je vois pas où est le problème car j’ai un tas de solutions… Enfin, un tas… Au moins 2 !

La première (selon moi la plus crade, mais ce n’est que mon opinion) : dans ton fichier CSV, plutôt que de stocker ta valeur “nue”, pourquoi tu ne la stockes pas directement entourée des balises de lien ?
Je m’explique : tu stockes le nom de famille de quelqu’un dans la colonne nom, ben tu rajoutes une colonne lien ou tu mets le texte :


<a href="javascript:window.open('cible.php?nom=nom_de_famille', 'nom_page_cible', 'parametres_d_affichage');">nom_de_famille</a>

C’est crade car ça implique de mettre le nom de la page cible dans ton CSV, et le jour où elle change, ça nécéssite un update de toutes les lignes et c’est bof…

La plus propre (et tout aussi simple) : t’es en PHP. Tu récupères donc tes champs de ton fichier CSV pour les afficher. Qu’est ce qui t’empêche, plutôt que d’afficher juste le nom_de_famille en faisant :


echo $nom_de_famille;

de faire plutôt :


echo "<a href=\"javascript:window.open('cible.php?nom=" . $nom_de_famille . "', 'nom_de_page', 'parametres_d_affichage');\">" . $nom_de_famille . "</a>";

En supposant que dans $nom_de_famille, tu aies stocké la valeur récupérée du CSV et que tu veux afficher, bien entendu.
Et c’est plus propre car le jour où tes noms de pages changent, ben t’as 1 ligne de code à éditer et hop !
Edité le 20/06/2008 à 10:47

Pas étonnant que tu ne voies pas, regarde plus haut :

Pour résumer la situation :

  • ton utilisateur final va utiliser IE pour visualiser les données que tu lui metsd à disposition. C’est donc dans IE qu’il faut que tes liens soient actifs
  • mais IE ne sait lire que des fichiers au format HTML (je simplifie)
  • mais tes données de bases sont dans un fichier TEXTE au format CSV

Donc il te faut une INTERFACE pour adapter ces données à un format lisible par IE. Tu as le chois entre :

  • l’interface dynamyque, générée au moment du besoin, c’est ce que tu fais avec ton PHP
  • la mise à disposition d’un fichier au format HTML en amont de l’utilisation, par lecture de ton fichier CSV et réécriture au format HTML.
    et pour cette partie, tu peux utiliser ce qui te convient le mieux : langage c, C++, vb, vba, vbs, outils unixlike (awk), même un simple .bat (!!!).
    Tu remarqueras qu’à aucun moment on n’a parlé d’Excel
    Mais comme un CLASSEUR EXCEL (extension : xls, impérativement) peut contenir du VBA, et qu’en plus il peut charger tes données CSV sous une forme plus exploitable, c’est effectivement une piste à explorer, comme tu semblais vouloir le faire dans ton titre.
    Mais j’insiste encore une fois, le fichier résultat sera UN AUTRE FICHIER créé par le programme, ce ne sera ni du csv, ni du xls

la 2eme methode ne fonctionnera pas dans mon cas parce que si tu veux je me serre des differentes cases de mon fichier csv pour generer un organigramme qui se forme tout seul donc je ne peux pas placer les liens avec un echo dans la page…
sinon la 1ere methode c’est ce que j’essaye de faire depuis le debut mais sans reussite…soit je ne tape pas comme il faut soit du javascript le csv aime pas trop…:neutre:

Je ne suis pas sûr qu’on parle bien de la même chose
Tu peux donner une copie d’écran des premières lignes de ton fichier csv ?

heu oui je vais vous faire sa …par contre j’avais pas encore vu ta reponse et je repondais a linkovitch :smiley:


case1: Dupont case2 : DSI case3: Pierre jean case4: Autocars

Ouvre ton fichier CSV avec notepad, tu verras qu’il n’a pas de case …

EDIT :
la copie d’écran, c’est pour avoir le fichier CSV brut, pas sa représentation dans excel
Edité le 20/06/2008 à 11:17

Et depuis quand on ne peut pas stocker du texte dans un simple fichier texte ? :etonne2:

Après tout, le code non compilé, c’est jamais que du texte : une simple suite de caractères ! Or, ça tombe bien, HTML comme JavaScript ne sont pas compilés, mais interprétés. Donc, grâce à PHP, tu prends la valeurs stockée comme une simple chaîne de caractère dans ton fichier CSV et tu l’affiches telle quelle (comme du texte, quoi) dans ta page PHP (ou HTML, on s’en fout).

Si ensuite ce “texte” est interprétable pas ton navigateur comme étant du JavaScript, que cette chaîne de caractères vienne à l’origine d’un CSV ou aie été saisie à la main, il ne fera jamais la différence. :paf:

Donc soit j’ai râté un épisode, soit effectivement on ne parle pas de la même chose, soit je ne vois pas où est le souci.
Edité le 20/06/2008 à 11:19

non linkovitch je pense que tu as compris mon pb !!! :super:
ce que je voudrais mettre dans mon csv c’est des truc du genres : nom_de_famille

sauf que le probleme c’est que aucun lien ne s’affiche donc je ne peux meme pas voir si cela fonctionne !!

Moi, je crois savoir d’où vient ton souci : dans Excel, le CSV, par défaut, utilise la virgule comme séparateur de colonnes !!

Le standard exigerait un point-virgule, mais ce n’est pas le cas d’Excel…

Sinon, pour coller à la norme, à ta place, je rajouterai des " " autour de ta fonction Javascript.

Si si, j’avais bien fini par comprendre. Je répondais juste que dans un CSV, on fout ce qu’on veut ! :stuck_out_tongue:

Par contre, tu ne nous avais pas précisé où t’en étais dans tes problèmes, que t’avais déjà mis tes <a href …> tout bien formattés dans ton CSV. Enfin, si, maintenant que tu le dis et que je relis tous tes posts, tu le disais plus ou moins dans ton 1er post… mais c’était pas très clair !:paf:
Edité le 20/06/2008 à 11:27

non mon separateur est le point virgule !!!
et j’ai essayé les " " sa en met autour du nom du lien lol…mai cela affiche du texte et pas un lien…
donc je ne sais pas trop si le JS est pris en compte !!!:frowning: