Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème Install appli VB6/WORD compilé XP vers Win2000

7 réponses
Avatar
Jean-Noël Falquet
Suite du problème mentionné le 4.08.2004

VSI Installer, a permis l'installation de l'application.
Donc par rapport à l'assistant empaquetage déploiement de VB6-SP5, c'est
peut être mieux.

Mais :
1.) Les EXE ActiveX de ma fabrication ne s'enregistre pas correctement. Ce
qui est moins bien.
Je suis obligé de lancé le composant.exe pour que l'appli puisse y faire
référence ensuite : Pas normal.

2.) La liaison avec WORD ne fonctionne pas.
La référence dans l'appli est Word 11.0 Object Library : Fichier MSWORD.olb
Le déploiement a lieu sur un Word 2000 installé : Fichier MSWORD9.olb
Pourtant j'ai corrigé pour du Late Binding...dont voici la base de création
des références
qui fonctionnait en développement et compilé sur PC avec Word 2000, qui
fonctionne en
développement et compilé sur PC XP avec WORD 2003, mais qui merde quand je
déploie
cette dernière sur un PC Win 2000 avec Word 2000. ???

Module ByWORD.BAS
-------------------------
Public Wd as Object 'Déclaration d'une variable
Public


Public Sub SettingAccesWORD() 'Procédure de référencement de la variable
si
---------------------------------- 'elle n'est pas déjà référencée
On Error Resume Next
Screen.MousePointer = 11

'Accès à WORD

Set Wd = Nothing

Set Wd = New Word.Application

'Active la classe Evènements de WORD
SettingEvenementWORD

End Sub

Module de Classe EvenementWORD.cls
-----------------------------------------

Public Sub SettingEvenementWORD()
Set EvWd.WdAPP = Nothing
Set EvWd.WdAPP = Wd.Application
End Sub

Quelqu'un peut-il m'aider, je craque...
Merci
Jean-Noël Falquet

7 réponses

Avatar
Jean Yves SÉVENO
Bonjour.

Concernant l'ouverture de Word, il vaudrait mieux supprimer toute référence
à Word dans le projet et faire du late binding pour éviter les problèmes dus
aux différences de version suivant les PC.

Donc :

- décocher toute les références concernant Word dans Projet/Références
- créer l'instance de Word de la façon suivante :

Public Wd as Object
Set Wd = CreateObject("Word.Application")

Cordialement.

Jean Yves


"Jean-Noël Falquet" a écrit dans le message de
news:
Suite du problème mentionné le 4.08.2004

VSI Installer, a permis l'installation de l'application.
Donc par rapport à l'assistant empaquetage déploiement de VB6-SP5, c'est
peut être mieux.

Mais :
1.) Les EXE ActiveX de ma fabrication ne s'enregistre pas correctement. Ce
qui est moins bien.
Je suis obligé de lancé le composant.exe pour que l'appli puisse y faire
référence ensuite : Pas normal.

2.) La liaison avec WORD ne fonctionne pas.
La référence dans l'appli est Word 11.0 Object Library : Fichier


MSWORD.olb
Le déploiement a lieu sur un Word 2000 installé : Fichier MSWORD9.olb
Pourtant j'ai corrigé pour du Late Binding...dont voici la base de


création
des références
qui fonctionnait en développement et compilé sur PC avec Word 2000, qui
fonctionne en
développement et compilé sur PC XP avec WORD 2003, mais qui merde quand je
déploie
cette dernière sur un PC Win 2000 avec Word 2000. ???

Module ByWORD.BAS
-------------------------
Public Wd as Object 'Déclaration d'une variable
Public


Public Sub SettingAccesWORD() 'Procédure de référencement de la


variable
si
---------------------------------- 'elle n'est pas déjà référencée
On Error Resume Next
Screen.MousePointer = 11

'Accès à WORD

Set Wd = Nothing

Set Wd = New Word.Application

'Active la classe Evènements de WORD
SettingEvenementWORD

End Sub

Module de Classe EvenementWORD.cls
-----------------------------------------

Public Sub SettingEvenementWORD()
Set EvWd.WdAPP = Nothing
Set EvWd.WdAPP = Wd.Application
End Sub

