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.

10 réponses

1 2
Avatar
Jean-Claude BELLAMY
Dans le message news: ,
NS s'est ainsi exprimé:

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.



Voici comment je procède pour modifier le niveau de sécurité dans EXCEL afin
de pouvoir exécuter mes scripts VBS :
(j'utilise cela dans SHOWADM.VBS
http://www.bellamyjc.org/fr/strategie.html#SHOWADM)

...
' Création d'une instance de Excel pour obtenir la version en cours
' afin de calculer le nom de la branche dans la BDR
Set oXL = WScript.CreateObject("EXCEL.application")
Version=oXL.Application.Version
oXL.quit

' Modification sécurité
SecurityKey="HKEY_CURRENT_USERSoftwareMicrosoftOffice" & Version &
"ExcelSecurity"
shell.RegWrite SecurityKey & "Level", 2, "REG_DWORD"
shell.RegWrite SecurityKey & "AccessVBOM", 1, "REG_DWORD"
...


NB: certains antivirus (Norton) voient un virus dans ce genre de scripts à
cause de la chaine "AccessVBOM" !

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
NS
"Jean-Claude BELLAMY" a écrit dans le
message de news:
Dans le message news: ,
NS s'est ainsi exprimé:

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.



Voici comment je procède pour modifier le niveau de sécurité dans EXCEL
afin

de pouvoir exécuter mes scripts VBS :
(j'utilise cela dans SHOWADM.VBS
http://www.bellamyjc.org/fr/strategie.html#SHOWADM)

...
' Création d'une instance de Excel pour obtenir la version en cours
' afin de calculer le nom de la branche dans la BDR
Set oXL = WScript.CreateObject("EXCEL.application")
Version=oXL.Application.Version
oXL.quit

' Modification sécurité
SecurityKey="HKEY_CURRENT_USERSoftwareMicrosoftOffice" & Version &
"ExcelSecurity"
shell.RegWrite SecurityKey & "Level", 2, "REG_DWORD"
shell.RegWrite SecurityKey & "AccessVBOM", 1, "REG_DWORD"
...


NB: certains antivirus (Norton) voient un virus dans ce genre de scripts à
cause de la chaine "AccessVBOM" !

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*




J'ai fait. Ca ne change rien. A l'ouverture du fichier via vbs j'ai toujours
#NOM? dans la cellule qui contient la formule.
A l'ouverture via Excel c'est OK.

???


Avatar
Jean-Claude BELLAMY
Dans le message news: ,
NS s'est ainsi exprimé:

[...]
J'ai fait. Ca ne change rien. A l'ouverture du fichier via vbs j'ai
toujours #NOM? dans la cellule qui contient la formule.
A l'ouverture via Excel c'est OK.

???



Fais voir ton VBS !

Personne ici n'a de dons extralucides ! ;-)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
NS
OK ! le voici :

'------------ 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")
VersionExcel = objExcel.Application.Version
Set Shell = WScript.CreateObject("WScript.Shell")

' Modification sécurité
SecurityKey = "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & VersionExcel
& "ExcelSecurity"
Shell.RegWrite SecurityKey & "Level", 2, "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
Jean-Claude BELLAMY
Dans le message news: ,
NS s'est ainsi exprimé:

OK ! le voici :

'------------ Définition des
[...]
Set currentWorkSheet = objExcel.ActiveWorkBook.Worksheets(1)
currentWorkSheet.Activate
'---- Ouverture de la FICHE CAPE ------<


j'ai testé jusque là, (en changeant les chemins, évidemment), çà fonctionne
très bien.
Où est ton pb ?

Quelle est l'erreur ?
Quand se produit-elle ?
Qu'y a-t-il d'autre dans le script ?



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Michel Pierron
Bonjour Jean-Claude;
Tu n'as pas besoin d'ouvrir une instance Excel pour avoir la version:

'// Check Excel.Application existence
If IsNull(RegRead("HKCRExcel.Application")) Then
MsgBox "Excel.Application object not found on this computer !", 48
WScript.Quit
Else
MsgBox Mid(RegRead("HKCRExcel.ApplicationCurVer"), 19)
End If

MP

"Jean-Claude BELLAMY" a écrit dans le
message de news:
Dans le message news: ,
NS s'est ainsi exprimé:

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.



Voici comment je procède pour modifier le niveau de sécurité dans EXCEL
afin

de pouvoir exécuter mes scripts VBS :
(j'utilise cela dans SHOWADM.VBS
http://www.bellamyjc.org/fr/strategie.html#SHOWADM)

...
' Création d'une instance de Excel pour obtenir la version en cours
' afin de calculer le nom de la branche dans la BDR
Set oXL = WScript.CreateObject("EXCEL.application")
Version=oXL.Application.Version
oXL.quit

' Modification sécurité
SecurityKey="HKEY_CURRENT_USERSoftwareMicrosoftOffice" & Version &
"ExcelSecurity"
shell.RegWrite SecurityKey & "Level", 2, "REG_DWORD"
shell.RegWrite SecurityKey & "AccessVBOM", 1, "REG_DWORD"
...


NB: certains antivirus (Norton) voient un virus dans ce genre de scripts à
cause de la chaine "AccessVBOM" !

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*





Avatar
Alain CROS
Bonjour.

Quand on ouvre Excel par CreateObject("Excel.Application"), ni le perso.xls, ni les macros complémentaires ne sont lançés.

Essayer comme ça :

Dim XL, PathCape
PathCape = Users & Expert & "" & "_AXA CS Cape_" & "" & "2005 RéCAPE " & Ucase(Expert) & ".xls"
Set XL = CreateObject("Excel.Application")
With XL
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 XL = Nothing

Alain CROS

"NS" a écrit dans le message de news:
| 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.
|
|
Avatar
Michel Pierron
Bonjour NS;
Ajoute:
objExcel.AddIns("Utilitaire d'analyse").Installed = True

MP

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

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.




Avatar
NS
Il n'ya rien d'autre dans le script, c'est la version complète.
L'erreur il n'y en a pas vraiment mais voilà ce qui se passe :

Dans une cellule j'ai la fonction :

=(SI(L(-1)C;SERIE.JOUR.OUVRE(L(-1)C;3;Férié_2005);""))

Férié_2005 (je sais il y a un accent en trop) étant une plage de cellules
contenant les jours feriés 2005 dans la même feuille Excel plus bas.

Et bien : si le fichier Excel est ouvert avec le script il affiche "#NOM?"
si on rentre une valeur ds LC(-1). Si je laisse cette valeur et enregistre
le fichier et que je l'ouvre avec Excel et bien là "#NOM?" est bien remplacé
par une valeur qui va bien.

Si ce même fichier est ouvert initialement avec Excel, alors si on rentre
une valeur ds LC(-1) et bien le résultat s'affiche normalement ds la cellule
contenant la formule.

Voilà donc ce qui cloche. On dirait que le script ne tient pas compte de
l'Utilitaire d'Analyse...



"Jean-Claude BELLAMY" a écrit dans le
message de news:
Dans le message news: ,
NS s'est ainsi exprimé:

OK ! le voici :

'------------ Définition des
[...]
Set currentWorkSheet = objExcel.ActiveWorkBook.Worksheets(1)
currentWorkSheet.Activate
'---- Ouverture de la FICHE CAPE ------<


j'ai testé jusque là, (en changeant les chemins, évidemment), çà
fonctionne

très bien.
Où est ton pb ?

Quelle est l'erreur ?
Quand se produit-elle ?
Qu'y a-t-il d'autre dans le script ?



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*





Avatar
NS
où donc ? dans le script ?
1 2