OVH Cloud OVH Cloud

Vba: suite à réinstal PC CreateObject("Word.Application") HS

16 réponses
Avatar
Jac
Bonjour à tous,

"j'avais" mis en place une procédure qui fonctionnait très bien et suite à
une réinstallation de PC et office XP, il y a des "choses" qui ne veulent
plus fonctionner...
_________________________________________________________
Dim Wd As Object
Dim Dc As Document
...
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Open(NOM_D_U_MODELE)
Dc.SaveAs Filename:=NOM_DU_FICHIER, FileFormat:=wdFormatDocument
...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Au lancement de la macro
je une erreur de compilation "Membre de méthode ou de données introuvable"
par rapport à l'instruction
Dc.SaveAs Filename:=NOM_DU_FICHIER, FileFormat:=wdFormatDocument
donc je désactive pour faire fonctionner le reste de la macro...

Quand il exécute
Set Dc = Wd.Documents.Open(NOM_D_U_MODELE)
il me renvoie Erreur d'exécution '13' "Incompatibilité de type
mais il ouvre quand même le fichier, donc avec un "On error resume next"
j'arrive à ne plus avoir ce message d'erreur inutile.

Pour quoi tant de haine ?
Dans les références VBAProject, il y a office 10, Word 10, Excel 10, vba,
OLE, Forms 2.0, DAO 3.6, ActiveX 2.8.
Manquerait-il quelque chose ?

Merci d'avance à qui pourra me dépanner.

Jac

6 réponses

1 2
Avatar
MichDenis
Le seul problème :

Dans les déclarations des objets :

| Dim Wd As Object
| Dim Dc As Document

Tu ne peux pas utiliser Dc as Document à moins que que tu n'aies
déclarer la bibliothèque Word comme Référence(bibliothèque)

Conséquences : modifie de cette manière :

Dim Wd As Object
Dim Dc As Object

et ça devrait aller ...!


"Jac" a écrit dans le message de news: 4613834a$0$17232$
Bonjour à tous,

"j'avais" mis en place une procédure qui fonctionnait très bien et suite à
une réinstallation de PC et office XP, il y a des "choses" qui ne veulent
plus fonctionner...
_________________________________________________________
Dim Wd As Object
Dim Dc As Document
...
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Open(NOM_D_U_MODELE)
Dc.SaveAs Filename:=NOM_DU_FICHIER, FileFormat:=wdFormatDocument
...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Au lancement de la macro
je une erreur de compilation "Membre de méthode ou de données introuvable"
par rapport à l'instruction
Dc.SaveAs Filename:=NOM_DU_FICHIER, FileFormat:=wdFormatDocument
donc je désactive pour faire fonctionner le reste de la macro...

Quand il exécute
Set Dc = Wd.Documents.Open(NOM_D_U_MODELE)
il me renvoie Erreur d'exécution '13' "Incompatibilité de type
mais il ouvre quand même le fichier, donc avec un "On error resume next"
j'arrive à ne plus avoir ce message d'erreur inutile.

Pour quoi tant de haine ?
Dans les références VBAProject, il y a office 10, Word 10, Excel 10, vba,
OLE, Forms 2.0, DAO 3.6, ActiveX 2.8.
Manquerait-il quelque chose ?

Merci d'avance à qui pourra me dépanner.

Jac
Avatar
papou
Bonjour Denis
Il a bien indiqué dans son message d'origine qu'il avait ajouté les
références à la bibliothèque.
D'où ma 1ère réponse...

Cordialement
Pascal

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

Le seul problème :

Dans les déclarations des objets :

| Dim Wd As Object
| Dim Dc As Document

Tu ne peux pas utiliser Dc as Document à moins que que tu n'aies
déclarer la bibliothèque Word comme Référence(bibliothèque)

Conséquences : modifie de cette manière :

Dim Wd As Object
Dim Dc As Object

et ça devrait aller ...!


"Jac" a écrit dans le message de news:
4613834a$0$17232$
Bonjour à tous,

"j'avais" mis en place une procédure qui fonctionnait très bien et suite à
une réinstallation de PC et office XP, il y a des "choses" qui ne veulent
plus fonctionner...
_________________________________________________________
Dim Wd As Object
Dim Dc As Document
...
Set Wd = CreateObject("Word.Application")
Wd.Visible = True
Set Dc = Wd.Documents.Open(NOM_D_U_MODELE)
Dc.SaveAs Filename:=NOM_DU_FICHIER, FileFormat:=wdFormatDocument
...
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Au lancement de la macro
je une erreur de compilation "Membre de méthode ou de données introuvable"
par rapport à l'instruction
Dc.SaveAs Filename:=NOM_DU_FICHIER, FileFormat:=wdFormatDocument
donc je désactive pour faire fonctionner le reste de la macro...