Quelqu'un peut-il m'aider, je craque...
Merci
Jean-Noël Falquet




Avatar
François Picalausa
Hello,

'Accès à WORD

Set Wd = Nothing

Set Wd = New Word.Application



Il s'agit là d'early binding.
Tu peux le remplacer en late binding par
Set Wd = CreateObject("Word.Application")
(ou GetObject en fonction de ce que tu souhaite effectuer).
Il faut aussi enlever la référence à word dans les références.

En ce qui concerne les activex exe, il y a une fiche pour Visual FoxPro qui
devrait fonctionner pour VB:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfoxgen/html/usingvsi.asp
Il s'agit du sous titre COM Servers
La première méthode indiquée est de spécifier la propriété "Register" du
serveur COM à vsifrSelfReg (1).

En long, large et plus détaillé:
Ajouter le fichier .exe de l'ActiveX Exe dans l'installateur, via Project >
Add File(s)...
Sélectionner ce même fichier dans l'arborescence du "Project Explorer"
Dans la fenêtre de propriété, définir la propriété Register à 1 -
vsifrSelfReg.

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Jean-Noël Falquet" a écrit dans le
message de news:
VSI Installer
1.) Les EXE ActiveX de ma fabrication ne s'enregistre pas
correctement.
2.) La liaison avec WORD ne fonctionne pas.
Pourtant j'ai corrigé pour du Late Binding...
Set Wd = New Word.Application


Avatar
Jean-Noël Falquet
Merci pour vos conseils que je vais essayer.
Je tiendrais la News au courant...

"Jean-Noël Falquet" a écrit dans le message de
news:
Suite du problème mentionné le 4.08.2004

VSI Installer, a permis l'installation de l'application.
Donc par rapport à l'assistant empaquetage déploiement de VB6-SP5, c'est
peut être mieux.

Mais :
1.) Les EXE ActiveX de ma fabrication ne s'enregistre pas correctement. Ce
qui est moins bien.
Je suis obligé de lancé le composant.exe pour que l'appli puisse y faire
référence ensuite : Pas normal.

2.) La liaison avec WORD ne fonctionne pas.
La référence dans l'appli est Word 11.0 Object Library : Fichier


MSWORD.olb
Le déploiement a lieu sur un Word 2000 installé : Fichier MSWORD9.olb
Pourtant j'ai corrigé pour du Late Binding...dont voici la base de


création
des références
qui fonctionnait en développement et compilé sur PC avec Word 2000, qui
fonctionne en
développement et compilé sur PC XP avec WORD 2003, mais qui merde quand je
déploie
cette dernière sur un PC Win 2000 avec Word 2000. ???

Module ByWORD.BAS
-------------------------
Public Wd as Object 'Déclaration d'une variable
Public


Public Sub SettingAccesWORD() 'Procédure de référencement de la


variable
si
---------------------------------- 'elle n'est pas déjà référencée
On Error Resume Next
Screen.MousePointer = 11

'Accès à WORD

Set Wd = Nothing

Set Wd = New Word.Application

'Active la classe Evènements de WORD
SettingEvenementWORD

End Sub

Module de Classe EvenementWORD.cls
-----------------------------------------

Public Sub SettingEvenementWORD()
Set EvWd.WdAPP = Nothing
Set EvWd.WdAPP = Wd.Application
End Sub

Quelqu'un peut-il m'aider, je craque...
Merci
Jean-Noël Falquet




Avatar
Jean-Noël Falquet
En décochant la référence à Word 11.0 dans le projet, et en faisant
référence à Word par CreateObject("Word.Application") j'ai d'autres
difficultés :
J'avais des déclarations de variables sur des objets word directement, comme
Public W_Range as Range
Public W_Paragraph as Paragraph

Pour ceux là, j'ai réussi également à les référencer avec CreateObject au
moment de l'exécution.

Par contre avec des objets comme "HeaterFooter" ça ne va pas. J'utilise ces
objets pour mettre à jour des renvois à des signets dans des entêtes depuis
mon appli. Comment faire cette fonction si je ne peux référencer ces objets
:

Public Sub W_UpdateCHAMPS()

'Mise à jour des champs (Renvoi utilisateur à des signets, dans les
Entetes/Pied) du document.
'---------------------------------------------------------------------------
------------------
On Error GoTo Erreur:

