VtKp Posté(e) le 26 septembre 2011 Posté(e) le 26 septembre 2011 Bonjour à tous, Je dois faire pour me simplifier la saisie manuelle une routine lisp qui permet d'écrire des données Autocad dans un document Word. J'ai trouvé mon besoin avec des commandes comme ;; récupérer un nom de fichier (setq filename (getfiled "Créer un fichier Word" "" "doc" 1)) ;; obtenir ou créer une intance de l'application (setq wapp (vlax-get-or-create-object "Word.Application")) ;; obtenir les documents (setq wdocs (vlax-get-property wapp 'Documents)) ;; créer un nouveau document (setq wdoc (vlax-invoke-method wdocs 'Add)) ;; obtenir la sélection (ou le curseur) (setq wsel (vlax-get-property wapp 'Selection)) ;; Entrer du texte (vlax-invoke-method wsel 'TypeText "Ceci est un test") ;; sauver le fichier (vlax-invoke-method wdoc 'SaveAs filename) ;; fermer le document (vlax-invoke-method wdoc 'Close) ;; quitter l'application (vlax-invoke-method wapp 'Quit) ;; supprimer l'instance et nettoyer la mémoire (indispensable) (vlax-release-object wapp) (gc) Il ne manque seulement que des lignes de codes pour paramétrer le style de texte et l'écriture en gras en italique, et la hauteur de texte Je sais qu'avec les composants VBA COM, ca peut se faire mais je cherche depuis 3 jours en vainavec par exemple pour mettre en gras (vlax-get-property wsel 'Font.Bold 1) (vlax-put-property wsel 'Font.Bold True) Si quelqu'un pourrait m'aider, Merci par avance. John
Patrick_35 Posté(e) le 27 septembre 2011 Posté(e) le 27 septembre 2011 Salut ;; récupérer un nom de fichier (setq filename (getfiled "Créer un fichier Word" "" "doc" 1)) ;; obtenir ou créer une intance de l'application (setq wapp (vlax-get-or-create-object "Word.Application")) ;; Rendre word visible (vla-put-visible wapp :vlax-true) ;; obtenir les documents (setq wdocs (vlax-get-property wapp 'Documents)) ;; créer un nouveau document (setq wdoc (vlax-invoke-method wdocs 'Add)) ;; obtenir la sélection (ou le curseur) (setq wsel (vlax-get-property wapp 'Selection)) ;; Récuper le style courant (setq wtxt (vlax-get wsel 'Font)) ;; Changer la hauteur à 14 (vlax-put wtxt 'Size 14) ;; Faire du texte en gras (vlax-put wtxt 'Bold :vlax-true) ;; Faire du texte en italique (vlax-put wtxt 'Italic :vlax-true) ;; Changer le style de texte en Arial (vlax-put wtxt 'Name "Arial") ;; Entrer du texte (vlax-invoke-method wsel 'TypeText "Ceci est un test") ;; sauver le fichier (vlax-invoke-method wdoc 'SaveAs filename) ;; fermer le document (vlax-invoke-method wdoc 'Close) ;; quitter l'application (vlax-invoke-method wapp 'Quit) ;; supprimer l'instance et nettoyer la mémoire (indispensable) (vlax-release-object wapp) (gc) @+ 1 Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Tramber Posté(e) le 27 septembre 2011 Posté(e) le 27 septembre 2011 Si quelqu'un pourrait m'aider, Merci par avance. Patrick_35 pour ce genre de problème. Comme par hasard B) Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
sbosarl Posté(e) le 27 septembre 2011 Posté(e) le 27 septembre 2011 bonjour ,comme d'habitude c'est pascal ^^petit question la commande (gc) " de gille je suppose" fait quoi au juste
Tramber Posté(e) le 27 septembre 2011 Posté(e) le 27 septembre 2011 (gc)Forces a garbage collection, which frees up unused memory Extrait de l'aide. Libère la mémoire.Si elle n'était pas partie de ton install. Elle n'existerait pas sans defun ! D'ailleurs elle est bien en bleu dans ton éditeur, n'est-ce pas ? Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
VtKp Posté(e) le 27 septembre 2011 Auteur Posté(e) le 27 septembre 2011 (gc) Extrait de l'aide. Libère la mémoire.Si elle n'était pas partie de ton install. Elle n'existerait pas sans defun ! D'ailleurs elle est bien en bleu dans ton éditeur, n'est-ce pas ? Ok Merci sérieusement pour votre aide à tous John
sbosarl Posté(e) le 28 septembre 2011 Posté(e) le 28 septembre 2011 boujour,oui effectivement il as une fonction (GC) je ne l'avais jamais vu
VtKp Posté(e) le 28 septembre 2011 Auteur Posté(e) le 28 septembre 2011 Bonjour à tous, Avant de cloturer ce post, dernière petite question Comment fait-on pour centré du texte ou bien le placer à gauche ou à droite de la page Word ?J'ai recherché dans tous les fonctions Font, Border et Style avec (vlax-dump-object wsel) ou encore (vlax-dump-object wtxt) mais je n'ai rien trouvé. Merci par avance de votre aide John
Patrick_35 Posté(e) le 29 septembre 2011 Posté(e) le 29 septembre 2011 Bonjour à tous, Avant de cloturer ce post, dernière petite question Comment fait-on pour centré du texte ou bien le placer à gauche ou à droite de la page Word ?J'ai recherché dans tous les fonctions Font, Border et Style avec (vlax-dump-object wsel) ou encore (vlax-dump-object wtxt) mais je n'ai rien trouvé. Merci par avance de votre aide JohnSalut (setq ptxt (vlax-get wsel 'Paragraphs)) (vlax-put ptxt 'Alignment 1) ps : pour t'aider, une recherche sur google avec comme mots clé createobject, Word.Application et centrer @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
VtKp Posté(e) le 5 octobre 2011 Auteur Posté(e) le 5 octobre 2011 Désolé de ne pas avoir répondu plus tôt mais j'étais en déplacementMerci Patrick pour tes réponses, j'ai pu m'en sortir.Je pense que l'on peut cloturer ce post Merci encore à vous tous John
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant