OVH Cloud OVH Cloud

Problème fichier EXCEL

14 réponses
Avatar
NS
Bonjour,

J'"au un script vbs qui ouvre un fichier Excel. Dans ce dernier il y a une
cellule qui contient une formule utilisant SERIE.JOUR.OUVRE et qui nécessite
l'installation de l'utilitaire d'analyse.

Malgré l'installation de cet utilitaire sur le parc de machines et malgré la
mise au minimum du niveau de sécurité (Outils > Macros > Sécurité) voici mon
pb :

Si ouverture du fichier avec le script vbs alors la formule est inactive.
Si ouverture du fichier directement depuis Excel alors la formule est
active.

Merci de m'aider dans la résolution de ce pb.

Bonne journée,

Nicolas.

4 réponses

1 2
Avatar
NS
rajouté dans le script dont voici le code, même résultat !!
AU SECOURS !

'------------ Définition des
variables ------------------------------------------->

Dim Users, Expert, PathCape
Users = "cpa_serveurusers" 'Ne pas oublier le

'------------ Définition des
variables -------------------------------------------<

'------------ Boîtes de dialogue
INPUT ------------------------------------------->

Expert = InputBox("Entrez les initiales de l'Expert", ":: Ouverture Fiche
CAPE ::")
If IsEmpty(Expert) Then
MsgBox "Vous avez annulé !", 48, "Annulation"
Wscript.Quit
Else
If Len(Expert) = 0 Then
MsgBox "Vous n'avez rien saisi !", 16, "ERREUR !"
Wscript.Quit
End If
End If

'---------------------------------------------------------------------------
------<


'-------------------- Traitement de la Fiche CAPE
EXPERT ------------------------->
PathCape = Users & Expert & "" & "_AXA CS Cape_" & "" & "2005 RéCAPE " &
Ucase(Expert) & ".xls"
Dim objExcel, currentWorkSheet, Activeworkbook, VersionExcel, SecurityKey
Set objExcel = CreateObject("Excel.Application")
objExcel.AddIns("Utilitaire d'analyse").Installed = True
VersionExcel = objExcel.Application.Version
Set Shell = WScript.CreateObject("WScript.Shell")

' Modification sécurité
SecurityKey = "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & VersionExcel
& "ExcelSecurity"
Shell.RegWrite SecurityKey & "Level", 1, "REG_DWORD"
Shell.RegWrite SecurityKey & "AccessVBOM", 1, "REG_DWORD"



'---- Ouverture de la FICHE CAPE ------>
objExcel.Visible = True
objExcel.Workbooks.Open(PathCape)
Set currentWorkSheet = objExcel.ActiveWorkBook.Worksheets(1)
currentWorkSheet.Activate
'---- Ouverture de la FICHE CAPE ------<

'---------- RELEASE MEMORY --------------------->
Set objExcel = Nothing
Set currentWorkSheet = Nothing
Set Shell = Nothing
Wscript.Quit
'---------- RELEASE MEMORY ---------------------<
Avatar
NS
Oh put....
Merci bcp Alain tu me sors de la panade !!!
Ca marche, wow tu viens de me libérer tu sais pas comment.

merci bcp !! =)
Avatar
Michel Pierron
Re NS;
2 remarques:
Du fait que tu ouvres ton fichier Excel au travers d'un script .vbs, tu n'as
pas besoin de te préoccuper du niveau de la sécurité des macros; cette
restriction est by-passée par cette méthode et tu en as encore moins besoin
si ton ficher ne contient pas de macros.
Si tu modifies le niveau de sécurité après l'ouverture d'une instance Excel,
cette modification n'est pas prise en compte car elle doit intervenir avant
l'ouverture du fichier.

Je t'assure que objExcel.AddIns("Utilitaire d'analyse").Installed = True
fonctionne; donc ton problème vient d'ailleurs.

MP

"NS" a écrit dans le message de news:

rajouté dans le script dont voici le code, même résultat !!
AU SECOURS !

'------------ Définition des
variables ------------------------------------------->