Dim H As HeaderFooter 'Objet Entete ou pied de page
Dim F As Word.Field 'Champs
Dim Ftx As Word.Font

For Each H In Wd.ActiveDocument.Sections(1).Headers 'Pour chaque entete ou
pied de la section(1). Le document est la section (1)

Set W_Range = H.Range 'Définit un range
correspondant au range de l'entete/pied courant
For Each F In W_Range.Fields 'Pour ce range, mettre à
jour les champs qu'il contient
Set Ftx = F.Result.Font.Duplicate 'Crée un Duplicata des
propriété Font du Champ Renvoi, avant l'update pour prendre
'ses propriétés
définies.

F.Update 'Met à jour le champ
renvoi

F.Result.Font.Size = Ftx.Size 'Pour le champ,
Application de la mise en forme désirée pour le renvoi et qui
F.Result.Font.Bold = Ftx.Bold 'a été mémorisée dant
l'objet Font : Ftx
F.Result.Font.Italic = Ftx.Italic
F.Result.Font.Underline = Ftx.Underline
F.Result.Font.Color = Ftx.Color
Next
Next

'Mise à jour des champs (Renvoi utilisateur à des signets, dans le document)
du document.
'---------------------------------------------------------------------------
------------------
For Each F In Wd.ActiveDocument.Fields
'F.UpdateSource
F.Update
Next F

Fin:
Exit Sub

Autre problème avec le module de classe que j'avais incorporé pour
intercepter les évènements Word.Quit et Word.DocumentBeforeClose.
Dans le module de Classe il faut bien déclarer une variable qui fait
référence à un objet connu pour pouvoir intercepter ses évènements ?
J'avais donc en déclaration de mon module de classe :

Public WithEvents WdAPP As Word.Application

où WdAPP me permet d'accèder aux évènements Word.
Si je ne fais pas référence à Word 11.0 dans le projet, je ne sais plus
comment faire l'interception des évènements.
Quelqu'un sait-il comment faire ?

Concernant l'enregistrement des Exe ActiveX avec VSI, je n'y arrive pas
malgré l'info que tu m'as donné François.
L'exe activeX est à Register = 1. C'est VSI qui le met.

Quelqu'un sait-il ou a t'il déjà fait un ExeActiveX qu'il installe avec VSI.



"Jean-Noël Falquet" a écrit dans le message de
news:
Merci pour vos conseils que je vais essayer.
Je tiendrais la News au courant...

"Jean-Noël Falquet" a écrit dans le message


de
news:
> Suite du problème mentionné le 4.08.2004
>
> VSI Installer, a permis l'installation de l'application.
> Donc par rapport à l'assistant empaquetage déploiement de VB6-SP5, c'est
> peut être mieux.
>
> Mais :
> 1.) Les EXE ActiveX de ma fabrication ne s'enregistre pas correctement.


Ce
> qui est moins bien.
> Je suis obligé de lancé le composant.exe pour que l'appli puisse y faire
> référence ensuite : Pas normal.
>
> 2.) La liaison avec WORD ne fonctionne pas.
> La référence dans l'appli est Word 11.0 Object Library : Fichier
MSWORD.olb
> Le déploiement a lieu sur un Word 2000 installé : Fichier MSWORD9.olb
> Pourtant j'ai corrigé pour du Late Binding...dont voici la base de
création
> des références
> qui fonctionnait en développement et compilé sur PC avec Word 2000, qui
> fonctionne en
> développement et compilé sur PC XP avec WORD 2003, mais qui merde quand


je
> déploie
> cette dernière sur un PC Win 2000 avec Word 2000. ???
>
> Module ByWORD.BAS
> -------------------------
> Public Wd as Object 'Déclaration d'une variable
> Public
>
>
> Public Sub SettingAccesWORD() 'Procédure de référencement de la
variable
> si
> ---------------------------------- 'elle n'est pas déjà référencée
> On Error Resume Next
> Screen.MousePointer = 11
>
> 'Accès à WORD
>
> Set Wd = Nothing
>
> Set Wd = New Word.Application
>
> 'Active la classe Evènements de WORD
> SettingEvenementWORD
>
> End Sub
>
> Module de Classe EvenementWORD.cls
> -----------------------------------------
>
> Public Sub SettingEvenementWORD()
> Set EvWd.WdAPP = Nothing
> Set EvWd.WdAPP = Wd.Application
> End Sub
>
> Quelqu'un peut-il m'aider, je craque...
> Merci
> Jean-Noël Falquet
>
>