Quand il exécute
Set Dc = Wd.Documents.Open(NOM_D_U_MODELE)
il me renvoie Erreur d'exécution '13' "Incompatibilité de type
mais il ouvre quand même le fichier, donc avec un "On error resume next"
j'arrive à ne plus avoir ce message d'erreur inutile.

Pour quoi tant de haine ?
Dans les références VBAProject, il y a office 10, Word 10, Excel 10, vba,
OLE, Forms 2.0, DAO 3.6, ActiveX 2.8.
Manquerait-il quelque chose ?

Merci d'avance à qui pourra me dépanner.

Jac





Avatar
MichDenis
| Il a bien indiqué dans son message d'origine qu'il avait ajouté les
| références à la bibliothèque.


Si tel est le cas, c'est quand même une manière étrange
de déclarer les variables objet dont la procédure a besoin
lorsque la bibliothèque est déjà chargée.
Avatar
Jac
Merci à tous les contributeurs, mais ça va, ça va pu, et ça recommence...

Quan j'ai un
Set Dc = Wd.Documents.add(NOM_DU_FICHIER)
ou
Set Dc = Wd.Documents.add(NOM_DU_MODELE)

le fichier s'ouvre et s'appelle DocumentX.
Ça me convient et c'est normal.

Mais quand je veux ouvrir "normalement" un *.doc pour
qu'il s'ouvre sous son nom original, avec
Set Dc = Wd.Documents.open(NOM_DU_FICHIER)
Excel rencontre un problème et se ferme !!!

Est-ce cette instruction
Set Dc = Wd.Documents.open(NOM_DU_FICHIER)
qui est en cause ou a-t-elle une autre syntaxe ?
Avatar
papou
Re
Si tu as bien ce départ, il n'y a aucune raison pour que ça ne marche pas :

Dim NOM_DU_MODELE As String
NOM_DU_MODELE = "U:DiekirchTextes_NiCaution.dot"
Dim NOM_DU_FICHIER As String
NOM_DU_FICHIER = "C:toto.doc"
'Ajout de la référence à
'Microsoft Word xx.0 Object Library
'remplacer xx par le numéro de version installé

Dim AppWrd As Word.Application
Set AppWrd = New Word.Application
AppWrd.Visible = True
AppWrd.Documents.Add Template:= NOM_DU_MODELE
'ou
'AppWrd.Documents.Open NOM_DU_FICHIER

Cordialement
Pascal

"Jac" a écrit dans le message de news:
4613ac49$0$3194$
Merci à tous les contributeurs, mais ça va, ça va pu, et ça recommence...

Quan j'ai un
Set Dc = Wd.Documents.add(NOM_DU_FICHIER)
ou
Set Dc = Wd.Documents.add(NOM_DU_MODELE)

le fichier s'ouvre et s'appelle DocumentX.
Ça me convient et c'est normal.

Mais quand je veux ouvrir "normalement" un *.doc pour
qu'il s'ouvre sous son nom original, avec
Set Dc = Wd.Documents.open(NOM_DU_FICHIER)
Excel rencontre un problème et se ferme !!!

Est-ce cette instruction
Set Dc = Wd.Documents.open(NOM_DU_FICHIER)
qui est en cause ou a-t-elle une autre syntaxe ?



Avatar
MichDenis
Enlève ta bibliothèque à Word en la décochant
dans la fenêtre Outils / références /
Comme ça la procédure va pouvoir s'exécuter
normalement peu importe la version d'office sur
lequel la macro tournera ...

et voici le code pour ouvrir un fichier word ...
'------------------------
Sub test()
Dim Wd As Object, Dc As Object
Set Wd = CreateObject("Word.Application")
Wd.Visible = True ' Or False selon ton bon vouloir !
Set Dc = Wd.documents.Open("c:Denis.doc")
End Sub
'------------------------



"Jac" a écrit dans le message de news: 4613ac49$0$3194$
Merci à tous les contributeurs, mais ça va, ça va pu, et ça recommence...

Quan j'ai un
Set Dc = Wd.Documents.add(NOM_DU_FICHIER)
ou
Set Dc = Wd.Documents.add(NOM_DU_MODELE)

le fichier s'ouvre et s'appelle DocumentX.
Ça me convient et c'est normal.

Mais quand je veux ouvrir "normalement" un *.doc pour
qu'il s'ouvre sous son nom original, avec
Set Dc = Wd.Documents.open(NOM_DU_FICHIER)
Excel rencontre un problème et se ferme !!!

Est-ce cette instruction
Set Dc = Wd.Documents.open(NOM_DU_FICHIER)
qui est en cause ou a-t-elle une autre syntaxe ?
1 2