Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

killer l'instance Excel.

8 réponses
Avatar
dopamind
bonjour,

je lance via Automation une instance Excel.
cependant a la fin de la macro, l'instance reste persistente en memoire et
le seul moyen de la 'killer'
est de lancer le gestionnaire de tache.

voici le code suivant :

Dim xlApp As Excel.Application
Set xlApp = CreateObject("Excel.Application")
......
Quit.xlapp
Set xlapp = nothing

Aurais je omis quelque chose ?
merci d'avance.

8 réponses

Avatar
Daniel.M
Salut,

......
Quit.xlapp


xlapp.Quit

Salutations,

Daniel M.

Avatar
dopamind
excuser moi mais j'ai fait un erreur dans la syntaxe.
mon code est bien "xlapp.Quit"

"Daniel.M" a écrit dans le message de
news: ua#
Salut,

......
Quit.xlapp




Salutations,

Daniel M.




Avatar
Starwing
Envoie nous le code au complet pour t'aider...

Starwing
-----Message d'origine-----
excuser moi mais j'ai fait un erreur dans la syntaxe.
mon code est bien "xlapp.Quit"

"Daniel.M" a écrit dans
le message de

news: ua#
Salut,

......
Quit.xlapp




Salutations,

Daniel M.




.





Avatar
dopamind
voila une partie du code (debut et fin)

Dim xlApp As Excel.Application
Dim myOlApp As outlook.Application
Dim Foldersource, Folderfinal As String

Foldersource = "debut"
Folderfinal = "fin"

Set myOlApp = CreateObject("Outlook.Application")
Set xlApp = CreateObject("Excel.Application")

Dim myItem As outlook.MailItem
Dim myFolder, final As outlook.MAPIFolder
Dim myFolders As outlook.Folders
Dim chorus As String

Set myFolder = myOlApp.GetNamespace("MAPI").Folders("Dossiers Publics")
Set myFolder = myFolder.Folders("Tous les dossiers publics")
Set myFolder = myFolder.Folders.Item(Foldersource)
Set final = myFolder.Folders.Item(1)

Set myItem = myFolder.Items(1)
chorus = myItem.Body

fundname = Mid(chorus, 26, 7)

Workbooks.OpenText FileName:=chorus, Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:úlse,
Semicolon:=True, _
Comma:úlse, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1,
4), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1),
Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1),
Array(14, 1), Array(15 _
, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1),
Array(20, 1), Array(21, 1), _
Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26,
1), Array(27, 1), Array( _
28, 1), Array(29, 1), Array(30, 1))


..............................



ActiveWorkbook.SaveAs FileName:="TOTOchorus.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

xlApp.Quit

Set xlApp = Nothing
Set myOlApp = Nothing
End Sub


"Starwing" a écrit dans le message de news:
0c9901c35b6a$42458860$
Envoie nous le code au complet pour t'aider...

Starwing
-----Message d'origine-----
excuser moi mais j'ai fait un erreur dans la syntaxe.
mon code est bien "xlapp.Quit"

"Daniel.M" a écrit dans
le message de

news: ua#
Salut,

......
Quit.xlapp




Salutations,

Daniel M.




.





Avatar
Alain CROS
Bonjour.

Il sert à quoi le XlApp ?

Alain CROS.

"dopamind" a écrit dans le message de news: 3f2fe3aa$0$27799$
voila une partie du code (debut et fin)

Dim xlApp As Excel.Application
Dim myOlApp As outlook.Application
Dim Foldersource, Folderfinal As String

Foldersource = "debut"
Folderfinal = "fin"

Set myOlApp = CreateObject("Outlook.Application")
Set xlApp = CreateObject("Excel.Application")

Dim myItem As outlook.MailItem
Dim myFolder, final As outlook.MAPIFolder
Dim myFolders As outlook.Folders
Dim chorus As String

Set myFolder = myOlApp.GetNamespace("MAPI").Folders("Dossiers Publics")
Set myFolder = myFolder.Folders("Tous les dossiers publics")
Set myFolder = myFolder.Folders.Item(Foldersource)
Set final = myFolder.Folders.Item(1)

Set myItem = myFolder.Items(1)
chorus = myItem.Body

fundname = Mid(chorus, 26, 7)

Workbooks.OpenText FileName:=chorus, Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:úlse,
Semicolon:=True, _
Comma:úlse, Space:úlse, Other:úlse, FieldInfo:=Array(Array(1,
4), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1),
Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1),
Array(14, 1), Array(15 _
, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1),
Array(20, 1), Array(21, 1), _
Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26,
1), Array(27, 1), Array( _
28, 1), Array(29, 1), Array(30, 1))


..............................



ActiveWorkbook.SaveAs FileName:="TOTOchorus.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

xlApp.Quit

Set xlApp = Nothing
Set myOlApp = Nothing
End Sub


"Starwing" a écrit dans le message de news:
0c9901c35b6a$42458860$
Envoie nous le code au complet pour t'aider...

Starwing
-----Message d'origine-----
excuser moi mais j'ai fait un erreur dans la syntaxe.
mon code est bien "xlapp.Quit"

"Daniel.M" a écrit dans
le message de

news: ua#
Salut,

......
Quit.xlapp




Salutations,

Daniel M.




.









Avatar
Hervé
Salut dopamind,
Tu utilise la liaison précoce alors il est inutile de créer l'objet de cette
façon : Set xlApp = CreateObject("Excel.Application") mais plutôt de
celle-ci (je pense) : Set xlApp = New Excel.Application. Est ce Outlook qui
utilise Excel ? Il te faut peut être le détruire avant Excel de façon à ne
plus avoir de référence ????
Hervé.

"dopamind" a écrit dans le message news:
3f2fe3aa$0$27799$
voila une partie du code (debut et fin)

Dim xlApp As Excel.Application
Dim myOlApp As outlook.Application
Dim Foldersource, Folderfinal As String

Foldersource = "debut"
Folderfinal = "fin"

Set myOlApp = CreateObject("Outlook.Application")
Set xlApp = CreateObject("Excel.Application")

Dim myItem As outlook.MailItem
Dim myFolder, final As outlook.MAPIFolder
Dim myFolders As outlook.Folders
Dim chorus As String

Set myFolder = myOlApp.GetNamespace("MAPI").Folders("Dossiers
Publics")

Set myFolder = myFolder.Folders("Tous les dossiers publics")
Set myFolder = myFolder.Folders.Item(Foldersource)
Set final = myFolder.Folders.Item(1)

Set myItem = myFolder.Items(1)
chorus = myItem.Body

fundname = Mid(chorus, 26, 7)

Workbooks.OpenText FileName:=chorus, Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:úlse, Tab:úlse,
Semicolon:=True, _
Comma:úlse, Space:úlse, Other:úlse,
FieldInfo:=Array(Array(1,

4), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1),
Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13,
1),

Array(14, 1), Array(15 _
, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1),
Array(20, 1), Array(21, 1), _
Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26,
1), Array(27, 1), Array( _
28, 1), Array(29, 1), Array(30, 1))


..............................



ActiveWorkbook.SaveAs FileName:="TOTOchorus.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

xlApp.Quit

Set xlApp = Nothing
Set myOlApp = Nothing
End Sub


"Starwing" a écrit dans le message de news:
0c9901c35b6a$42458860$
Envoie nous le code au complet pour t'aider...

Starwing
-----Message d'origine-----
excuser moi mais j'ai fait un erreur dans la syntaxe.
mon code est bien "xlapp.Quit"

"Daniel.M" a écrit dans
le message de

news: ua#
Salut,

......
Quit.xlapp




Salutations,

Daniel M.




.









Avatar
Daniel.M
Bonjour à tous,

Moi, je pense qu'Alain a mis le doigt sur le bobo.

Le code (tel qu'envoyé) démontre qu'on roule ce code à l'intérieur du VBA
d'Excel (puisqu'il y a des appels aux méthodes d'Excel sans préfixe:
Workbooks.OpenText et ActiveWorkbook.SaveAs ).

Il faut pas s'attendre à ce qu'Excel disparaisse si on ne fait que détruire
la nouvelle instance.
D'ailleurs, pourquoi une nouvelle instance du logiciel? Pourquoi ne pas
laisser tomber xlApp et invoquer un Application.Quit à la fin de la macro.

Salutations,

Daniel M.
Avatar
dopamind
"Application.Quit" à la fin de la macro n'a aucun effet
j'ai essayé de mettre les prefixe objet devant les propriétés (range,...)
mais rien n'y change.
l'instance est toujours présente en mémoire.

"Daniel.M" a écrit dans le message de
news:
Bonjour à tous,

Moi, je pense qu'Alain a mis le doigt sur le bobo.

Le code (tel qu'envoyé) démontre qu'on roule ce code à l'intérieur du VBA
d'Excel (puisqu'il y a des appels aux méthodes d'Excel sans préfixe:
Workbooks.OpenText et ActiveWorkbook.SaveAs ).

Il faut pas s'attendre à ce qu'Excel disparaisse si on ne fait que
détruire

la nouvelle instance.
D'ailleurs, pourquoi une nouvelle instance du logiciel? Pourquoi ne pas
laisser tomber xlApp et invoquer un Application.Quit à la fin de la macro.

Salutations,

Daniel M.