Avatar
Jean-Noël Falquet
Autant pour moi pour les objets HeaderFooter..., je fatigue.
Il suffit de déclarer H, F et Ftx as Object.

Reste le problème des évènements....



"Jean-Noël Falquet" a écrit dans le message de
news:
En décochant la référence à Word 11.0 dans le projet, et en faisant
référence à Word par CreateObject("Word.Application") j'ai d'autres
difficultés :
J'avais des déclarations de variables sur des objets word directement,


comme
Public W_Range as Range
Public W_Paragraph as Paragraph

Pour ceux là, j'ai réussi également à les référencer avec CreateObject au
moment de l'exécution.

Par contre avec des objets comme "HeaterFooter" ça ne va pas. J'utilise


ces
objets pour mettre à jour des renvois à des signets dans des entêtes


depuis
mon appli. Comment faire cette fonction si je ne peux référencer ces


objets
:

Public Sub W_UpdateCHAMPS()

'Mise à jour des champs (Renvoi utilisateur à des signets, dans les
Entetes/Pied) du document.



'---------------------------------------------------------------------------
------------------
On Error GoTo Erreur:

Dim H As HeaderFooter 'Objet Entete ou pied de page
Dim F As Word.Field 'Champs
Dim Ftx As Word.Font

For Each H In Wd.ActiveDocument.Sections(1).Headers 'Pour chaque entete ou
pied de la section(1). Le document est la section (1)

Set W_Range = H.Range 'Définit un range
correspondant au range de l'entete/pied courant
For Each F In W_Range.Fields 'Pour ce range, mettre


à
jour les champs qu'il contient
Set Ftx = F.Result.Font.Duplicate 'Crée un Duplicata des
propriété Font du Champ Renvoi, avant l'update pour prendre
'ses propriétés
définies.

F.Update 'Met à jour le champ
renvoi

F.Result.Font.Size = Ftx.Size 'Pour le champ,
Application de la mise en forme désirée pour le renvoi et qui
F.Result.Font.Bold = Ftx.Bold 'a été mémorisée dant
l'objet Font : Ftx
F.Result.Font.Italic = Ftx.Italic
F.Result.Font.Underline = Ftx.Underline
F.Result.Font.Color = Ftx.Color
Next
Next

'Mise à jour des champs (Renvoi utilisateur à des signets, dans le


document)
du document.



'---------------------------------------------------------------------------
------------------
For Each F In Wd.ActiveDocument.Fields
'F.UpdateSource
F.Update
Next F

Fin:
Exit Sub

Autre problème avec le module de classe que j'avais incorporé pour
intercepter les évènements Word.Quit et Word.DocumentBeforeClose.
Dans le module de Classe il faut bien déclarer une variable qui fait
référence à un objet connu pour pouvoir intercepter ses évènements ?
J'avais donc en déclaration de mon module de classe :

Public WithEvents WdAPP As Word.Application

où WdAPP me permet d'accèder aux évènements Word.
Si je ne fais pas référence à Word 11.0 dans le projet, je ne sais plus
comment faire l'interception des évènements.
Quelqu'un sait-il comment faire ?

Concernant l'enregistrement des Exe ActiveX avec VSI, je n'y arrive pas
malgré l'info que tu m'as donné François.
L'exe activeX est à Register = 1. C'est VSI qui le met.

Quelqu'un sait-il ou a t'il déjà fait un ExeActiveX qu'il installe avec


VSI.



"Jean-Noël Falquet" a écrit dans le message


de
news:
> Merci pour vos conseils que je vais essayer.
> Je tiendrais la News au courant...
>
> "Jean-Noël Falquet" a écrit dans le message
de
> news:
> > Suite du problème mentionné le 4.08.2004
> >
> > VSI Installer, a permis l'installation de l'application.
> > Donc par rapport à l'assistant empaquetage déploiement de VB6-SP5,


