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
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
A voir également:
- Vba ouvrir un fichier word
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
- Ouvrir un fichier .dat - Guide
- Fichier rar - Guide
5 réponses
eljojo_e
Messages postés
1155
Date d'inscription
lundi 10 mai 2010
Statut
Membre
Dernière intervention
14 octobre 2022
153
Modifié par eljojo_e le 16/02/2016 à 15:53
Modifié par eljojo_e le 16/02/2016 à 15:53
Bonjour,
Ce n'est pas la bonne solution pour ouvrir un word.
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é ;)
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é ;)
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
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
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
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
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 ?
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 ?
eljojo_e
Messages postés
1155
Date d'inscription
lundi 10 mai 2010
Statut
Membre
Dernière intervention
14 octobre 2022
153
Modifié par GrandCaribou le 17/02/2016 à 13:25
Modifié par GrandCaribou le 17/02/2016 à 13:25
Bonjour,
Le code à écrire est le suivant :
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 ?
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 ?
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
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
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
eljojo_e
Messages postés
1155
Date d'inscription
lundi 10 mai 2010
Statut
Membre
Dernière intervention
14 octobre 2022
153
17 févr. 2016 à 14:04
17 févr. 2016 à 14:04
As-tu cocher la case même si c'est la 12 ?
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
17 févr. 2016 à 14:20
Oui, ca affiche le message d'erreur que j'ai indiqué !
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
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...
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
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
- 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
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
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.
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.