Dim Users, Expert, PathCape
Users = "cpa_serveurusers" 'Ne pas oublier le

'------------ Définition des
variables -------------------------------------------<

'------------ Boîtes de dialogue
INPUT ------------------------------------------->

Expert = InputBox("Entrez les initiales de l'Expert", ":: Ouverture Fiche
CAPE ::")
If IsEmpty(Expert) Then
MsgBox "Vous avez annulé !", 48, "Annulation"
Wscript.Quit
Else
If Len(Expert) = 0 Then
MsgBox "Vous n'avez rien saisi !", 16, "ERREUR !"
Wscript.Quit
End If
End If


'---------------------------------------------------------------------------

------<


'-------------------- Traitement de la Fiche CAPE
EXPERT ------------------------->
PathCape = Users & Expert & "" & "_AXA CS Cape_" & "" & "2005 RéCAPE " &
Ucase(Expert) & ".xls"
Dim objExcel, currentWorkSheet, Activeworkbook, VersionExcel, SecurityKey
Set objExcel = CreateObject("Excel.Application")
objExcel.AddIns("Utilitaire d'analyse").Installed = True
VersionExcel = objExcel.Application.Version
Set Shell = WScript.CreateObject("WScript.Shell")

' Modification sécurité
SecurityKey = "HKEY_CURRENT_USERSoftwareMicrosoftOffice" &
VersionExcel

& "ExcelSecurity"
Shell.RegWrite SecurityKey & "Level", 1, "REG_DWORD"
Shell.RegWrite SecurityKey & "AccessVBOM", 1, "REG_DWORD"



'---- Ouverture de la FICHE CAPE ------>
objExcel.Visible = True
objExcel.Workbooks.Open(PathCape)
Set currentWorkSheet = objExcel.ActiveWorkBook.Worksheets(1)
currentWorkSheet.Activate
'---- Ouverture de la FICHE CAPE ------<

'---------- RELEASE MEMORY --------------------->
Set objExcel = Nothing
Set currentWorkSheet = Nothing
Set Shell = Nothing
Wscript.Quit
'---------- RELEASE MEMORY ---------------------<




Avatar
NS
Alain CROS a réglé mon problème plus haut dans le fil mon code est donc
celui-ci et il fonctionne !

'------------ Définition des
variables ------------------------------------------->

Dim Users, Expert, PathCape
Users = "cpa_serveurusers" 'Ne pas oublier le

'------------ Définition des
variables -------------------------------------------<

'------------ Boîtes de dialogue
INPUT ------------------------------------------->

Expert = InputBox("Entrez les initiales de l'Expert", ":: Ouverture Fiche
CAPE ::")
If IsEmpty(Expert) Then
MsgBox "Vous avez annulé !", 48, "Annulation"
Wscript.Quit
Else
If Len(Expert) = 0 Then
MsgBox "Vous n'avez rien saisi !", 16, "ERREUR !"
Wscript.Quit
End If
End If

'---------------------------------------------------------------------------
------<


'-------------------- Traitement de la Fiche CAPE
EXPERT ------------------------->
PathCape = Users & Expert & "" & "_AXA CS Cape_" & "" & "2005 RéCAPE " &
Ucase(Expert) & ".xls"
Dim objExcel, currentWorkSheet, Activeworkbook, VersionExcel, SecurityKey
Set objExcel = CreateObject("Excel.Application")
With objExcel
If .AddIns("Utilitaire d'analyse").Installed Then
.AddIns("Utilitaire d'analyse").Installed = False
End If
.AddIns("Utilitaire d'analyse").Installed = True
.Workbooks.Open PathCape
.Visible = True
End With

Set currentWorkSheet = objExcel.ActiveWorkBook.Worksheets(1)
currentWorkSheet.Activate

'---------- RELEASE MEMORY --------------------->
Set objExcel = Nothing
Set currentWorkSheet = Nothing
Set Shell = Nothing
Wscript.Quit
'---------- RELEASE MEMORY ---------------------<
1 2