c'est
> > peut être mieux.
> >
> > Mais :
> > 1.) Les EXE ActiveX de ma fabrication ne s'enregistre pas


correctement.
Ce
> > qui est moins bien.
> > Je suis obligé de lancé le composant.exe pour que l'appli puisse y


faire
> > référence ensuite : Pas normal.
> >
> > 2.) La liaison avec WORD ne fonctionne pas.
> > La référence dans l'appli est Word 11.0 Object Library : Fichier
> MSWORD.olb
> > Le déploiement a lieu sur un Word 2000 installé : Fichier MSWORD9.olb
> > Pourtant j'ai corrigé pour du Late Binding...dont voici la base de
> création
> > des références
> > qui fonctionnait en développement et compilé sur PC avec Word 2000,


qui
> > fonctionne en
> > développement et compilé sur PC XP avec WORD 2003, mais qui merde


quand
je
> > déploie
> > cette dernière sur un PC Win 2000 avec Word 2000. ???
> >
> > Module ByWORD.BAS
> > -------------------------
> > Public Wd as Object 'Déclaration d'une variable
> > Public
> >
> >
> > Public Sub SettingAccesWORD() 'Procédure de référencement de la
> variable
> > si
> > ---------------------------------- 'elle n'est pas déjà référencée
> > On Error Resume Next
> > Screen.MousePointer = 11
> >
> > 'Accès à WORD
> >
> > Set Wd = Nothing
> >
> > Set Wd = New Word.Application
> >
> > 'Active la classe Evènements de WORD
> > SettingEvenementWORD
> >
> > End Sub
> >
> > Module de Classe EvenementWORD.cls
> > -----------------------------------------
> >
> > Public Sub SettingEvenementWORD()
> > Set EvWd.WdAPP = Nothing
> > Set EvWd.WdAPP = Wd.Application
> > End Sub
> >
> > Quelqu'un peut-il m'aider, je craque...
> > Merci
> > Jean-Noël Falquet
> >
> >
>
>




Avatar
Jean Yves SÉVENO
Bonjour.

Et en déclarant WdAPP As Object ?

Cordialement.

Jean Yves


"Jean-Noël Falquet" a écrit dans le message de
news:
Autant pour moi pour les objets HeaderFooter..., je fatigue.
Il suffit de déclarer H, F et Ftx as Object.

Reste le problème des évènements....



"Jean-Noël Falquet" a écrit dans le message


de
news:
> En décochant la référence à Word 11.0 dans le projet, et en faisant
> référence à Word par CreateObject("Word.Application") j'ai d'autres
> difficultés :
> J'avais des déclarations de variables sur des objets word directement,
comme
> Public W_Range as Range
> Public W_Paragraph as Paragraph
>
> Pour ceux là, j'ai réussi également à les référencer avec CreateObject


au
> moment de l'exécution.
>
> Par contre avec des objets comme "HeaterFooter" ça ne va pas. J'utilise
ces
> objets pour mettre à jour des renvois à des signets dans des entêtes
depuis
> mon appli. Comment faire cette fonction si je ne peux référencer ces
objets
> :
>
> Public Sub W_UpdateCHAMPS()
>
> 'Mise à jour des champs (Renvoi utilisateur à des signets, dans les
> Entetes/Pied) du document.
>



'---------------------------------------------------------------------------
> ------------------
> On Error GoTo Erreur:
>
> Dim H As HeaderFooter 'Objet Entete ou pied de page
> Dim F As Word.Field 'Champs
> Dim Ftx As Word.Font
>
> For Each H In Wd.ActiveDocument.Sections(1).Headers 'Pour chaque entete


ou
> pied de la section(1). Le document est la section (1)
>
> Set W_Range = H.Range 'Définit un range
> correspondant au range de l'entete/pied courant
> For Each F In W_Range.Fields 'Pour ce range,


mettre
à
> jour les champs qu'il contient
> Set Ftx = F.Result.Font.Duplicate 'Crée un Duplicata


des
> propriété Font du Champ Renvoi, avant l'update pour prendre
> 'ses propriétés
> définies.
>
> F.Update 'Met à jour le champ
> renvoi
>
> F.Result.Font.Size = Ftx.Size 'Pour le champ,
> Application de la mise en forme désirée pour le renvoi et qui
> F.Result.Font.Bold = Ftx.Bold 'a été mémorisée


