Erreur "Nom non résolu" avec l'utilisation de la fonction personnaliséeBonjour,
J'essaie de définir et d'utiliser une fonction personnalisée dans un script JMP. Est-ce que ça marchera ? À partir de maintenant, lorsqu'il arrive à la ligne pour appeler la fonction (JSload), j'obtiens l'erreur suivante dans le journal.
Nom non résolu : JSload dans l'accès ou l'évaluation de 'JSload' , JSload( temp ) /*###*/
Je passe à la fonction une chaîne de caractères "temp" (un nom de fichier avec le chemin d'accès approprié pour un fichier xlsx) et j'essaie d'utiliser la commande Open pour importer le contenu de ce fichier dans une table de données. Je pense cependant qu'il est pris lors de l'appel initial à la fonction. Voici la fonction de script et de fonction à partir de maintenant. La variable "temp" semble être correctement renseignée (vérifiée dans le fichier journal).
Le code de la commande Ouvrir provient d'un "script de sauvegarde" après une première importation de données effectuée manuellement.
Merci,
Jo
===============================================
Pour( index1 = 1,index1 <= 1, index1++,
temp = (chemin_fichier||listefichiers[index1]);
JSload(temp);
);
JSload = Fonction({temp},
Ouvrir(
temp,
Feuilles de travail( "Feuille1" ),
Utiliser pour toutes les feuilles( 1 ),
Concaténer des feuilles de calcul ( 0 ),
Créer une colonne de concaténation ( 0 ),
Paramètres de la feuille de calcul(
1,
A des en-têtes de colonne ( 1 ),
Nombre de lignes dans les en-têtes( 1 ),
Les en-têtes commencent sur la ligne (1),
Les données commencent sur la ligne (2),
Les données commencent sur la colonne (1),
Les données se terminent sur la ligne (0),
Les données se terminent sur la colonne (0),
Lignes étendues répliquées ( 1 ),
Supprimer les lignes masquées ( 1 ),
Supprimer les colonnes masquées ( 1 ),
Supprimer les colonnes vides ( 1 ),
Traiter comme une hiérarchie( 0 )
);
);
Re : Nom Erreur non résolue avec la fonction personnalisée<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Merci Éric. C'était le truc !
Jo
Re : Nom Erreur non résolue avec la fonction personnaliséeSalut Joe,
En fait, je pense que la réutilisation de la variable "temp" n'est pas le problème, car JMP dit que "JSload" est ce qu'il ne peut pas trouver.Je pense que le problème est que votre fonction est définie * après * que vous l'appelez.Dans JMP, votre fonction doit être définie avant de l'appeler.Déplacez la section "JSload = function({temp},...)" avant la boucle for et je pense que cela fonctionnera.
En outre, il semble qu'il vous manque un parenthèse fermante et un point-virgule à la fin de la définition de la fonction.
Cette version fonctionne pour moi:
chemin du fichier = "c:\users\public\temp\" ;
liste_fichiers = { "monTest.xlsx" } ;
JSload = Fonction ({temp},
Ouvrir (
temp,
Des feuilles de calcul( "Feuille1" ),
Utiliser pour toutes les feuilles( 1 ),
Concaténer des feuilles de calcul ( 0 ),
Créer une colonne de concaténation( 0 ),
Paramètres de la feuille de calcul(
1 ,
A des en-têtes de colonne( 1 ),
Nombre de lignes dans les en-têtes( 1 ),
Les en-têtes commencent sur la ligne ( 1 ),
Les données commencent sur la ligne ( 2 ),
Les données commencent sur la colonne ( 1 ),
Les données se terminent sur la ligne( 0 ),
Les données se terminent sur la colonne( 0 ),
Lignes étendues répliquées( 1 ),
Supprimer les lignes masquées( 1 ),
Supprimer les colonnes masquées( 1 ),
Supprimer les colonnes vides( 1 ),
Traiter comme une hiérarchie( 0 )
);
);
);
Pour ( indice1 = 1 ,indice1 <= 1 , indice1++,
temp = (chemin_fichier||listefichiers[index1]);
JSload(temp);
);
HTH,
Éric
Re : Nom Erreur non résolue avec la fonction personnaliséeSalut Joe,
Le problème est que vous utilisez le nom de variable "temp" pour votre chemin de fichier et pour l'argument dans la définition de votre fonction. Si vous remplacez les deux instances de "temp" dans votre instruction de fonction par un nom de variable différent et inutilisé, votre script devrait fonctionner.
-Jerry