|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : février 2011 Messages : 26 ![]() |
Bonjour, Bonjour,
Je séche sur un petit truc qui me bloque pas mal. J'ai une macro autocad qui m'ouvre un fichier excel en lecture seule (pour ne pas enregistrer n'importe comment mon fichier plateforme), me le rempli via une extraction de certaien données. Notamment le nom en A3 et chemin du fichier en A2. Je souhaite enregistrer le fichier rempli avec les infos contenu en A3 et A2. Depuis excel je sais faire c'est : Sub enregistrement() Code :
Par contre depuis autocad je séche .... Une idée ? Voici mon code vba AUTOCAD : Code :
|
||||
|
|
00
|
|
|
#2 | ||
![]() ![]() Fred ThomasEngineering Inscription : février 2008 Messages : 3 484 ![]() |
Bonjour,
Teste ceci après avoir activé la référence "Microsoft Excel x.x Library" dans l'éditeur VBA d'Autocad Code :
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 26 ![]() |
Bonjour,
Merci pour le code, Mais j'avoue ne pas tout comprendre, pourquoi ouvrir un nouvel excel, ainsi qu'un nouvel onglet puisqu'il est dejà ouvert. Il ne faudrait pas plutôt activer l'excel actif? Edit : J'ai incrementé mon fichier de la sorte : Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() Fred ThomasEngineering Inscription : février 2008 Messages : 3 484 ![]() |
C'était juste un exemple pour te montrer qu'il était relativement aisé de piloter Excel depuis Autocad à partir du moment où l'on active la référence
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 26 ![]() |
A ok effectivement
Mais je bloque vraiment sur l'enregistrement. On dirait qu'il saute ma ligne Saveas pour aller directement à .quit Du coup j'ai le message voulez vous enregistrer les modifications etc. J'en conclu donc que je n'ais pas bien défini la dimension de mon classseur. Donc j'ai testé plein de chose mais il me manque une variable (ou dimension) quelque part... Pour info voilà le cheminement de ma suite (pas logique) de vba et script. Depuis SAS (superautoscript) je lui donne une liste de fichier dwg à gérer avec un script en particulier, ce script appel 2 macro vba (l'une pour l'ouverture d'une plateforme d'echange autocad<=> excel) et la seconde une extraction de données. Une fois l'extraction finis je souhaite qu'il enregistre ce fichier xls en du nom et du chemin. Ensuite il enregistre le plan, le ferme. Et SAS passe au suivant..... Mais je reste bloquer sur voulez vous enregistrer les modifs |
|
|
00
|
|
|
#6 | ||
![]() ![]() Fred ThomasEngineering Inscription : février 2008 Messages : 3 484 ![]() |
Si je comprend bien, tu as un fichier modèle (en lecture seule) que tu ouvres et que tu veux sauvegarder sous un autre nom une fois que les données sont transférées.
Je laisserais Autocad ouvrir le fichier Excel modèle plutôt que de l'ouvrir manuellement et de travailler avec le fichier actif. Un jour ou l'autre le fichier actif ne sera pas celui qu'on croit et ça va coincer. Code :
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 26 ![]() |
Tu veux m'epouser
![]() Ca à l'air de marché au poil !!, et le pire c'est que j'ai déjà un bout de code qui me sert dans un autre module à ouvrir cette fameuse plateforme, et à aucun momen je n'ai pensé passer par ce code la (en appelant mon autre module d'extraction en cours de route) ![]() ![]() Merci beaucoup, Je termine mon script etc, et je fais le test grandeur nature sur une 20aine de plan (on vera lundi comme ca Edit : une petite question, il ne me quitte pas le fichier en lecture seule ? Edit 3 : J'ai trouvé, il suffisait de mettre false aprés .close |
|
|
00
|
|
|
#8 |
![]() ![]() Fred ThomasEngineering Inscription : février 2008 Messages : 3 484 ![]() |
![]() je ne suis pas un homme facile, je ne couche pas le premier soir...
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
|
|
00
|
|
|
#9 | |
|
Invité de passage
![]() Inscription : février 2011 Messages : 26 ![]() |
Citation:
![]() En tout cas cela marche nickel Mais une autre question me viens, est il possible de lancer une macro (toujours depuis autocad) contenu dans un fichier excel? Exemple : Ton super code ouvre l'xls Mon super code extrait mes données La un super code encore inconue lance ma super macro de fusion de donnée contenu dans l'xls. Ton super code enregistre le fichier Et hop on passe au suivant? |
|
|
|
00
|
|
|
#10 | ||
![]() ![]() Fred ThomasEngineering Inscription : février 2008 Messages : 3 484 ![]() |
En reprenant mon bout de code, essaie ceci (il s'agit de la dernière ligne de code) :
Code :
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
||
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 26 ![]() |
Bonjour,
Merci Je teste dans l'aprés midi |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 26 ![]() |
Bonjour,Bonjour,
Dsl, l'après midi a été longue... Malheureusement cela ne fonctionne pas "Erreur 1004 - Impossible de trouver la macro 'monfichier.xls!mamacro' Pour être sur de ne pas me tromper dans l'appel, j'ai nommé mon module et ma macro de la même maniere... Je lui ai également donnée le chemin complet, le module plus le nom de la macro... Mais rien n'y fait Voici les tests que j'ai effectué : Code :
Macro = Xl.Run("G:\invent-immo\Module-vba\Module-DPFLL\Plateformes\Vaugirard\PlateformeVGR.xls!Transfert.Transfert") Code :
Macro = Xl.Run("G:\invent-immo\Module-vba\Module-DPFLL\Plateformes\Vaugirard\PlateformeVGR.xls!Transfert") |
|
|
00
|
|
|
#13 |
![]() ![]() Fred ThomasEngineering Inscription : février 2008 Messages : 3 484 ![]() |
Etrange, j'avais fait les test avant et ça fonctionne chez moi.
Ton fichier contenant la macro est bien ouvert avant de faire appel à cette macro ?
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 26 ![]() |
Bonsoir,
Oui oui car c'est votre code qui ouvre ce fichier (depuis autocad), et j'ai mis X1.run avec l'enregistrement et la fermeture. |
|
|
00
|
|
|
#15 |
![]() ![]() Fred ThomasEngineering Inscription : février 2008 Messages : 3 484 ![]() |
Là je ne vois pas ce qui coince. A tout hasard remontre moi ton code
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
|
|
00
|
|
|
#16 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 26 ![]() |
Bonjour,
Le voici Code :
|
||
|
|
00
|
|
|
#17 | ||
![]() ![]() Fred ThomasEngineering Inscription : février 2008 Messages : 3 484 ![]() |
On va essayer de procéder par élimination
Dans ton fichier "PlateformeVGR.xls" insère, dans un module standard, ce petit bout de code Désactive la macro d'extraction "Extractiontexte.Extractionptinsertion" Et teste simplement comme ça Code :
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
||
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 26 ![]() |
Bonjour, Bonjour,
Désolé, c'est un peu la course au boulot cette semaine, je teste ceci ce soir chez moi Bonne journée Arno |
|
|
00
|
|
|
#19 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 26 ![]() |
Bonjour, Bonjour,
J'ai mis un peu de temps, mais aprés test cela marche Donc me viens une question bête, le fait que le nom du module, et le nom la macro soit identique n'y serais pas pour qq chose ???? |
|
|
00
|
|
|
#20 |
![]() ![]() Fred ThomasEngineering Inscription : février 2008 Messages : 3 484 ![]() |
En effet, je viens de tester et ça coince si le module porte le même nom que la macro. Je ne connaissais pas cette subtilité.
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com