dant
> l'objet Font : Ftx
> F.Result.Font.Italic = Ftx.Italic
> F.Result.Font.Underline = Ftx.Underline
> F.Result.Font.Color = Ftx.Color
> Next
> Next
>
> 'Mise à jour des champs (Renvoi utilisateur à des signets, dans le
document)
> du document.
>



'---------------------------------------------------------------------------
> ------------------
> For Each F In Wd.ActiveDocument.Fields
> 'F.UpdateSource
> F.Update
> Next F
>
> Fin:
> Exit Sub
>
> Autre problème avec le module de classe que j'avais incorporé pour
> intercepter les évènements Word.Quit et Word.DocumentBeforeClose.
> Dans le module de Classe il faut bien déclarer une variable qui fait
> référence à un objet connu pour pouvoir intercepter ses évènements ?
> J'avais donc en déclaration de mon module de classe :
>
> Public WithEvents WdAPP As Word.Application
>
> où WdAPP me permet d'accèder aux évènements Word.
> Si je ne fais pas référence à Word 11.0 dans le projet, je ne sais plus
> comment faire l'interception des évènements.
> Quelqu'un sait-il comment faire ?
>
> Concernant l'enregistrement des Exe ActiveX avec VSI, je n'y arrive pas
> malgré l'info que tu m'as donné François.
> L'exe activeX est à Register = 1. C'est VSI qui le met.
>
> Quelqu'un sait-il ou a t'il déjà fait un ExeActiveX qu'il installe avec
VSI.
>
>
>
> "Jean-Noël Falquet" a écrit dans le message



de
> news:
> > Merci pour vos conseils que je vais essayer.
> > Je tiendrais la News au courant...
> >
> > "Jean-Noël Falquet" a écrit dans le


message
> de
> > news:
> > > Suite du problème mentionné le 4.08.2004
> > >
> > > VSI Installer, a permis l'installation de l'application.
> > > Donc par rapport à l'assistant empaquetage déploiement de VB6-SP5,
c'est
> > > peut être mieux.
> > >
> > > Mais :
> > > 1.) Les EXE ActiveX de ma fabrication ne s'enregistre pas
correctement.
> Ce
> > > qui est moins bien.
> > > Je suis obligé de lancé le composant.exe pour que l'appli puisse y
faire
> > > référence ensuite : Pas normal.
> > >
> > > 2.) La liaison avec WORD ne fonctionne pas.
> > > La référence dans l'appli est Word 11.0 Object Library : Fichier
> > MSWORD.olb
> > > Le déploiement a lieu sur un Word 2000 installé : Fichier


MSWORD9.olb
> > > Pourtant j'ai corrigé pour du Late Binding...dont voici la base de
> > création
> > > des références
> > > qui fonctionnait en développement et compilé sur PC avec Word 2000,
qui
> > > fonctionne en
> > > développement et compilé sur PC XP avec WORD 2003, mais qui merde
quand
> je
> > > déploie
> > > cette dernière sur un PC Win 2000 avec Word 2000. ???
> > >
> > > Module ByWORD.BAS
> > > -------------------------
> > > Public Wd as Object 'Déclaration d'une


variable
> > > Public
> > >
> > >
> > > Public Sub SettingAccesWORD() 'Procédure de référencement de la
> > variable
> > > si
> > > ---------------------------------- 'elle n'est pas déjà


référencée
> > > On Error Resume Next
> > > Screen.MousePointer = 11
> > >
> > > 'Accès à WORD
> > >
> > > Set Wd = Nothing
> > >
> > > Set Wd = New Word.Application
> > >
> > > 'Active la classe Evènements de WORD
> > > SettingEvenementWORD
> > >
> > > End Sub
> > >
> > > Module de Classe EvenementWORD.cls
> > > -----------------------------------------
> > >
> > > Public Sub SettingEvenementWORD()
> > > Set EvWd.WdAPP = Nothing
> > > Set EvWd.WdAPP = Wd.Application
> > > End Sub
> > >
> > > Quelqu'un peut-il m'aider, je craque...
> > > Merci
> > > Jean-Noël Falquet
> > >
> > >
> >
> >
>
>




