Macro VBA - Ouvrir un doc Word depuis Excel puis chercher un mot

Fermé
Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016 - 16 févr. 2016 à 11:32
Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016 - 18 févr. 2016 à 11:47
Bonjour,

Je cherche à ouvrir un doc word depuis excel, puis rechercher un mot défini à l'avance.

Pour ouvrir le doc, j'ai une macro excel qui fonctionne :

Sub Ouvrir_Document()
ThisWorkbook.FollowHyperlink "\\aaa\dossier\fichier.doc"
End Sub
Pour sélectionner un mot, j'en ai une autre qu

Sub Chercher_mot()
Selection.Find.ClearFormatting
With Selection.Find
.Text = "mot"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
End Sub

Par contre, je n'arrive pas à lier les deux macros (ouvrir le doc depuis excel, puis chercher le mot spécifique". Un message d'erreur me demande un objet...


Sub Ouvrir_Document_Chercher_mot()
ThisWorkbook.FollowHyperlink "\\aaa\dossier\fichier.doc"
Selection.Find.ClearFormatting
With Selection.Find
.Text = "mot"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
End Sub

Quelqu'un aurait la solution ? Merci d'avance !

Roland
A voir également:

5 réponses

eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 152
Modifié par eljojo_e le 16/02/2016 à 15:53
Bonjour,

Ce n'est pas la bonne solution pour ouvrir un word.


Sub ouvrirWord()

Dim objWord As Word.Document
Set objWord = GetObject("Chemin complet avec nom du document", "Word.Document")
' Rend Word visible important car la fusion ne se fait pas si pas visible
objWord.Application.Visible = True
NomFichier = objWord.Name
Remplacement = "Mot De Remplacement"
objWord.Content.Find.Execute FindText:="motRecherché", ReplaceWith:=Remplacement, Replace:=wdReplaceAll


' procédure d'enregistrement

DoCmd.SetWarnings False

objWord.SaveAs "Addresse complete" & Format(Now(), "yyyy-mm-dd") & ".doc" 'enregistre le fichier à la date du jour

DoCmd.SetWarnings True

End Sub


Ce code est commenté et sert à ouvrir un word, rechercher et remplacer un mot et enregistrer le word sous (si nécessaire).

Mesurer la masse de sa connerie permettrait dans connaitre sa gravité ;)
0
Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016
16 févr. 2016 à 17:01
Bonjour,


Pour enlever le bout de code qui enregistre, il me faut le supprimer jusqu'au paragraphe "DoCmd.SetWarnings True" ?
Configuration: Windows 7 / Firefox 31.0
0
Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016
Modifié par GrandCaribou le 17/02/2016 à 13:40
En fait je veux juste ouvrir le document et pointer vers les occurrences du mot recherché (ici "MOT").

Une fois installé le code qui ouvre le doc (qui fonctionne), j'essaye de lancer ma recherche avec cette phrase :

objWord.Content.Find.Execute FindText:="MOT" 



Car il me semble que le reste du bout de code ne sert qu'à remplacer, ce que je ne veux pas faire. Mais cela ne fonctionne pas...


Sub FnOpeneWordDoc()


Dim objWord

Dim objDoc

Set objWord = CreateObject("Word.Application")

Set objDoc = objWord.Documents.Open

objWord.Visible = True

objWord.Content.Find.Execute FindText:="MOT"

End Sub




Que dois-je rajouter pour faire fonctionner a macro ?
0
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 152
Modifié par GrandCaribou le 17/02/2016 à 13:25
Bonjour,

Le code à écrire est le suivant :

Sub FnOpeneWordDoc()

Dim objWord As Word.Document
Set objWord = GetObject
objWord.Application.Visible = True
NomFichier = objWord.Name


objWord.Content.Find.ClearFormatting
With Selection.Find
.Text = "MOT"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute


End Sub


Il faut pour que ca fonctionne aller dans outil - références et cocher : "Mircosoft Word 14.0 Object Libray"

Quel est le but de la manœuvre exactement ?
0
Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016
17 févr. 2016 à 13:46
Bonjour,

Je n'ai pas la bibliothèque word 14.0 dans le menu outil, mais seulement la 12.0... Et donc je reçois ce message d'erreur : "Erreur définie par l'application ou par l'objet".

Roland
0
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 152
17 févr. 2016 à 14:04
As-tu cocher la case même si c'est la 12 ?
0
Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016
17 févr. 2016 à 14:20
Oui, ca affiche le message d'erreur que j'ai indiqué !
0
Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016
Modifié par Roland2008 le 17/02/2016 à 14:39
J'ai encore essayé et je m'aperçois que mon document s'ouvre (première partie ok), mais ensuite ce message d'erreur s'affiche : "Nombre d'arguments incorrects ou affectation de propriété incorrecte" : la fonction "find" qui suit l'ouverture du document ne fonctionne pas...
0
Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016
18 févr. 2016 à 10:55
Alors j'ai trouvé quelque chose en bidouillant à l'aide de Sendkeys :

- J'arrive bien à ouvrir la boîte de dialogue "Rechercher"
- Et j'arrive à lancer la recherche de mon mot dans le document

La clé de la bidouille pour ouvrir la boite de dialogue:
Application.SendKeys ("^f")




Sub AAAN()

Dim objWord As Word.Document
Set objWord = GetObject("\\fichier.docx", "Word.Document")
objWord.Application.Visible = True
NomFichier = objWord.Name
Application.SendKeys ("^f")
SendKeys "Mot recherché"
SendKeys "{Enter}"
End Sub

    
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Roland2008 Messages postés 17 Date d'inscription mardi 5 janvier 2016 Statut Membre Dernière intervention 18 février 2016
18 févr. 2016 à 11:47
Je ne met pas résolu car à cause des sendkeys je suis obligé de fermer le document ouvert pour relancer une macro identique (sinon une erreur est signalée).

En effet, la sendkeys n'est pas liée au document comme peut l'être une fonction find...

Je cherche donc encore à faire marcher cette dernière fonction.
0