Erreur "la méthode 'replacement' de l'objet 'find' a échoué"

Le
a.iffly
Bonjour,
j'ai un programme VB6 qui tourne correctement sur un PC, mais affiche
une erreur sur un autre PC ("la méthode 'replacement' de l'objet
'find' a échoué").
L'erreur a lieu sur la
ligne .Selection.Find.Replacement.ClearFormatting du code ci-dessous
(extrait).
Les configurations des 2 PC sont similaires (même versions d'OS et
Office).
Quelqu'un peut-il m'aider ?
Merci

=
-
Global Word_Application As Word.Application
Global docword As Word.Document

Public Sub generate_doc(ByVal Text As String)
' remplacement des valeurs des variables dans le doc
' variables en entree
' Text = nom du template à utiliser

' Doc word is being created

Set Word_Application = New Word.Application
Set docword = Word_Application.Documents.Open(repertory & "Template"
& Text)

Call replace_results(ByVal "*V_tkox*", ByVal Str(FormatNumber(V_tkox,
i)), ByVal i)

End Sub

Public Sub replace_results(ByVal stringresults As String, ByVal
valueresults As String, ByVal j As Integer)

With Word_Application
.Selection.Find.ClearFormatting
.Selection.Find.Replacement.ClearFormatting
With .Selection.Find
.Text = stringresults
.Replacement.Text = Str(FormatNumber((Val(valueresults)), j))
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
.Selection.Find.Execute
.Selection.Find.Execute Replace:=wdReplaceAll
End With

End Sub
=
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-marc
Le #15404441
wrote:
Bonjour,
j'ai un programme VB6 qui tourne correctement sur un PC, mais affiche
une erreur sur un autre PC ("la méthode 'replacement' de l'objet
'find' a échoué").
L'erreur a lieu sur la
ligne .Selection.Find.Replacement.ClearFormatting du code ci-dessous
(extrait).
Les configurations des 2 PC sont similaires (même versions d'OS et
Office).
Quelqu'un peut-il m'aider ?
Merci



Hello,

Chez moi ça fonctionne, en tout cas pas d'erreur sur la ligne signalée.
J'ai recréé le projet en ajoutant simplement une référence à
Microsoft Word 10.0 Object Library.

- Les 2 machines ont elles les même "Local Settings" (français vs anglais
par exemple) ?

- Sinon voir éventuellement cet article de notre FAQ, pour faire des essais:
http://faq.vb.free.fr/index.php?question4

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
a.iffly
Le #15404401
Les 2 machines ont le même local setting.
J'utilise Office 2000, donc c'est MSWORD9.OLB qui est utilisé en
référence pour moi.

J'ai testé une variante du code :

--------------------------------------------------------------------------- ---------------
Global Word_Application As Word.Application
Global docword As Word.Document

Public Sub generate_doc(ByVal Text As String)
' remplacement des valeurs des variables dans le doc
' variables en entree
' Text = nom du template à utiliser

' Doc word is being created

Set Word_Application = CreateObject("Word.Application")
Set docword = Word_Application.Documents.Open(repertory & "Template"
& Text)

Call replace_results(ByVal "*V_tkox*", ByVal Str(FormatNumber(V_tkox,
i)), ByVal i)

End Sub

Public Sub replace_results(ByVal stringresults As String, ByVal
valueresults As String, ByVal j As Integer)

With docword.Content.Find
.ClearFormatting
.Text = stringresults
With .Replacement
.ClearFormatting
.Text = Str(FormatNumber((Val(valueresults)), j))
End With
.Execute Replace:=wdReplaceAll
.Forward = True
.Wrap = wdFindContinue
End With

End Sub
--------------------------------------------------------------------------- ------------------------

Cette fois-ci j'ai un message d'erreur différent, peut-être une
piste ?
"Erreur automation. L'objet n'est pas connecté au serveur"
apparaît sur la ligne .Text = stringresults

Pourtant dans tous les cas mon fichier est ouvert par Word.
Publicité
Poster une réponse
Anonyme