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

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

2 réponses
Avatar
a.iffly
Bonjour,
j'ai un programme VB6 qui tourne correctement sur un PC, mais affiche
une erreur sur un autre PC ("la m=E9thode 'replacement' de l'objet
'find' a =E9chou=E9").
L'erreur a lieu sur la
ligne .Selection.Find.Replacement.ClearFormatting du code ci-dessous
(extrait).
Les configurations des 2 PC sont similaires (m=EAme 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 =3D nom du template =E0 utiliser

' Doc word is being created

Set Word_Application =3D New Word.Application
Set docword =3D 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 =3D stringresults
.Replacement.Text =3D Str(FormatNumber((Val(valueresults)), j))
.Forward =3D True
.Wrap =3D wdFindContinue
.Format =3D True
.MatchCase =3D False
.MatchWholeWord =3D False
.MatchWildcards =3D False
.MatchSoundsLike =3D False
.MatchAllWordForms =3D False
End With
.Selection.Find.Execute
.Selection.Find.Execute Replace:=3DwdReplaceAll
End With

End Sub
---------------------------------------------------------------------------=
---------------------------

2 réponses

Avatar
Jean-marc
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/
Avatar
a.iffly
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.