Aller au contenu

Transfert de données du VBA vers LISP


Invité CityHunter87

Messages recommandés

Invité CityHunter87

 

Bien le bonjour ! :)

 

J'aimerai savoir si c'est possible d'envoyer des valeurs rentrés dans une UserForm crée en VBA vers un fichier LISP ?

 

J'ai entendu parler du sendcommand mais je ne sais pas si c'est utile ici.

 

J'ai toujours la solution de créer une case de dialogue DCL mais c'est beaucoup moins pratique à mettre en place.

 

 

Merci !! :)

Lien vers le commentaire
Partager sur d’autres sites

Invité CityHunter87

Merci d'avoir répondu si vite Gile,

 

Est ce que tu aurais sous la main un exemple concrés de l'utilisation de ces variables ?? Je ne les trouve pas dans l'aide autoCAD, ni sur le Net.

 

ça me serait d'une grande aide si c'est possible.

 

 

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Les variables USERI1 à USERI5 peuvent chacune contenir un nombre entier, de même, USERR1 à USERR5 peuvent contenir un réel et USERS1 à USERS5 une chaîne de caractère.

 

En VBA*, il me semble qu'affecte des valeurs aux variables système avec ThisDrawing.SetVariable (et qu'on les récupère avec ThisDrawing.GetVariable).

En LISP, on les récupère avec getvar (et on les affecte avec setvar).

 

* Je ne pratique pas le VB(A) et ne risque certainement pas de m'y mettre aujourd'hui alors que ce langage devrait être abandonné très prochainement par AutoCAD et Windows).

Pour les boites de dialogue, si elles sont simple DCL n'est pas si compliqué et aussi fiable que portable, pour des boites plus complexes, il y a OpenDCL qui est au moins aussi aussi puissant que l'éditeur VBA et permet de tout coder en LISP. Sinon, il y a .NET, encore plus puissant, mais beaucoup moins accessible.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonjour à tous...

 

J'ai un petit problème du même ordre... J'ai dans mes LiSP des phrases du genre

(setq prj (vlax-ldata-get "Phalene" "Projet"))

Comment faire pour les récupérer dans VBA ?

 

Merci et bonsoir à tous...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous...

 

J'ai un petit problème du même ordre... J'ai dans mes LiSP des phrases du genre

(setq prj (vlax-ldata-get "Phalene" "Projet"))

Comment faire pour les récupérer dans VBA ?

 

Merci et bonsoir à tous...

 

Denis...

 

Je crains que ce ne soit pas possible les 'ldata' (LISP data) sont stockées dans des dictionnaires spéciaux uniquement accessibles en LISP.

 

Pour que les données soient accessibles avec tous les langages, il faut utiliser les dictionnaires classiques avec des xrecords.

Tu trouveras ici des fonctions qui ressmblent dans leur utilisation aux fonction vlax-ldata* mais conservent les donnes dans des Xrecords contenus dans des dictionnaires accessibles en LISP, VBA, .NET, ObjectARX.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

 

Merci (gile) , je pensais pourvoir lancer un lisp depuis VBA, et le LiSP retournerait une variable à VBA... Mais bon...

 

Je connaissais déjà les USERs mais ils sont limités, mais je ne connaissais pas les xrecords...

 

J'espère juste qu'il fonctionnent comme les "vlax-ldata*"... Je vais me renseigner...

 

Merci encore...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Pourquoi n'utilise tu pas le registre windows

 

J'utilise ces petites fonctions pour me créer des variables super globale

 

(defun PUT-var (RegVar RegVal)

(vl-registry-write

"HKEY_CURRENT_USER\\Software\\Fraid\\ActivProject"

RegVar

RegVal

)

(princ)

)

 

(defun GET-var (RegVar)

 

(setq ExtVal (vl-registry-read

"HKEY_CURRENT_USER\\Software\\Fraid\\ActivProject"

RegVar

)

)

ExtVal

)

 

Je pense que cela ne doit pas être trop difficile de les récupérer en VBA

Lien vers le commentaire
Partager sur d’autres sites

Bonjours à tous...

 

Alors là, Fraid, ça me scie les pattes ! ! !

 

J'utilise la base de registre pour tous mes autre programmes (VBA Excel, Word, Acces, VB6...) Et JAMAIS je n'avais eu cette lumineuse idée ! ! !

 

Un super grand merci ! ! !

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Grand merci à tyrese69_...

 

J'y cours...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité