KILL "EXCEL.EXE"

Greengold Messages postés 57 Date d'inscription mercredi 16 octobre 2002 Statut Membre Dernière intervention 31 mars 2004 - 4 août 2003 à 18:32
cs_Axar Messages postés 19 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 12 juillet 2012 - 20 juin 2007 à 15:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8141-kill-excel-exe

cs_Axar Messages postés 19 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 12 juillet 2012
20 juin 2007 à 15:06
serai-je t il le seul ou cela ne marche, j'ai bien esté le code mise à disposition, mais je retrouve les même problèmes, c'est a dire qu'une instance "Excel.exe" est toujours présente dans les process.
De plus, dans mon programme je suis amené à réouvrir Excel.
je tente d'entré la commande suivante :

With RapportCl.ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Data Source=192.168.59.37;Use Procedure for Prepare=1;Auto" _
, _
" Translate=True;Packet Size=4096;;Use Encryption for Data=False;Tag with column collation when possibl" _
, "e=False;Initial Catalog=ARCHIVES_TEST"), Destination:=Range("A1"))
.CommandType = xlCmdSql
.CommandText = Array(str_SQL)
.Name = "192.168.59.37 ARCHIVES_TEST ADHMVT"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
'.SourceConnectionFile = _
'"C:\travail\Mes sources de données\192.168.59.37 ARCHIVES_TEST ADHMVT.odc"
.Refresh BackgroundQuery:=False
End With

le programme s'arrete a la premiere ligne et affiche : "Erreur 1004, la méthode 'Range' de l'objet '_Global' a echoué"

pensant que c'etait a cause de l'instance Excel encore présente.
je la supprime et la j'ai le message qui me dit que le serveur distant n'est plus diponible.

je deviens fou avec Excel !!!!
Please Help me!!!!
Xiotos Messages postés 34 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 19 juillet 2010
17 août 2006 à 10:18
Salut. Felicitation pour l'explication. J'ai le problème et ne comprenait pas d'où ca pouvait venir. Mais maintenant grace à tes explications, c'est résolu. Merci encore.
rsbill Messages postés 22 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 22 août 2007
18 mai 2006 à 16:08
Salut. Félicitations pour ton explication ça a l'air vraiment génial....sauf que j'ai rien compris! Je suis débutant.

Comme dirais un Michel célèbre: "désolé"
maxibesttof Messages postés 3 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 3 novembre 2005
3 nov. 2005 à 10:48
Pour ceux qui galerent toujours même après avoir lu ca:
http://www.vbfrance.com/code.aspx?ID=27541
jeromekj Messages postés 9 Date d'inscription mardi 8 janvier 2002 Statut Membre Dernière intervention 10 avril 2006
23 avril 2005 à 00:22
J'avais moi aussi quelques soucis avec ce $!@... de process 'EXCEL.EXE'. Ton petit cours m'a permi de résoudre définitivement le pbm. Merki bien.
Corsair111 Messages postés 4 Date d'inscription dimanche 17 octobre 2004 Statut Membre Dernière intervention 27 octobre 2004
14 mars 2005 à 19:34
Super. J'ai le même problème.
J'avais trouvé qu'une simple déclaration dans la procédure en cours avec un Set AppXl= nothing à la fin marchait.
Mais là je me heurte à nouveau au problème.
Par contre je passe par deux autres procédures auquelles je passe les paramètres MonClasseur et MaFeuille. J'ai bien le quit et le nothing.Et là Excel reste en instance.
Mais j'utilise des blocs with et en lisant tous les mails, j'ai vu que c'était pas bon.

Merci à tous de vos commentaires.
admchocob74 Messages postés 1 Date d'inscription jeudi 15 juillet 2004 Statut Membre Dernière intervention 4 février 2005
4 févr. 2005 à 12:28
Concernant la création d'une nouvelle instance de tes objets,
tu auras le même problème en utilisant des block with

exemple:
With Feuille1.Range("A3", "E3").Font
.Size = 12
.Bold = True
.Color = vbBlack
End With

dans ce cas précis il suffit de remplacer le code par :

Feuille1.Range("A3", "E3").Font.Size = 12
Feuille1.Range("A3", "E3").Font.Bold = True
Feuille1.Range("A3", "E3").Font.Color = vbBlack

