Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
.. ObjExcel.Application.Workbooks.Open(C:Program FilesMicrosoft
ObjExcel.Application.Workbooks.Add
Bonjour,
Nos développeurs, dans leur appli en SQL, ont un module requêteur
dont une des possibilités est l'export des données vers Excel. Le
début du code utilisé est celui-là :
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Application.Workbooks.Add
ObjExcel.Application.Workbooks(1).Worksheets(1).Activate
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
ObjExcel.Selection.CurrentRegion.Select
ObjExcel.Selection.ClearContents
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
....
Cela fonctionne "bien" ; le progiciel, après l'activation de la
fonction, lance Excel et crée un classeur avec les données
exportées.
Mais il y a un mais. Je me suis aperçu que les macros complémentaires
qu'elles soient personnelles ou celles de Microsoft (bien que
présentes et cochées dans le menu) ne fonctionnaient pas. J'ai
effectué un test avec une macro complémentaire perso de base (message
"Impossible de trouver la macro Traitement"), et avec la fonction
Fin.Mois (#NOM).
En revanche, si j'enregistre le classeur, quitte Excel, puis j'ouvre de
nouveau ce classeur, là ma macro personnelle complémentaire et celle
"Utilitaire d'analyse" Fin.Mois fonctionnent parfaitement.
Y-a-t-il une astuce (je pense plutôt au niveau code du progiciel en
amont) pour éviter ce léger désagrément ?
Merci pour vos conseils
Steph. D.
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
.. ObjExcel.Application.Workbooks.Open(C:Program FilesMicrosoft
ObjExcel.Application.Workbooks.Add
Bonjour,
Nos développeurs, dans leur appli en SQL, ont un module requêteur
dont une des possibilités est l'export des données vers Excel. Le
début du code utilisé est celui-là :
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Application.Workbooks.Add
ObjExcel.Application.Workbooks(1).Worksheets(1).Activate
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
ObjExcel.Selection.CurrentRegion.Select
ObjExcel.Selection.ClearContents
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
....
Cela fonctionne "bien" ; le progiciel, après l'activation de la
fonction, lance Excel et crée un classeur avec les données
exportées.
Mais il y a un mais. Je me suis aperçu que les macros complémentaires
qu'elles soient personnelles ou celles de Microsoft (bien que
présentes et cochées dans le menu) ne fonctionnaient pas. J'ai
effectué un test avec une macro complémentaire perso de base (message
"Impossible de trouver la macro Traitement"), et avec la fonction
Fin.Mois (#NOM).
En revanche, si j'enregistre le classeur, quitte Excel, puis j'ouvre de
nouveau ce classeur, là ma macro personnelle complémentaire et celle
"Utilitaire d'analyse" Fin.Mois fonctionnent parfaitement.
Y-a-t-il une astuce (je pense plutôt au niveau code du progiciel en
amont) pour éviter ce léger désagrément ?
Merci pour vos conseils
Steph. D.
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
.. ObjExcel.Application.Workbooks.Open(C:Program FilesMicrosoft
ObjExcel.Application.Workbooks.Add
Bonjour,
Nos développeurs, dans leur appli en SQL, ont un module requêteur
dont une des possibilités est l'export des données vers Excel. Le
début du code utilisé est celui-là :
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Application.Workbooks.Add
ObjExcel.Application.Workbooks(1).Worksheets(1).Activate
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
ObjExcel.Selection.CurrentRegion.Select
ObjExcel.Selection.ClearContents
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
....
Cela fonctionne "bien" ; le progiciel, après l'activation de la
fonction, lance Excel et crée un classeur avec les données
exportées.
Mais il y a un mais. Je me suis aperçu que les macros complémentaires
qu'elles soient personnelles ou celles de Microsoft (bien que
présentes et cochées dans le menu) ne fonctionnaient pas. J'ai
effectué un test avec une macro complémentaire perso de base (message
"Impossible de trouver la macro Traitement"), et avec la fonction
Fin.Mois (#NOM).
En revanche, si j'enregistre le classeur, quitte Excel, puis j'ouvre de
nouveau ce classeur, là ma macro personnelle complémentaire et celle
"Utilitaire d'analyse" Fin.Mois fonctionnent parfaitement.
Y-a-t-il une astuce (je pense plutôt au niveau code du progiciel en
amont) pour éviter ce léger désagrément ?
Merci pour vos conseils
Steph. D.
Bonjour DesseJ,
J'utiliserais plutôt un code comme celui-ci :
ATTENTION: ATPVBAEN.XLA -> C'est le fichier Anglais
Il doit bien en avoir un français ATPVBAFR.XLA 'à vérifier!
Dim ObjExcel As Application
Dim Wk As Workbook, Sh As Worksheet
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.close True
'Ferme l'instance excel.
ObjExcel.Quit
Salutations!
"DesseJ" a écrit dans le message de news:
Bonjour,
Nos développeurs, dans leur appli en SQL, ont un module requêteur
dont une des possibilités est l'export des données vers Excel. Le
début du code utilisé est celui-là :
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Application.Workbooks.Add
ObjExcel.Application.Workbooks(1).Worksheets(1).Activate
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
ObjExcel.Selection.CurrentRegion.Select
ObjExcel.Selection.ClearContents
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
....
Cela fonctionne "bien" ; le progiciel, après l'activation de la
fonction, lance Excel et crée un classeur avec les données
exportées.
Mais il y a un mais. Je me suis aperçu que les macros complémentaires
qu'elles soient personnelles ou celles de Microsoft (bien que
présentes et cochées dans le menu) ne fonctionnaient pas. J'ai
effectué un test avec une macro complémentaire perso de base (message
"Impossible de trouver la macro Traitement"), et avec la fonction
Fin.Mois (#NOM).
En revanche, si j'enregistre le classeur, quitte Excel, puis j'ouvre de
nouveau ce classeur, là ma macro personnelle complémentaire et celle
"Utilitaire d'analyse" Fin.Mois fonctionnent parfaitement.
Y-a-t-il une astuce (je pense plutôt au niveau code du progiciel en
amont) pour éviter ce léger désagrément ?
Merci pour vos conseils
Steph. D.
Bonjour DesseJ,
J'utiliserais plutôt un code comme celui-ci :
ATTENTION: ATPVBAEN.XLA -> C'est le fichier Anglais
Il doit bien en avoir un français ATPVBAFR.XLA 'à vérifier!
Dim ObjExcel As Application
Dim Wk As Workbook, Sh As Worksheet
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.close True
'Ferme l'instance excel.
ObjExcel.Quit
Salutations!
"DesseJ" <DesseJ@caramail.com> a écrit dans le message de news: 1137075608.047786.125440@o13g2000cwo.googlegroups.com...
Bonjour,
Nos développeurs, dans leur appli en SQL, ont un module requêteur
dont une des possibilités est l'export des données vers Excel. Le
début du code utilisé est celui-là :
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Application.Workbooks.Add
ObjExcel.Application.Workbooks(1).Worksheets(1).Activate
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
ObjExcel.Selection.CurrentRegion.Select
ObjExcel.Selection.ClearContents
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
....
Cela fonctionne "bien" ; le progiciel, après l'activation de la
fonction, lance Excel et crée un classeur avec les données
exportées.
Mais il y a un mais. Je me suis aperçu que les macros complémentaires
qu'elles soient personnelles ou celles de Microsoft (bien que
présentes et cochées dans le menu) ne fonctionnaient pas. J'ai
effectué un test avec une macro complémentaire perso de base (message
"Impossible de trouver la macro Traitement"), et avec la fonction
Fin.Mois (#NOM).
En revanche, si j'enregistre le classeur, quitte Excel, puis j'ouvre de
nouveau ce classeur, là ma macro personnelle complémentaire et celle
"Utilitaire d'analyse" Fin.Mois fonctionnent parfaitement.
Y-a-t-il une astuce (je pense plutôt au niveau code du progiciel en
amont) pour éviter ce léger désagrément ?
Merci pour vos conseils
Steph. D.
Bonjour DesseJ,
J'utiliserais plutôt un code comme celui-ci :
ATTENTION: ATPVBAEN.XLA -> C'est le fichier Anglais
Il doit bien en avoir un français ATPVBAFR.XLA 'à vérifier!
Dim ObjExcel As Application
Dim Wk As Workbook, Sh As Worksheet
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.close True
'Ferme l'instance excel.
ObjExcel.Quit
Salutations!
"DesseJ" a écrit dans le message de news:
Bonjour,
Nos développeurs, dans leur appli en SQL, ont un module requêteur
dont une des possibilités est l'export des données vers Excel. Le
début du code utilisé est celui-là :
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Application.Workbooks.Add
ObjExcel.Application.Workbooks(1).Worksheets(1).Activate
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
ObjExcel.Selection.CurrentRegion.Select
ObjExcel.Selection.ClearContents
ObjExcel.Application.Workbooks(1).Worksheets(1).Range("A1").Select
....
Cela fonctionne "bien" ; le progiciel, après l'activation de la
fonction, lance Excel et crée un classeur avec les données
exportées.
Mais il y a un mais. Je me suis aperçu que les macros complémentaires
qu'elles soient personnelles ou celles de Microsoft (bien que
présentes et cochées dans le menu) ne fonctionnaient pas. J'ai
effectué un test avec une macro complémentaire perso de base (message
"Impossible de trouver la macro Traitement"), et avec la fonction
Fin.Mois (#NOM).
En revanche, si j'enregistre le classeur, quitte Excel, puis j'ouvre de
nouveau ce classeur, là ma macro personnelle complémentaire et celle
"Utilitaire d'analyse" Fin.Mois fonctionnent parfaitement.
Y-a-t-il une astuce (je pense plutôt au niveau code du progiciel en
amont) pour éviter ce léger désagrément ?
Merci pour vos conseils
Steph. D.
Bonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!
Bonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!
Bonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!
Bonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!
Bonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!
Bonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!
Bonjour Mousnynao,
Voici j'ai fait le test suivant :
J'ai utilisé le code du message précédent en prenant soin de
désactiver les 2 dernières lignes de code :
- Enregistrement du fichier et
- Fermeture de l'instance.
Afin de m'assurer de la présence de la référence...:
J'ai ouvert la fenêtre de l'éditeur de macro et j'ai vérifié : la macro
complémentaire était présente. (barre de menus/outils/références)
De plus, le code s'exécute sans erreur. Difficile de penser que ce
code puisse générer une erreur même sur des versions
antérieures d'Excel!
| étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
| d'analyse" avant la création du premier classeur?
Selon moi, c'est l'inverse qui serait étrange!!!!!!!
Les lignes de code classique pour charger une référence sont :
ThisWorkbook.VBProject.References.AddFromFile(...) or addfromguid()
ou
Activeworkbook.VBProject.References...
ou
Workbooks("Nomclasseur.xls"). VBProject.References....
Il faut seulement se rappeler que la fonction première de l'ajout d'une référence
à un classeur est de permettre à l'usager de CE CLASSEUR d'avoir recours
à des fonctions (ressources) que l'application Excel de base ne lui offre pas.
Une référence dessert un classeur particulier ou des classeurs en général,
mais n'apporte rien à l'objet "Application" lui-même.
Voici une copie intégrale du code testé en fichier. vbs
(je réitère l'avertissement au sujet du fichier "ATPVBAEN.XLA"
qui rend accessible les fonctions de la macro complémentaire
"Utilitaire d'analyse" en langue anglaise. Sur mon ordi, je n'ai
pas le fichier de langue française, je crois : "ATPVBAFR.XLA"
'-------------------------------
Dim ObjExcel
Dim Wk
Dim Sh
Set ObjExcel = WScript.CreateObject ("EXCEL.application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile (_
"C : Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets (1)
With Sh
..Range("A1"). CurrentRegion.ClearContents
..Activate
End With
'Ferme le classeur en sauvegardant les données ou utilise SaveAs
'Wk.Close True
' Ferme l'instance Excel.
'ObjExcel.Quit
' -- -- -- -- ------ ------ ------ -----
Salutations!
"Mousnynao" a écrit dans le message de news:
Bonjour,
j'ai refait mes devoirs et hélas sous Office 10, votre code ne fonctionne pas
avec mon script vbs, je réussi à ouvrir une macro complémentaire qui
vérifie tous ça.
donc voici la syntaxe :
'-------------------------------------------------------------------------------------------------------------------------------
' Création de l'application "Excel"
Set xlApp = CreateObject("Excel.Application")
'Paramètres d'Excel
'Défini le nombre de feuille à la création d'un "nouveau classeur"
xlApp.SheetsInNewWorkbook = 1
'Ouvre la macro complémentaire personnalisé
xlApp.Workbooks.Open("D:Program FilesMicrosoft
OfficeOffice10MacrolibMenuPerso.xla")
' Création du classeur "nouveau classeur"
Set xlBook = xlApp.WorkBooks.Add
'-------------------------------------------------------------------------------------------------------------------------------
! étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
d'analyse" avant la création du premier classeur ?
Amicalement
mousnynaoBonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!
Bonjour Mousnynao,
Voici j'ai fait le test suivant :
J'ai utilisé le code du message précédent en prenant soin de
désactiver les 2 dernières lignes de code :
- Enregistrement du fichier et
- Fermeture de l'instance.
Afin de m'assurer de la présence de la référence...:
J'ai ouvert la fenêtre de l'éditeur de macro et j'ai vérifié : la macro
complémentaire était présente. (barre de menus/outils/références)
De plus, le code s'exécute sans erreur. Difficile de penser que ce
code puisse générer une erreur même sur des versions
antérieures d'Excel!
| étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
| d'analyse" avant la création du premier classeur?
Selon moi, c'est l'inverse qui serait étrange!!!!!!!
Les lignes de code classique pour charger une référence sont :
ThisWorkbook.VBProject.References.AddFromFile(...) or addfromguid()
ou
Activeworkbook.VBProject.References...
ou
Workbooks("Nomclasseur.xls"). VBProject.References....
Il faut seulement se rappeler que la fonction première de l'ajout d'une référence
à un classeur est de permettre à l'usager de CE CLASSEUR d'avoir recours
à des fonctions (ressources) que l'application Excel de base ne lui offre pas.
Une référence dessert un classeur particulier ou des classeurs en général,
mais n'apporte rien à l'objet "Application" lui-même.
Voici une copie intégrale du code testé en fichier. vbs
(je réitère l'avertissement au sujet du fichier "ATPVBAEN.XLA"
qui rend accessible les fonctions de la macro complémentaire
"Utilitaire d'analyse" en langue anglaise. Sur mon ordi, je n'ai
pas le fichier de langue française, je crois : "ATPVBAFR.XLA"
'-------------------------------
Dim ObjExcel
Dim Wk
Dim Sh
Set ObjExcel = WScript.CreateObject ("EXCEL.application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile (_
"C : Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets (1)
With Sh
..Range("A1"). CurrentRegion.ClearContents
..Activate
End With
'Ferme le classeur en sauvegardant les données ou utilise SaveAs
'Wk.Close True
' Ferme l'instance Excel.
'ObjExcel.Quit
' -- -- -- -- ------ ------ ------ -----
Salutations!
"Mousnynao" <Mousnynao@discussions.microsoft.com> a écrit dans le message de news:
8F3159CC-1ED7-4567-BC02-358A8EB8BC30@microsoft.com...
Bonjour,
j'ai refait mes devoirs et hélas sous Office 10, votre code ne fonctionne pas
avec mon script vbs, je réussi à ouvrir une macro complémentaire qui
vérifie tous ça.
donc voici la syntaxe :
'-------------------------------------------------------------------------------------------------------------------------------
' Création de l'application "Excel"
Set xlApp = CreateObject("Excel.Application")
'Paramètres d'Excel
'Défini le nombre de feuille à la création d'un "nouveau classeur"
xlApp.SheetsInNewWorkbook = 1
'Ouvre la macro complémentaire personnalisé
xlApp.Workbooks.Open("D:Program FilesMicrosoft
OfficeOffice10MacrolibMenuPerso.xla")
' Création du classeur "nouveau classeur"
Set xlBook = xlApp.WorkBooks.Add
'-------------------------------------------------------------------------------------------------------------------------------
! étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
d'analyse" avant la création du premier classeur ?
Amicalement
mousnynao
Bonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!
Bonjour Mousnynao,
Voici j'ai fait le test suivant :
J'ai utilisé le code du message précédent en prenant soin de
désactiver les 2 dernières lignes de code :
- Enregistrement du fichier et
- Fermeture de l'instance.
Afin de m'assurer de la présence de la référence...:
J'ai ouvert la fenêtre de l'éditeur de macro et j'ai vérifié : la macro
complémentaire était présente. (barre de menus/outils/références)
De plus, le code s'exécute sans erreur. Difficile de penser que ce
code puisse générer une erreur même sur des versions
antérieures d'Excel!
| étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
| d'analyse" avant la création du premier classeur?
Selon moi, c'est l'inverse qui serait étrange!!!!!!!
Les lignes de code classique pour charger une référence sont :
ThisWorkbook.VBProject.References.AddFromFile(...) or addfromguid()
ou
Activeworkbook.VBProject.References...
ou
Workbooks("Nomclasseur.xls"). VBProject.References....
Il faut seulement se rappeler que la fonction première de l'ajout d'une référence
à un classeur est de permettre à l'usager de CE CLASSEUR d'avoir recours
à des fonctions (ressources) que l'application Excel de base ne lui offre pas.
Une référence dessert un classeur particulier ou des classeurs en général,
mais n'apporte rien à l'objet "Application" lui-même.
Voici une copie intégrale du code testé en fichier. vbs
(je réitère l'avertissement au sujet du fichier "ATPVBAEN.XLA"
qui rend accessible les fonctions de la macro complémentaire
"Utilitaire d'analyse" en langue anglaise. Sur mon ordi, je n'ai
pas le fichier de langue française, je crois : "ATPVBAFR.XLA"
'-------------------------------
Dim ObjExcel
Dim Wk
Dim Sh
Set ObjExcel = WScript.CreateObject ("EXCEL.application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile (_
"C : Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets (1)
With Sh
..Range("A1"). CurrentRegion.ClearContents
..Activate
End With
'Ferme le classeur en sauvegardant les données ou utilise SaveAs
'Wk.Close True
' Ferme l'instance Excel.
'ObjExcel.Quit
' -- -- -- -- ------ ------ ------ -----
Salutations!
"Mousnynao" a écrit dans le message de news:
Bonjour,
j'ai refait mes devoirs et hélas sous Office 10, votre code ne fonctionne pas
avec mon script vbs, je réussi à ouvrir une macro complémentaire qui
vérifie tous ça.
donc voici la syntaxe :
'-------------------------------------------------------------------------------------------------------------------------------
' Création de l'application "Excel"
Set xlApp = CreateObject("Excel.Application")
'Paramètres d'Excel
'Défini le nombre de feuille à la création d'un "nouveau classeur"
xlApp.SheetsInNewWorkbook = 1
'Ouvre la macro complémentaire personnalisé
xlApp.Workbooks.Open("D:Program FilesMicrosoft
OfficeOffice10MacrolibMenuPerso.xla")
' Création du classeur "nouveau classeur"
Set xlBook = xlApp.WorkBooks.Add
'-------------------------------------------------------------------------------------------------------------------------------
! étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
d'analyse" avant la création du premier classeur ?
Amicalement
mousnynaoBonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!
Bonjour Mousnynao,
Voici j'ai fait le test suivant :
J'ai utilisé le code du message précédent en prenant soin de
désactiver les 2 dernières lignes de code :
- Enregistrement du fichier et
- Fermeture de l'instance.
Afin de m'assurer de la présence de la référence...:
J'ai ouvert la fenêtre de l'éditeur de macro et j'ai vérifié : la macro
complémentaire était présente. (barre de menus/outils/références)
De plus, le code s'exécute sans erreur. Difficile de penser que ce
code puisse générer une erreur même sur des versions
antérieures d'Excel!
| étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
| d'analyse" avant la création du premier classeur?
Selon moi, c'est l'inverse qui serait étrange!!!!!!!
Les lignes de code classique pour charger une référence sont :
ThisWorkbook.VBProject.References.AddFromFile(...) or addfromguid()
ou
Activeworkbook.VBProject.References...
ou
Workbooks("Nomclasseur.xls"). VBProject.References....
Il faut seulement se rappeler que la fonction première de l'ajout d'une référence
à un classeur est de permettre à l'usager de CE CLASSEUR d'avoir recours
à des fonctions (ressources) que l'application Excel de base ne lui offre pas.
Une référence dessert un classeur particulier ou des classeurs en général,
mais n'apporte rien à l'objet "Application" lui-même.
Voici une copie intégrale du code testé en fichier. vbs
(je réitère l'avertissement au sujet du fichier "ATPVBAEN.XLA"
qui rend accessible les fonctions de la macro complémentaire
"Utilitaire d'analyse" en langue anglaise. Sur mon ordi, je n'ai
pas le fichier de langue française, je crois : "ATPVBAFR.XLA"
'-------------------------------
Dim ObjExcel
Dim Wk
Dim Sh
Set ObjExcel = WScript.CreateObject ("EXCEL.application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile (_
"C : Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets (1)
With Sh
..Range("A1"). CurrentRegion.ClearContents
..Activate
End With
'Ferme le classeur en sauvegardant les données ou utilise SaveAs
'Wk.Close True
' Ferme l'instance Excel.
'ObjExcel.Quit
' -- -- -- -- ------ ------ ------ -----
Salutations!
"Mousnynao" a écrit dans le message de news:
Bonjour,
j'ai refait mes devoirs et hélas sous Office 10, votre code ne fonctionne pas
avec mon script vbs, je réussi à ouvrir une macro complémentaire qui
vérifie tous ça.
donc voici la syntaxe :
'-------------------------------------------------------------------------------------------------------------------------------
' Création de l'application "Excel"
Set xlApp = CreateObject("Excel.Application")
'Paramètres d'Excel
'Défini le nombre de feuille à la création d'un "nouveau classeur"
xlApp.SheetsInNewWorkbook = 1
'Ouvre la macro complémentaire personnalisé
xlApp.Workbooks.Open("D:Program FilesMicrosoft
OfficeOffice10MacrolibMenuPerso.xla")
' Création du classeur "nouveau classeur"
Set xlBook = xlApp.WorkBooks.Add
'-------------------------------------------------------------------------------------------------------------------------------
! étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
d'analyse" avant la création du premier classeur ?
Amicalement
mousnynaoBonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!
Bonjour Mousnynao,
Voici j'ai fait le test suivant :
J'ai utilisé le code du message précédent en prenant soin de
désactiver les 2 dernières lignes de code :
- Enregistrement du fichier et
- Fermeture de l'instance.
Afin de m'assurer de la présence de la référence...:
J'ai ouvert la fenêtre de l'éditeur de macro et j'ai vérifié : la macro
complémentaire était présente. (barre de menus/outils/références)
De plus, le code s'exécute sans erreur. Difficile de penser que ce
code puisse générer une erreur même sur des versions
antérieures d'Excel!
| étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
| d'analyse" avant la création du premier classeur?
Selon moi, c'est l'inverse qui serait étrange!!!!!!!
Les lignes de code classique pour charger une référence sont :
ThisWorkbook.VBProject.References.AddFromFile(...) or addfromguid()
ou
Activeworkbook.VBProject.References...
ou
Workbooks("Nomclasseur.xls"). VBProject.References....
Il faut seulement se rappeler que la fonction première de l'ajout d'une référence
à un classeur est de permettre à l'usager de CE CLASSEUR d'avoir recours
à des fonctions (ressources) que l'application Excel de base ne lui offre pas.
Une référence dessert un classeur particulier ou des classeurs en général,
mais n'apporte rien à l'objet "Application" lui-même.
Voici une copie intégrale du code testé en fichier. vbs
(je réitère l'avertissement au sujet du fichier "ATPVBAEN.XLA"
qui rend accessible les fonctions de la macro complémentaire
"Utilitaire d'analyse" en langue anglaise. Sur mon ordi, je n'ai
pas le fichier de langue française, je crois : "ATPVBAFR.XLA"
'-------------------------------
Dim ObjExcel
Dim Wk
Dim Sh
Set ObjExcel = WScript.CreateObject ("EXCEL.application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile (_
"C : Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets (1)
With Sh
..Range("A1"). CurrentRegion.ClearContents
..Activate
End With
'Ferme le classeur en sauvegardant les données ou utilise SaveAs
'Wk.Close True
' Ferme l'instance Excel.
'ObjExcel.Quit
' -- -- -- -- ------ ------ ------ -----
Salutations!
"Mousnynao" <Mousnynao@discussions.microsoft.com> a écrit dans le message de news:
8F3159CC-1ED7-4567-BC02-358A8EB8BC30@microsoft.com...
Bonjour,
j'ai refait mes devoirs et hélas sous Office 10, votre code ne fonctionne pas
avec mon script vbs, je réussi à ouvrir une macro complémentaire qui
vérifie tous ça.
donc voici la syntaxe :
'-------------------------------------------------------------------------------------------------------------------------------
' Création de l'application "Excel"
Set xlApp = CreateObject("Excel.Application")
'Paramètres d'Excel
'Défini le nombre de feuille à la création d'un "nouveau classeur"
xlApp.SheetsInNewWorkbook = 1
'Ouvre la macro complémentaire personnalisé
xlApp.Workbooks.Open("D:Program FilesMicrosoft
OfficeOffice10MacrolibMenuPerso.xla")
' Création du classeur "nouveau classeur"
Set xlBook = xlApp.WorkBooks.Add
'-------------------------------------------------------------------------------------------------------------------------------
! étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
d'analyse" avant la création du premier classeur ?
Amicalement
mousnynao
Bonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!
Bonjour Mousnynao,
Voici j'ai fait le test suivant :
J'ai utilisé le code du message précédent en prenant soin de
désactiver les 2 dernières lignes de code :
- Enregistrement du fichier et
- Fermeture de l'instance.
Afin de m'assurer de la présence de la référence...:
J'ai ouvert la fenêtre de l'éditeur de macro et j'ai vérifié : la macro
complémentaire était présente. (barre de menus/outils/références)
De plus, le code s'exécute sans erreur. Difficile de penser que ce
code puisse générer une erreur même sur des versions
antérieures d'Excel!
| étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
| d'analyse" avant la création du premier classeur?
Selon moi, c'est l'inverse qui serait étrange!!!!!!!
Les lignes de code classique pour charger une référence sont :
ThisWorkbook.VBProject.References.AddFromFile(...) or addfromguid()
ou
Activeworkbook.VBProject.References...
ou
Workbooks("Nomclasseur.xls"). VBProject.References....
Il faut seulement se rappeler que la fonction première de l'ajout d'une référence
à un classeur est de permettre à l'usager de CE CLASSEUR d'avoir recours
à des fonctions (ressources) que l'application Excel de base ne lui offre pas.
Une référence dessert un classeur particulier ou des classeurs en général,
mais n'apporte rien à l'objet "Application" lui-même.
Voici une copie intégrale du code testé en fichier. vbs
(je réitère l'avertissement au sujet du fichier "ATPVBAEN.XLA"
qui rend accessible les fonctions de la macro complémentaire
"Utilitaire d'analyse" en langue anglaise. Sur mon ordi, je n'ai
pas le fichier de langue française, je crois : "ATPVBAFR.XLA"
'-------------------------------
Dim ObjExcel
Dim Wk
Dim Sh
Set ObjExcel = WScript.CreateObject ("EXCEL.application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile (_
"C : Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets (1)
With Sh
..Range("A1"). CurrentRegion.ClearContents
..Activate
End With
'Ferme le classeur en sauvegardant les données ou utilise SaveAs
'Wk.Close True
' Ferme l'instance Excel.
'ObjExcel.Quit
' -- -- -- -- ------ ------ ------ -----
Salutations!
"Mousnynao" a écrit dans le message de news:
Bonjour,
j'ai refait mes devoirs et hélas sous Office 10, votre code ne fonctionne pas
avec mon script vbs, je réussi à ouvrir une macro complémentaire qui
vérifie tous ça.
donc voici la syntaxe :
'-------------------------------------------------------------------------------------------------------------------------------
' Création de l'application "Excel"
Set xlApp = CreateObject("Excel.Application")
'Paramètres d'Excel
'Défini le nombre de feuille à la création d'un "nouveau classeur"
xlApp.SheetsInNewWorkbook = 1
'Ouvre la macro complémentaire personnalisé
xlApp.Workbooks.Open("D:Program FilesMicrosoft
OfficeOffice10MacrolibMenuPerso.xla")
' Création du classeur "nouveau classeur"
Set xlBook = xlApp.WorkBooks.Add
'-------------------------------------------------------------------------------------------------------------------------------
! étrangement je n'arrive pas à charger la macro complémentaire "Utilitaire
d'analyse" avant la création du premier classeur ?
Amicalement
mousnynaoBonjour Mousnynao
J'ai testé ceci dans un module d'access, la seule chose que j'ai
modifiée est la déclaration des variables pour ne pas avoir à
charger la référence à Excel. ( late binding) et cela fonctionne
très bien.
| vous devez d'abord charger la référence
| [Microsoft Visual Basic for Applications Extensibility].
Pour ce qui est de ceci : Cela n'a aucun rapport avec la cas
présenté ici.
Voici le code ....
Dim ObjExcel As Object
Dim Wk As Object, Sh As Object
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Caption = "Export"
ObjExcel.Visible = True ' Or False ...
Set Wk = ObjExcel.Application.Workbooks.Add
'Chargement de la macro complémentaire Utilitaire d'analyse
Wk.VBProject.References.AddFromFile ( _
"C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA")
Set Sh = Wk.Worksheets(1)
With Sh
.Range("A1").CurrentRegion.ClearContents
.Activate
End With
'Ferme le classeur en sauvegardant les données ou utlises SaveAs
Wk.Close True
'Ferme l'instance excel.
ObjExcel.Quit
Ce code devrait fonctionner très bien aussi dans un fichier .VBS
A ) Il ne faut pas déclarer le type des variables
B ) utiliser ceci pour créer l'instance d'excel
Set ObjExcel = WScript.CreateObject("EXCEL.application")
en lieu et place de ceci :
Set ObjExcel = CreateObject("Excel.Application")
Salutations!