Deux points :
1) Comment faire pour que l'instruction "xlBook.SaveAs nomFichierExcel"
remplace le fichier nomFichierExcel sans demander l'accord de
l'utilisateur par pop-up ?
2) Comment faire pour récupérer après un "Set xlApp =
CreateObject("Excel.Application") le n° du thread qui a été lancé ?
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
Michel_D
Bonjour,
"bruno.lindis" a écrit dans le message de news:47aedc6e$0$25495$
Bonjour,
Deux points : 1) Comment faire pour que l'instruction "xlBook.SaveAs nomFichierExcel" remplace le fichier nomFichierExcel sans demander l'accord de l'utilisateur par pop-up ?
Il faut vérifier si le fichier existe et le cas échéant le supprimer.
2) Comment faire pour récupérer après un "Set xlApp > CreateObject("Excel.Application") le n° du thread qui a été lancé ?
Si c'est le ProcessID que tu veux et que tu n'a pas déja une instance d'Excel ouverte, le code suivant devrait convenir :
Dim oApp As Object, oExcel As Object, oShell As Object
Set oShell = CreateObject("WScript.Shell") Set oApp = oShell.Exec("Excel") Set oExcel = GetObject(, "Excel.Application")
MsgBox oApp.processID
...
oExcel.Quit Set oExcel = Nothing Set oApp = Nothing Set oShell = Nothing
Bonjour,
"bruno.lindis" <bruno.lin.dis@free.fr> a écrit dans le message de news:47aedc6e$0$25495$426a34cc@news.free.fr...
Bonjour,
Deux points :
1) Comment faire pour que l'instruction "xlBook.SaveAs nomFichierExcel"
remplace le fichier nomFichierExcel sans demander l'accord de
l'utilisateur par pop-up ?
Il faut vérifier si le fichier existe et le cas échéant le supprimer.
2) Comment faire pour récupérer après un "Set xlApp > CreateObject("Excel.Application") le n° du thread qui a été lancé ?
Si c'est le ProcessID que tu veux et que tu n'a pas déja une instance
d'Excel ouverte, le code suivant devrait convenir :
Dim oApp As Object, oExcel As Object, oShell As Object
Set oShell = CreateObject("WScript.Shell")
Set oApp = oShell.Exec("Excel")
Set oExcel = GetObject(, "Excel.Application")
MsgBox oApp.processID
...
oExcel.Quit
Set oExcel = Nothing
Set oApp = Nothing
Set oShell = Nothing
"bruno.lindis" a écrit dans le message de news:47aedc6e$0$25495$
Bonjour,
Deux points : 1) Comment faire pour que l'instruction "xlBook.SaveAs nomFichierExcel" remplace le fichier nomFichierExcel sans demander l'accord de l'utilisateur par pop-up ?
Il faut vérifier si le fichier existe et le cas échéant le supprimer.
2) Comment faire pour récupérer après un "Set xlApp > CreateObject("Excel.Application") le n° du thread qui a été lancé ?
Si c'est le ProcessID que tu veux et que tu n'a pas déja une instance d'Excel ouverte, le code suivant devrait convenir :
Dim oApp As Object, oExcel As Object, oShell As Object
Set oShell = CreateObject("WScript.Shell") Set oApp = oShell.Exec("Excel") Set oExcel = GetObject(, "Excel.Application")
MsgBox oApp.processID
...
oExcel.Quit Set oExcel = Nothing Set oApp = Nothing Set oShell = Nothing
bruno.lindis
Ci-joint la réponse de argy ronet qui suite à des difficultés techniques m'a maillé sa réponse.
Je ne l'ai pas encore testée mais elle complète bien la réponse de Michel_D.
Merci à eux deux je teste l'ensemble et je reviens vous mailler ;-)
Bonjour,
Deux points : 1) Comment faire pour que l'instruction "xlBook.SaveAs nomFichierExcel" remplace le fichier nomFichierExcel sans demander l'accord de l'utilisateur par pop-up ?
Pour instancier votre xlBook, vous avez utilisé un objet Application. C'est à partir de cet objet que vous pouvez désactiver le message :
Application.Displaylertsúlse dans Excel
xlApp.Displaylertsúlse dans votre portion de code si votre variable d'instanciation s'appelle comme telle, sinon, vous adaptez.
2) Comment faire pour récupérer après un "Set xlApp = CreateObject("Excel.Application") le n° du thread qui a été lancé ?
Avec un CreateObject, ce n'est pas possible comme tel. Avec un Shell() vous récupérer le PID : N° du gestionnaire de tâches. Mais le PID n'est pas le Handle et vous ne pouvez pas manipuler l'instance avec ce N°. Pour ce faire, il faut localiser l'instance par ce PID ou bien utiliser un FindWindows() si vous avez l'exact intiltulé de la fenêtre. Pour exploiter le PID, je vous propose d'utiliser en l'adaptant, ce code Réafficher une fenêtre lancée en mode cachée avec Shell http://access.developpez.com/sources/?page=Windows#ShowShell
Merci. A+
-- -- Otez le second point pour me contacter
Ci-joint la réponse de argy ronet qui suite à des difficultés techniques
m'a maillé sa réponse.
Je ne l'ai pas encore testée mais elle complète bien la réponse de Michel_D.
Merci à eux deux je teste l'ensemble et je reviens vous mailler ;-)
Bonjour,
Deux points :
1) Comment faire pour que l'instruction "xlBook.SaveAs nomFichierExcel"
remplace le fichier nomFichierExcel sans demander l'accord de
l'utilisateur par pop-up ?
Pour instancier votre xlBook, vous avez utilisé un objet Application.
C'est à partir de cet objet que vous pouvez désactiver le message :
Application.Displaylertsúlse dans Excel
xlApp.Displaylertsúlse dans votre portion de code si votre variable
d'instanciation s'appelle comme telle, sinon, vous adaptez.
2) Comment faire pour récupérer après un "Set xlApp =
CreateObject("Excel.Application") le n° du thread qui a été lancé ?
Avec un CreateObject, ce n'est pas possible comme tel.
Avec un Shell() vous récupérer le PID : N° du gestionnaire de tâches.
Mais le PID n'est pas le Handle et vous ne pouvez pas manipuler
l'instance avec ce N°.
Pour ce faire, il faut localiser l'instance par ce PID ou bien utiliser
un FindWindows() si vous avez l'exact intiltulé de la fenêtre.
Pour exploiter le PID, je vous propose d'utiliser en l'adaptant, ce code
Réafficher une fenêtre lancée en mode cachée avec Shell
http://access.developpez.com/sources/?page=Windows#ShowShell
Ci-joint la réponse de argy ronet qui suite à des difficultés techniques m'a maillé sa réponse.
Je ne l'ai pas encore testée mais elle complète bien la réponse de Michel_D.
Merci à eux deux je teste l'ensemble et je reviens vous mailler ;-)
Bonjour,
Deux points : 1) Comment faire pour que l'instruction "xlBook.SaveAs nomFichierExcel" remplace le fichier nomFichierExcel sans demander l'accord de l'utilisateur par pop-up ?
Pour instancier votre xlBook, vous avez utilisé un objet Application. C'est à partir de cet objet que vous pouvez désactiver le message :
Application.Displaylertsúlse dans Excel
xlApp.Displaylertsúlse dans votre portion de code si votre variable d'instanciation s'appelle comme telle, sinon, vous adaptez.
2) Comment faire pour récupérer après un "Set xlApp = CreateObject("Excel.Application") le n° du thread qui a été lancé ?
Avec un CreateObject, ce n'est pas possible comme tel. Avec un Shell() vous récupérer le PID : N° du gestionnaire de tâches. Mais le PID n'est pas le Handle et vous ne pouvez pas manipuler l'instance avec ce N°. Pour ce faire, il faut localiser l'instance par ce PID ou bien utiliser un FindWindows() si vous avez l'exact intiltulé de la fenêtre. Pour exploiter le PID, je vous propose d'utiliser en l'adaptant, ce code Réafficher une fenêtre lancée en mode cachée avec Shell http://access.developpez.com/sources/?page=Windows#ShowShell