Dans une routine VBA faite dans un fichier Excel, je lance une session
Autocad
avec le code suivant :
' On lance AutoCAD
Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive la
fenêtre Excel)
Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD
AcadApp.Quit
ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je relance
la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse de
me créé
l'objet AcadApp.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
papou
Bonjour Essaie simplement d'ajouter Set AcadApp = Nothing après AcadApp.Quit
Cordialement Pascal
"Christian.L" a écrit dans le message de news: %
Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session Autocad avec le code suivant :
' On lance AutoCAD Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive la fenêtre Excel) Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD AcadApp.Quit ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je relance la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse de me créé l'objet AcadApp.
Une idée de solution ?
Merci d'avance
Christian
Bonjour
Essaie simplement d'ajouter
Set AcadApp = Nothing
après
AcadApp.Quit
Cordialement
Pascal
"Christian.L" <christian.lecossier@voila.fr> a écrit dans le message de
news: %230VGFW80FHA.612@TK2MSFTNGP10.phx.gbl...
Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session
Autocad
avec le code suivant :
' On lance AutoCAD
Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive
la
fenêtre Excel)
Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD
AcadApp.Quit
ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je
relance
la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse
de
me créé
l'objet AcadApp.
Bonjour Essaie simplement d'ajouter Set AcadApp = Nothing après AcadApp.Quit
Cordialement Pascal
"Christian.L" a écrit dans le message de news: %
Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session Autocad avec le code suivant :
' On lance AutoCAD Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive la fenêtre Excel) Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD AcadApp.Quit ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je relance la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse de me créé l'objet AcadApp.
Une idée de solution ?
Merci d'avance
Christian
michdenis
Bonjour Christian,
Habituellement avant de passer cette commande "quit", on commence par fermer le travail en cours dans l'application ouverte
Pour excel, on aurait : Wk.Close 'Ferme le classeur ou les classeurs Xl.quit 'Ferme l'application.
Salutations!
"Christian.L" a écrit dans le message de news: % Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session Autocad avec le code suivant :
' On lance AutoCAD Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive la fenêtre Excel) Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD AcadApp.Quit ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je relance la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse de me créé l'objet AcadApp.
Une idée de solution ?
Merci d'avance
Christian
Bonjour Christian,
Habituellement avant de passer cette commande "quit", on commence par fermer le travail en cours dans l'application ouverte
Pour excel, on aurait :
Wk.Close 'Ferme le classeur ou les classeurs
Xl.quit 'Ferme l'application.
Salutations!
"Christian.L" <christian.lecossier@voila.fr> a écrit dans le message de news: %230VGFW80FHA.612@TK2MSFTNGP10.phx.gbl...
Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session
Autocad
avec le code suivant :
' On lance AutoCAD
Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive la
fenêtre Excel)
Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD
AcadApp.Quit
ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je relance
la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse de
me créé
l'objet AcadApp.
Habituellement avant de passer cette commande "quit", on commence par fermer le travail en cours dans l'application ouverte
Pour excel, on aurait : Wk.Close 'Ferme le classeur ou les classeurs Xl.quit 'Ferme l'application.
Salutations!
"Christian.L" a écrit dans le message de news: % Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session Autocad avec le code suivant :
' On lance AutoCAD Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive la fenêtre Excel) Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD AcadApp.Quit ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je relance la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse de me créé l'objet AcadApp.
Une idée de solution ?
Merci d'avance
Christian
Christian.L
Bonjour et merci de ton attention
En effet, je ne le faisais pas. Après modification de mon code je ferme a chaque fois le plan que j'ai ouvert.
Toujours le même problème
C.L.
"michdenis" a écrit dans le message de news: %
Bonjour Christian,
Habituellement avant de passer cette commande "quit", on commence par fermer le travail en cours dans l'application ouverte
Pour excel, on aurait : Wk.Close 'Ferme le classeur ou les classeurs Xl.quit 'Ferme l'application.
Salutations!
"Christian.L" a écrit dans le message de news: % Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session Autocad avec le code suivant :
' On lance AutoCAD Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive la fenêtre Excel) Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD AcadApp.Quit ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je relance la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse de me créé l'objet AcadApp.
Une idée de solution ?
Merci d'avance
Christian
Bonjour et merci de ton attention
En effet, je ne le faisais pas.
Après modification de mon code je ferme a chaque fois le plan
que j'ai ouvert.
Toujours le même problème
C.L.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23NFVmn90FHA.3720@TK2MSFTNGP14.phx.gbl...
Bonjour Christian,
Habituellement avant de passer cette commande "quit", on commence par
fermer le travail en cours dans l'application ouverte
Pour excel, on aurait :
Wk.Close 'Ferme le classeur ou les classeurs
Xl.quit 'Ferme l'application.
Salutations!
"Christian.L" <christian.lecossier@voila.fr> a écrit dans le message de
news: %230VGFW80FHA.612@TK2MSFTNGP10.phx.gbl...
Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session
Autocad
avec le code suivant :
' On lance AutoCAD
Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive
la
fenêtre Excel)
Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD
AcadApp.Quit
ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je
relance
la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse
de
me créé
l'objet AcadApp.
En effet, je ne le faisais pas. Après modification de mon code je ferme a chaque fois le plan que j'ai ouvert.
Toujours le même problème
C.L.
"michdenis" a écrit dans le message de news: %
Bonjour Christian,
Habituellement avant de passer cette commande "quit", on commence par fermer le travail en cours dans l'application ouverte
Pour excel, on aurait : Wk.Close 'Ferme le classeur ou les classeurs Xl.quit 'Ferme l'application.
Salutations!
"Christian.L" a écrit dans le message de news: % Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session Autocad avec le code suivant :
' On lance AutoCAD Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive la fenêtre Excel) Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD AcadApp.Quit ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je relance la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse de me créé l'objet AcadApp.
Une idée de solution ?
Merci d'avance
Christian
michdenis
Bonjour Christian,
Voici un exemple d'automation avec Excel.
Je ne vois pas pourquoi, il n'en serait pas ainsi avec Autocad.
Attention, le VBA d'autocad peut différer légèrement comme dans cette ligne de code :
Wk.Close False 'Est-ce que le paramètre "False" existe avec Autocad ?
Lorsque tu ouvres un nouveau plan, assure-toi d'utiliser l'instance pour le créer, comme dans cette ligne de code pour Excel
Set Wk = Xl.Workbooks.Open("c:Atravailclasseur1.xls")
Avec les touches Ctrl +Alt + delete, assure toi qu'il n'y a pas d'instance d'autocad ouverte avec de procéder.
Au-delà de cela, je ne sais pas!
'--------------------------- Sub Exemple()
Dim Xl As New Excel.Application Dim Wk As Workbook Xl.Visible = True Set Wk = Xl.Workbooks.Open("c:Atravailclasseur1.xls") 'opérations diverses sur le classeur
Wk.Close False 'fermeture du classeur sans saugegarde Xl.Quit Set Wk = Nothing: Set Xl = Nothing
End Sub '---------------------------
"Christian.L" a écrit dans le message de news: eIL%23XY$ Bonjour et merci de ton attention
En effet, je ne le faisais pas. Après modification de mon code je ferme a chaque fois le plan que j'ai ouvert.
Toujours le même problème
C.L.
"michdenis" a écrit dans le message de news: %
Bonjour Christian,
Habituellement avant de passer cette commande "quit", on commence par fermer le travail en cours dans l'application ouverte
Pour excel, on aurait : Wk.Close 'Ferme le classeur ou les classeurs Xl.quit 'Ferme l'application.
Salutations!
"Christian.L" a écrit dans le message de news: % Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session Autocad avec le code suivant :
' On lance AutoCAD Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive la fenêtre Excel) Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD AcadApp.Quit ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je relance la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse de me créé l'objet AcadApp.
Une idée de solution ?
Merci d'avance
Christian
Bonjour Christian,
Voici un exemple d'automation avec Excel.
Je ne vois pas pourquoi, il n'en serait pas ainsi avec Autocad.
Attention, le VBA d'autocad peut différer légèrement comme dans cette ligne de code :
Wk.Close False 'Est-ce que le paramètre "False" existe avec Autocad ?
Lorsque tu ouvres un nouveau plan, assure-toi d'utiliser l'instance pour le créer, comme dans cette ligne de code pour Excel
Set Wk = Xl.Workbooks.Open("c:Atravailclasseur1.xls")
Avec les touches Ctrl +Alt + delete, assure toi qu'il n'y a pas d'instance d'autocad ouverte avec de procéder.
Au-delà de cela, je ne sais pas!
'---------------------------
Sub Exemple()
Dim Xl As New Excel.Application
Dim Wk As Workbook
Xl.Visible = True
Set Wk = Xl.Workbooks.Open("c:Atravailclasseur1.xls")
'opérations diverses sur le classeur
Wk.Close False 'fermeture du classeur sans saugegarde
Xl.Quit
Set Wk = Nothing: Set Xl = Nothing
End Sub
'---------------------------
"Christian.L" <christian.lecossier@voila.fr> a écrit dans le message de news: eIL%23XY$0FHA.2008@TK2MSFTNGP10.phx.gbl...
Bonjour et merci de ton attention
En effet, je ne le faisais pas.
Après modification de mon code je ferme a chaque fois le plan
que j'ai ouvert.
Toujours le même problème
C.L.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23NFVmn90FHA.3720@TK2MSFTNGP14.phx.gbl...
Bonjour Christian,
Habituellement avant de passer cette commande "quit", on commence par
fermer le travail en cours dans l'application ouverte
Pour excel, on aurait :
Wk.Close 'Ferme le classeur ou les classeurs
Xl.quit 'Ferme l'application.
Salutations!
"Christian.L" <christian.lecossier@voila.fr> a écrit dans le message de
news: %230VGFW80FHA.612@TK2MSFTNGP10.phx.gbl...
Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session
Autocad
avec le code suivant :
' On lance AutoCAD
Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive
la
fenêtre Excel)
Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD
AcadApp.Quit
ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je
relance
la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse
de
me créé
l'objet AcadApp.
Je ne vois pas pourquoi, il n'en serait pas ainsi avec Autocad.
Attention, le VBA d'autocad peut différer légèrement comme dans cette ligne de code :
Wk.Close False 'Est-ce que le paramètre "False" existe avec Autocad ?
Lorsque tu ouvres un nouveau plan, assure-toi d'utiliser l'instance pour le créer, comme dans cette ligne de code pour Excel
Set Wk = Xl.Workbooks.Open("c:Atravailclasseur1.xls")
Avec les touches Ctrl +Alt + delete, assure toi qu'il n'y a pas d'instance d'autocad ouverte avec de procéder.
Au-delà de cela, je ne sais pas!
'--------------------------- Sub Exemple()
Dim Xl As New Excel.Application Dim Wk As Workbook Xl.Visible = True Set Wk = Xl.Workbooks.Open("c:Atravailclasseur1.xls") 'opérations diverses sur le classeur
Wk.Close False 'fermeture du classeur sans saugegarde Xl.Quit Set Wk = Nothing: Set Xl = Nothing
End Sub '---------------------------
"Christian.L" a écrit dans le message de news: eIL%23XY$ Bonjour et merci de ton attention
En effet, je ne le faisais pas. Après modification de mon code je ferme a chaque fois le plan que j'ai ouvert.
Toujours le même problème
C.L.
"michdenis" a écrit dans le message de news: %
Bonjour Christian,
Habituellement avant de passer cette commande "quit", on commence par fermer le travail en cours dans l'application ouverte
Pour excel, on aurait : Wk.Close 'Ferme le classeur ou les classeurs Xl.quit 'Ferme l'application.
Salutations!
"Christian.L" a écrit dans le message de news: % Bonjour à tous
Dans une routine VBA faite dans un fichier Excel, je lance une session Autocad avec le code suivant :
' On lance AutoCAD Set AcadApp = New AutoCAD.AcadApplication
' On remets Excel au premier plan (le lancement d'AutoCAD désactive la fenêtre Excel) Application.Visible = True
a la fin de ma routine, je ferme l'application avec le code suivant :
' On ferme AutoCAD AcadApp.Quit ActiveWorkbook.Save
Le problème, c'est que la liaison OLE continue d'exister, car si je relance la routine, Excel me dit qu'il attend la fin d'une liaison OLE et refuse de me créé l'objet AcadApp.