arfff.... Avec des copier/coller c'est pas trop fatiguant lol
cs_Labuzz Messages postés 13 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 11 avril 2005
2 févr. 2005 à 13:05
Au fait VBiginieur >>>> "

Haaaaaaaaaaaaaaaaaaaaaaaaaaaaaa hahahahahahaha.
Mouhahahhahaha
Trop MoRt De RiRe !!!!!

Pardon ?
cs_Labuzz Messages postés 13 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 11 avril 2005
2 févr. 2005 à 12:39
LOooL !
MDrrrr, je viens juste de relire mon poste.

Salut, voila le post en mode debboguer:

"Je viens juste de me rendre compte de ce probleme aujourd'hui meme, et franchement, pour la premiere fois que je suis confronter a un probleme en programmation qui trouve sa reponse simplement, clairement et efficacement, ca se fait en moins de 5h (tout cours !)

Tout ca pour dire QUE plus jamais je ne chercherais une reponse sur le net plus de 5h ^^ et encore merci !"

Enfin le seul truc a retenir dans ce que je raconte C merci.

Tu t vu quand t'a bus ??? (0.o) ???
cs_Labuzz Messages postés 13 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 11 avril 2005
2 févr. 2005 à 12:33
Bah C pas le cas en VB6.
Franchement ca tombe trop bien.
Je viens juste de rendre compte de ce problem aujourd'hui, et je franchement, pour la premiere fois que je un probleme en programmation qui trouve une reponse simple, claire et efficace, ca se fait en moins de 5h koi.

TouT ca pour dire, plus jamais je ne chercherais une reponse sur le net plus de 5h ^^ et encore merci !

(Reste plus qu'a savoir comment on utilise la proprieter selection en passant par l'objet EXCEL.Application "appXL", Chiiiii Chuuuu selection t ou ? )
real_satanique Messages postés 1 Date d'inscription mardi 3 février 2004 Statut Membre Dernière intervention 3 février 2004
3 févr. 2004 à 21:45
En VBS j'utilise simplement:

Set appXL = WScript.CreateObject("Excel.Application")

... bal bla bla ...

appXL.quit
set appXL = Nothing

et excel se ferme à tous coup même si des référence à des élément d'excel (sheet...) n'ont pas été détruit
huuuuu21 Messages postés 30 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 8 septembre 2009
6 nov. 2003 à 16:23
ouaih ça marche super bien, mais pas sous 98, seulement sous XP (et surement sous 2000, mais je n'ai pas essayé) J'ai fait un programme, et j'utilise cette methode pour fermer excel. Mais il marche pas sous 98. excel reste toujours en process. Y'a t il un develloppeur dans l'avion ????

MyNemIsU
Mooiz Messages postés 128 Date d'inscription mercredi 25 juin 2003 Statut Membre Dernière intervention 8 juillet 2005
6 août 2003 à 15:03
Moi j'en ai besoin maintenant et vraiment MERCI BEAUCOUP
10/10
cs_Keneyda Messages postés 41 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 27 mars 2009
5 août 2003 à 23:41
Trés belle source bien détaillé, dommage que tu ne l'es pas ecrite plutot, j'en avais besoin, il y a 1 mois :)
Je vais la tester

Merci
Keneyda
VBbigineure Messages postés 169 Date d'inscription vendredi 27 septembre 2002 Statut Membre Dernière intervention 27 février 2009 1
5 août 2003 à 09:55
Ah là, chapeau, et c'est vraiment du niveau 1... Si un jour un truc comme ça m'arrive je pense que je tirerais très fort sur le fil gris qui pendouille de mon UC, et je ne le remettrais pas avant le lendemain en priant très fort pour que saint bill ait fait kekchose dans la nuit.
Greengold Messages postés 57 Date d'inscription mercredi 16 octobre 2002 Statut Membre Dernière intervention 31 mars 2004
4 août 2003 à 18:32
Je voudrais réagir sur un point : Public oXl As clsXL 'Objet XL 'Instance de class.
Avec cette ligne de code tu ne fais que créer ton objet en mémoire, ensuite pour pouvoir l'utiliser il faut l'instancier, et là on utilise Set oXl = New clsXL pour faire une instanciation différée en fait.
Si tu veux instancier à la déclaration, il faut faire : Public oXl As New clsXL

C juste une question de vocabulaire. Merci d'avoir partagé ton expérience.
Rejoignez-nous