Avatar
Jean-Noël Falquet
Bonjour,

Non, ce n'est pas possible.
L'objet dans le module de classe ne peut pas être générique.
Public WithEvents WdAPP as Object n'est pas possible.
Et je ne crois pas que je peux détecter les évènements de Word sans passer
par un module de classe.

Sinon pour info, c'est OK pour référence à Word avec vos conseils :
Public Wd as Object
Public W_Range as Object
Public W_Paragraph as Object

Set Wd = CreateObject ("Word.Application")
ensuite....
Set W_Range = Wd.ActiveDocument.Range(Start:=W_Paragraph.Range.Start,
End:=W_Paragraph.Range.End)
Set W_Paragraph = Wd.ActiveDocument.Paragraphs(W_ID_paragraph)

Dommage que je ne puisse plus savoir quand l'utilisateur ferme le document
ou quitte Word.
J'avais un passage de mon appli à Word, et un retour à mon Appli vraiment
sympa et transparent... mais je ne sais plus faire.

L'installation de l'appli est OK maintenant avec VSI et pas de référence à
Word embarquée, sauf l'inscription de mon Exe ActiveX.
Là je n'ai pas trouvé comment faire.
Merci.


"Jean Yves SÉVENO" a écrit dans le message de
news:cfhf7g$n8b$
Bonjour.

Et en déclarant WdAPP As Object ?

Cordialement.

Jean Yves


"Jean-Noël Falquet" a écrit dans le message


de
news:
> Autant pour moi pour les objets HeaderFooter..., je fatigue.
> Il suffit de déclarer H, F et Ftx as Object.
>
> Reste le problème des évènements....
>
>
>
> "Jean-Noël Falquet" a écrit dans le message
de
> news:
> > En décochant la référence à Word 11.0 dans le projet, et en faisant
> > référence à Word par CreateObject("Word.Application") j'ai d'autres
> > difficultés :
> > J'avais des déclarations de variables sur des objets word directement,
> comme
> > Public W_Range as Range
> > Public W_Paragraph as Paragraph
> >
> > Pour ceux là, j'ai réussi également à les référencer avec CreateObject
au
> > moment de l'exécution.
> >
> > Par contre avec des objets comme "HeaterFooter" ça ne va pas.


J'utilise
> ces
> > objets pour mettre à jour des renvois à des signets dans des entêtes
> depuis
> > mon appli. Comment faire cette fonction si je ne peux référencer ces
> objets
> > :
> >
> > Public Sub W_UpdateCHAMPS()
> >
> > 'Mise à jour des champs (Renvoi utilisateur à des signets, dans les
> > Entetes/Pied) du document.
> >
>



'---------------------------------------------------------------------------
> > ------------------
> > On Error GoTo Erreur:
> >
> > Dim H As HeaderFooter 'Objet Entete ou pied de page
> > Dim F As Word.Field 'Champs
> > Dim Ftx As Word.Font
> >
> > For Each H In Wd.ActiveDocument.Sections(1).Headers 'Pour chaque


entete
ou
> > pied de la section(1). Le document est la section (1)
> >
> > Set W_Range = H.Range 'Définit un range
> > correspondant au range de l'entete/pied courant
> > For Each F In W_Range.Fields 'Pour ce range,
mettre
> à
> > jour les champs qu'il contient
> > Set Ftx = F.Result.Font.Duplicate 'Crée un Duplicata
des
> > propriété Font du Champ Renvoi, avant l'update pour prendre
> > 'ses propriétés
> > définies.
> >
> > F.Update 'Met à jour le


champ
> > renvoi
> >
> > F.Result.Font.Size = Ftx.Size 'Pour le champ,
> > Application de la mise en forme désirée pour le renvoi et qui
> > F.Result.Font.Bold = Ftx.Bold 'a été mémorisée
dant
> > l'objet Font : Ftx
> > F.Result.Font.Italic = Ftx.Italic
> > F.Result.Font.Underline = Ftx.Underline
> > F.Result.Font.Color = Ftx.Color
> > Next
> > Next
> >
> > 'Mise à jour des champs (Renvoi utilisateur à des signets, dans le
> document)
> > du document.
> >
>



