Automatisation de JMP via Visual Basic : copie de données Excel dans des tableaux de données JMP.Bonjour à tous,
Le script ci-dessous est censé effectuer les opérations suivantes : il exécute un code VBA qui copie les données du classeur Excel dans les tables JMP (à l'aide de la bibliothèque JMP jmp.tlb). La première partie est destinée à charger la référence JMP dans excel afin que les fonctions associées à l'automatisation JMP puissent s'exécuter. La deuxième partie exporte toutes les feuilles du classeur vers les tableaux de données JMP. Lorsque j'exécute ce code, j'obtiens l'erreur suivante : Type défini par l'utilisateur non défini au
Estomper MyJMP en tant que JMP.Application doubler.Si j'exécute la première partie seule, le code fonctionne : il coche la référence JMP (sous outils>>références dans l'éditeur VBA). Si j'exécute la deuxième partie (après avoir coché manuellement JMP sous outils>> références), cela fonctionne également. Donc je ne comprends pas ce qui ne va pas. Toute aide appréciée

merci beaucoup!
Édouard
Sous-exportation()
'Ajouter une référence JMP
'PARTIE 1
En cas d'erreur, reprendre le suivant
Application.VBE.ActiveVBProject.References.AddFromFile _
"C:\Program Files\SAS\JMP\12\jmp.tlb"
En cas d'erreur GoTo 0
'Cette partie exporte tous les onglets du classeur Excel vers JMP sous forme de tableaux
'PARTIE 2
Estomper MyJMP en tant que JMP.Application
Estomper JMPdoc en tant que JMP.Document
Set MyJMP = CreateObject("JMP.Application")
MonJMP.Visible = Vrai
Définir JMPdoc = MyJMP.OpenDocument(ThisWorkbook.FullName)
Estomper JMPdt comme JMP.DataTable
Définir JMPdt = JMPdoc.GetDataTable
Sous-titre de fin
Objet : Automatisation de JMP via Visual Basic : copie de données Excel dans des tableaux de données JMP.je vais ajouter à @Mark_Bailey en vous dirigeant vers la documentation sur l'Application Builder
Aide==>Livres==>Guide de script
Recherchez le chapitre "Création d'applications"
Outre l'utilisation de l'Application Builder, le langage de script JMP dispose d'un ensemble complet d'objets d'affichage qui permettent de créer l'interface utilisateur de votre choix.Des exemples se trouvent dans les exemples de scripts et d'applications fournis avec JMP, ainsi que dans les nombreux compléments JMP disponibles dans JMP File Exchange sur le site Web JMP.
Objet : Automatisation de JMP via Visual Basic : copie de données Excel dans des tableaux de données JMP.Sélectionner Déposer > Nouveau > Application .
Objet : Automatisation de JMP via Visual Basic : copie de données Excel dans des tableaux de données JMP.Je me demande pourquoi JMP ne développe pas de plate-forme pour créer des formulaires Windows personnalisables ou une interface utilisateur dans JMP, la raison pour laquelle nous utilisons VB est parce que nous voulons automatiser entièrement les extractions de données, le traitement des données et l'analyse des données ensemble.
Objet : Automatisation de JMP via Visual Basic : copie de données Excel dans des tableaux de données JMP.Avez-vous lu la documentation JMP sur l'automatisation de JMP avec Visual Basic ? Sinon, c'est le meilleur endroit pour commencer. (Voir le PDF de référence d'automatisation dans le dossier Documentation.) Ensuite, consultez le dossier Samples/Automation pour un exemple de code.
Objet : Automatisation de JMP via Visual Basic : copie de données Excel dans des tableaux de données JMP.Salut tout le monde,
Je cherche avec succès du code pour automatiser JMP via Visual Basic.
Si quelqu'un a terminé, merci de le partager avec moi. Merci pour votre aide sur ce sujet.
Merci.
Objet : Automatisation de JMP via Visual Basic : copie de données Excel dans des tableaux de données JMP.Pourquoi ne pas déplacer l'export Sub vers le fichier VBScript ? Il semble qu'il y ait des problèmes avec l'exécution simultanée de ces deux tâches.
Vous pouvez automatiser JMP à l'aide de l'interface COM (sans la bibliothèque de types jmp.tlb) depuis votre VBScript. Regarde ça papier blanc pour obtenir des informations sur l'automatisation de JMP de cette manière, y compris un exemple utilisant VBScript.
Cependant, en regardant le déroulement de votre programme, il semble que vous essayez simplement d'importer la feuille de calcul Excel dans une table JMP. Si c'est le cas, vous pouvez simplement utiliser la fonction Open() pour effectuer l'importation.
Objet : Automatisation de JMP via Visual Basic : copie de données Excel dans des tableaux de données JMP.Salut tout le monde,
J'ai réussi à préciser où se situe le problème . J'ai tout simplifié. Maintenant, j'ai un classeur Excel compatible avec les macros avec la macro suivante :
Sous-exportation()
Estomper MyJMP en tant que JMP.Application
Estomper JMPdoc en tant que JMP.Document
Set MyJMP = CreateObject("JMP.Application")
MonJMP.Visible = Vrai
Définir JMPdoc = MyJMP.OpenDocument(ThisWorkbook.FullName)
Sous-titre de fin
Si je lance cette macro d'excel , Cela fait ce que c'est censé faire. Il exporte vers JMP les feuilles du classeur sous forme de tables JMP.
Ensuite, j'ai aussi ce qui suit Script VBS avec le code suivant :
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("\\vfc1home1\home1\eosorio\Profile\Documents\vbs scripts\test.xlsm")
objExcel.Application.Visible = Vrai
objExcel.Application.Run "ref" ---> cela charge jmp.tlb
Définir objWorkbook2 = objExcel.ActiveWorkbook
objExcel.Application.Run "export" ---> cela exécute la macro qui pose des problèmes si appel depuis mon VBS
objworkbook2.Enregistrer
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Echo "Terminé".
WScript.Quitter
Enfin j'ai la ligne suivante Script JMP :
rp = RunProgram( Executable( "WSCRIPT.EXE" ), Options( "\!"\\vfc1home1\home1\eosorio\Profile\Documents\vbs scripts\exportJMP.vbs\!"" ),Lire fonction("texte"));
Maintenant, c'est comme ça que tout fonctionne : je lance mon Script JMP , il appelle mon Script VBS , qui exécute finalement la macro Excel exporter . Mais lors de l'exécution de la exporter une macro le tout se bloque et excel produit le message suivant : Microsoft Excel attend qu'une autre application termine une action OLE... pendant que la roue tourne sur JMP 
Toute aide super appréciée! Merci!
Objet : Automatisation de JMP via Visual Basic : copie de données Excel dans des tableaux de données JMP.Salut tout le monde,
Je me suis trouvé une solution à mon problème mais ensuite j'en ai eu une autre. Ce que j'essaie de faire est le suivant : un script JMP appelle un script VBS. Le script VBS exécute un complément Excel. Le complément Excel obtient un fichier de données, le traite et génère un classeur. Le VBS continue alors et introduit dans le classeur deux macros. Une macro sert à activer la référence JMP (jmp.tlb) et la seconde sert à exporter toutes les feuilles du classeur en tant que tables JMP. J'ai joint le code JMP et le code VBS est ci-dessous (c'est peut-être intéressant pour d'autres personnes). Maintenant, c'est comme ça que tout fonctionne : le complément s'exécute, le classeur est créé, mais il se bloque (Excel s'affiche plus tard : Microsoft Excel attend qu'une autre application termine une action OLE). Ensuite, j'ai essayé de changer la syntaxe de ma commande runprogram : au lieu d'écrire Read function ("texte"), j'ai écrit Read function(). Le tout fonctionne (il affiche même le message "Terminé" du VBS) mais ce qui vient après la commande runprogram ne fonctionne pas. A partir du moment où j'exécute le script JMP, ntables=0. Il semble que le script JMP exécute le script VBS et exécute en parallèle ce qui vient après la commande runprogram, et puisqu'il n'y a pas de tables à ce stade, alors ntables=0. Je ne comprends pas. Je suppose que j'utilise de la mauvaise manière la commande runprogram et c'est mon problème. Ça doit être quelque chose de facile mais impossible de le trouver. Toute aide appréciée ! merci!
Fichier Appel myAddin.vbs
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Users\eduret\AppData\Roaming\Microsoft\AddIns\Gamma Tools.xla")
objExcel.Application.Visible = Vrai
objExcel.Application.Run "'Gamma Tools.xla'!Pics"
Définir objWorkbook2 = objExcel.ActiveWorkbook
Définir xlmodule = objworkbook2.VBProject.VBComponents.Add(1)
strCode = _
"sous ref()" & vbCr & _
"En cas d'erreur, reprendre le suivant" & vbCr & _
"Application.VBE.ActiveVBProject.References.AddFromFile _" & vbCr & _
"""C:\Program Files\SAS\JMP\12\jmp.tlb""" & vbCr & _
"En cas d'erreur GoTo 0" & vbCr & _
"sous-titre final"
xlmodule.CodeModule.AddFromString strCode
objExcel.Application.Run "ref"
Définir xlmodule = objworkbook2.VBProject.VBComponents.Add(1)
strCode = _
"sous export()" & vbCr & _
"Dim MyJMP As JMP.Application" & vbCr & _
"Dim JMPdoc As JMP.Document" & vbCr & _
"Set MyJMP = CreateObject(""JMP.Application"")" & vbCr & _
"MonJMP.Visible = Vrai" & vbCr & _
"Définir JMPdoc = MyJMP.OpenDocument(ThisWorkbook.FullName)" & vbCr & _
"Dim JMPdt As JMP.DataTable" & vbCr & _
"Définir JMPdt = JMPdoc.GetDataTable" & vbCr & _
"sous-titre final"
xlmodule.CodeModule.AddFromString strCode
objExcel.Application.Run "exporter"
objworkbook2.Enregistrer
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Echo "Terminé".
WScript.Quitter