acceder excel déjà ouvert avec XP en vbs via ligne de commande
acceder excel déjà ouvert avec XP en vbs via ligne de commande - XML/XSL - Programmation
MarshPosté le 12-06-2006 à 09:08:47
mon VBS permet de nettoyer mon fichier excel tous les jours mon fichier excel ouvert continuellement,
lorsque je lance mon vbs en double cliquant dessus çà fonctionne lorsque je le lance via une ligne de commande AT ou via un automate par l'envoi d'un cmd il se fige ???????????
quand je regarde mon gestionnaire de tache, le premier excel est ouvert avec eXCEL.exe /E le second lors du lancement de mon vbs est ouvert avec SVCHOST /embedding
Comment puis-je faire pour que çà ne fige plus ???
en attendant votre aide, voici le début de mon vbs :
'-------------------------------------------------------------------------------------------------------------------- '----------------------------------------- Création des Objets de travail ------------------------------------------- '--------------------------------------------------------------------------------------------------------------------
Set OBJSHELL = WScript.CreateObject("WScript.Shell" ) 'Objet servant à passer des commandes DOS Set OBJFILES = CreateObject("Scripting.FileSystemObject" ) 'Objet servant à passer des commandes de gestion de fichier Set Pilotage = WScript.GetObject(CheminExcel + "Pilotage.xls" ) Set Catalogue = Pilotage.Application.WorkSheets("CATALOGUE GENERAL" ) Set Noemie = Pilotage.Application.WorkSheets("NOEMIE" ) Set Aprica = Pilotage.Application.WorkSheets("APRICA" ) Set Bancaire = Pilotage.Application.WorkSheets("BANCAIRE" ) Set Delegation = Pilotage.Application.WorkSheets("DELEGATION" ) Set Divers = Pilotage.Application.WorkSheets("DIVERS" )
'-------------------------------------------------------------------------------------------------------------------- '------------------------------------------------ Corps du Programme ------------------------------------------------ '--------------------------------------------------------------------------------------------------------------------
Call Save_Pilotage
Set OBJFeuille = Catalogue Call NettoyageCatalogue
'-------------------------------------------------------------------------------------------------------------------- '------------------------------------------------- Gestion des Erreurs ---------------------------------------------- '--------------------------------------------------------------------------------------------------------------------
If Erreur <> 0 then ' OBJShell.run "E:\Packcenter\Sysauto\Prod_Erreur\XF_DEL.CMD nettoie.txt" Message = "Erreur VBS Code : " + Erreur Call NetSend(Message, "CFT" ) End IF
'-------------------------------------------------------------------------------------------------------------------- '----------------------------------------------- Procédures Principales --------------------------------------------- '--------------------------------------------------------------------------------------------------------------------
'----- Sauvegarde du classeur pilotage '---------------------------------------- Sub Save_Pilotage SourceCopie = Source & "Pilotage.xls" DestinationCopie = Destin & Year(Date) & "\Cft_Archives_Sem_" DestinationCopie = DestinationCopie & Rajout_Zero(DatePart("ww", Date,2)) & "_" & Year(Date) & ".xls" Call CopieFichier(SourceCopie,DestinationCopie) End Sub
'----- Nettoyage de la feuille Catalogue '---------------------------------------- Sub NettoyageCatalogue Call RecupNbLignes(1,i) If i > 1 Then Catalogue.Range("A2:IV" & i).delete End If End Sub
Marsh Posté le 12-06-2006 à 09:08:47
mon VBS permet de nettoyer mon fichier excel tous les jours
mon fichier excel ouvert continuellement,
lorsque je lance mon vbs en double cliquant dessus çà fonctionne
lorsque je le lance via une ligne de commande AT ou via un automate par l'envoi d'un cmd
il se fige ???????????
quand je regarde mon gestionnaire de tache, le premier excel est ouvert avec eXCEL.exe /E
le second lors du lancement de mon vbs est ouvert avec SVCHOST /embedding
Comment puis-je faire pour que çà ne fige plus ???
en attendant votre aide, voici le début de mon vbs :
Const CheminExcel = "E:\CFT_PLUS\CFT_HABILLAGE\"
Const Source = "E:\CFT_PLUS\CFT_HABILLAGE\"
Const Destin = "\\SMBMWEB03\ECHANGE\CFT\CFT_PLUS\CFT_HABILLAGE\ARCHIVES\"
Const ChemPGM = "E:\dollaru\aprip1\prod_programme\"
'--------------------------------------------------------------------------------------------------------------------
'----------------------------------------- Création des Objets de travail -------------------------------------------
'--------------------------------------------------------------------------------------------------------------------
Set OBJSHELL = WScript.CreateObject("WScript.Shell" ) 'Objet servant à passer des commandes DOS
Set OBJFILES = CreateObject("Scripting.FileSystemObject" ) 'Objet servant à passer des commandes de gestion de fichier
Set Pilotage = WScript.GetObject(CheminExcel + "Pilotage.xls" )
Set Catalogue = Pilotage.Application.WorkSheets("CATALOGUE GENERAL" )
Set Noemie = Pilotage.Application.WorkSheets("NOEMIE" )
Set Aprica = Pilotage.Application.WorkSheets("APRICA" )
Set Bancaire = Pilotage.Application.WorkSheets("BANCAIRE" )
Set Delegation = Pilotage.Application.WorkSheets("DELEGATION" )
Set Divers = Pilotage.Application.WorkSheets("DIVERS" )
'--------------------------------------------------------------------------------------------------------------------
'------------------------------------------------ Corps du Programme ------------------------------------------------
'--------------------------------------------------------------------------------------------------------------------
Call Save_Pilotage
Set OBJFeuille = Catalogue
Call NettoyageCatalogue
Call RechercheJour(Jour_en_Cours)
Set OBJFeuille = Noemie
Call NettoyageFamille(Jour_en_Cours, "lun" )
Call Mise_a_Jour_Dates(Jour_en_Cours, "lun" )
Set OBJFeuille = Aprica
Call NettoyageFamille(Jour_en_Cours, "lun" )
Call Mise_a_Jour_Dates(Jour_en_Cours, "lun" )
Erreur = Err.Number
'--------------------------------------------------------------------------------------------------------------------
'------------------------------------------------- Gestion des Erreurs ----------------------------------------------
'--------------------------------------------------------------------------------------------------------------------
If Erreur <> 0 then
' OBJShell.run "E:\Packcenter\Sysauto\Prod_Erreur\XF_DEL.CMD nettoie.txt"
Message = "Erreur VBS Code : " + Erreur
Call NetSend(Message, "CFT" )
End IF
'--------------------------------------------------------------------------------------------------------------------
'----------------------------------------------- Procédures Principales ---------------------------------------------
'--------------------------------------------------------------------------------------------------------------------
'----- Sauvegarde du classeur pilotage
'----------------------------------------
Sub Save_Pilotage
SourceCopie = Source & "Pilotage.xls"
DestinationCopie = Destin & Year(Date) & "\Cft_Archives_Sem_"
DestinationCopie = DestinationCopie & Rajout_Zero(DatePart("ww", Date,2)) & "_" & Year(Date) & ".xls"
Call CopieFichier(SourceCopie,DestinationCopie)
End Sub
'----- Nettoyage de la feuille Catalogue
'----------------------------------------
Sub NettoyageCatalogue
Call RecupNbLignes(1,i)
If i > 1 Then
Catalogue.Range("A2:IV" & i).delete
End If
End Sub