'---------------------------------------------------------------------------
> > ------------------
> > For Each F In Wd.ActiveDocument.Fields
> > 'F.UpdateSource
> > F.Update
> > Next F
> >
> > Fin:
> > Exit Sub
> >
> > Autre problème avec le module de classe que j'avais incorporé pour
> > intercepter les évènements Word.Quit et Word.DocumentBeforeClose.
> > Dans le module de Classe il faut bien déclarer une variable qui fait
> > référence à un objet connu pour pouvoir intercepter ses évènements ?
> > J'avais donc en déclaration de mon module de classe :
> >
> > Public WithEvents WdAPP As Word.Application
> >
> > où WdAPP me permet d'accèder aux évènements Word.
> > Si je ne fais pas référence à Word 11.0 dans le projet, je ne sais


plus
> > comment faire l'interception des évènements.
> > Quelqu'un sait-il comment faire ?
> >
> > Concernant l'enregistrement des Exe ActiveX avec VSI, je n'y arrive


pas
> > malgré l'info que tu m'as donné François.
> > L'exe activeX est à Register = 1. C'est VSI qui le met.
> >
> > Quelqu'un sait-il ou a t'il déjà fait un ExeActiveX qu'il installe


avec
> VSI.
> >
> >
> >
> > "Jean-Noël Falquet" a écrit dans le


message

> de
> > news:
> > > Merci pour vos conseils que je vais essayer.
> > > Je tiendrais la News au courant...
> > >
> > > "Jean-Noël Falquet" a écrit dans le
message
> > de
> > > news:
> > > > Suite du problème mentionné le 4.08.2004
> > > >
> > > > VSI Installer, a permis l'installation de l'application.
> > > > Donc par rapport à l'assistant empaquetage déploiement de VB6-SP5,
> c'est
> > > > peut être mieux.
> > > >
> > > > Mais :
> > > > 1.) Les EXE ActiveX de ma fabrication ne s'enregistre pas
> correctement.
> > Ce
> > > > qui est moins bien.
> > > > Je suis obligé de lancé le composant.exe pour que l'appli puisse y
> faire
> > > > référence ensuite : Pas normal.
> > > >
> > > > 2.) La liaison avec WORD ne fonctionne pas.
> > > > La référence dans l'appli est Word 11.0 Object Library : Fichier
> > > MSWORD.olb
> > > > Le déploiement a lieu sur un Word 2000 installé : Fichier
MSWORD9.olb
> > > > Pourtant j'ai corrigé pour du Late Binding...dont voici la base de
> > > création
> > > > des références
> > > > qui fonctionnait en développement et compilé sur PC avec Word


2000,
> qui
> > > > fonctionne en
> > > > développement et compilé sur PC XP avec WORD 2003, mais qui merde
> quand
> > je
> > > > déploie
> > > > cette dernière sur un PC Win 2000 avec Word 2000. ???
> > > >
> > > > Module ByWORD.BAS
> > > > -------------------------
> > > > Public Wd as Object 'Déclaration d'une
variable
> > > > Public
> > > >
> > > >
> > > > Public Sub SettingAccesWORD() 'Procédure de référencement de la
> > > variable
> > > > si
> > > > ---------------------------------- 'elle n'est pas déjà
référencée
> > > > On Error Resume Next
> > > > Screen.MousePointer = 11
> > > >
> > > > 'Accès à WORD
> > > >
> > > > Set Wd = Nothing
> > > >
> > > > Set Wd = New Word.Application
> > > >
> > > > 'Active la classe Evènements de WORD
> > > > SettingEvenementWORD
> > > >
> > > > End Sub
> > > >
> > > > Module de Classe EvenementWORD.cls
> > > > -----------------------------------------
> > > >
> > > > Public Sub SettingEvenementWORD()
> > > > Set EvWd.WdAPP = Nothing
> > > > Set EvWd.WdAPP = Wd.Application
> > > > End Sub
> > > >
> > > > Quelqu'un peut-il m'aider, je craque...
> > > > Merci
> > > > Jean-Noël Falquet
> > > >
> > > >
> > >
> > >
> >
> >
>
>