Ouvrir documents word grace a VBA

brcav Messages postés 4 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 7 mai 2010 - 6 mai 2010 à 12:04
brcav Messages postés 4 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 7 mai 2010 - 7 mai 2010 à 11:08
Bonjour a tous

j'ai besoin d'aide pour une macro VBA (je suis sous excel 2007)

je voudrai savoir quelle librairie je dois importer dans un premier temps et ensuite comment faire pour ouvrir le fichier word

saf.doc
qui se situe dans le dossier:
chemin= "F:\ACFI-PCG-GED-MOD\Private\28 - Equipe\Bruno"

Enfin (facultatif) comment faire pour recuperer les données

Voila comment se presente le fichier
Final Terms and Conditions:
Trade Date: 6-May-10

First Accumulation Date: 7-May-10

Final Accumulation Date: 6-May-11

qui sont dans 2 colonnes differentes, si je veux recuperer par exemple la valeur de First Accumulation Date quel peut etre le code à utiliser ?

Merci pour votre aide

7 réponses

rv83toulon Messages postés 68 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 25 avril 2013
6 mai 2010 à 13:12
Bonjour,
avant tous tu dois activer la référence "Microsoft Word xx.x Object Library".
Dans l'éditeur VBA dans le menu outils => Références... => cocher "Microsoft Word xx.x Object Library"

Un exemple à mettre dans un module :
Sub connectionword()
    Dim WdApp As Word.Application
    Dim WdDoc As Word.Document
    
    'ouvre session word
    Set WdApp = New Word.Application
    'ouvre du document Word
    Set WdDoc = WdApp.Documents.Open("C:\monFichier.doc")
       
    'Insère ici le code que tu souhaites réaliser par la suite
  
    
    'Ferme le document word en sauvegardant les modifications
    WdDoc.Close True
    
    'ferme la session Word
    WdApp.Quit

End Sub
il faut bien entendu l'adapter à tes besoins.

@+
0
brcav Messages postés 4 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 7 mai 2010
6 mai 2010 à 14:15
salut

merci !

j ai importé la librairie
Microsoft Word 12.0 Object Library

voila ce que j ai mis juste pour voir si j ouvre le fichier

Sub connectionword()
Dim WdApp As Word.Application
Dim WdDoc As Word.Document

'ouvre session word
Set WdApp = New Word.Application
'ouvre du document Word
Set WdDoc = WdApp.Documents.Open("F:\ACFI-PCG-GED-MOD\Private\28 - Equipe\Bruno\fichiertest.doc")

et le reste en commentaire

'Ferme le document word en sauvegardant les modifications
'WdDoc.Close True

'ferme la session Word
'WdApp.Quit
quand je lance la macro avec le bouton lecture ca tourne mais rien ne se passe....et quand je ré appuie dessus il me demande si je veux l ouvrir en read only, comme s il etait deja ouvert
c'est etrange car moi je ne le vois pas s afficher a l ecran lors du premier lancement

a quoi est ce du ?
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
6 mai 2010 à 15:06
Bonjour

'Attention si le document est sur un répoertoire partagé sur lequel vous n'avez aucun droit vous n'aurea meme pas les droits en lecture seule demandez à votre administrateur
Si F: est une unité disque de connexion réseau, j'espère qu'elle est initialisée en dehors du code


'ouvre session word
Set WdApp = New Word.Application
' Pour voir la session Word s'ouvrir
wdApp.Visible=true
' ouvrir le document en lecture seule
Set WdDoc = WdApp.Documents.Open ("F:\ACFI-PCG-GED-MOD\Private\28 - Equipe\Bruno\saf.doc",, True)
wdApp.Selection.Find.ClearFormatting

' recherche de "First Accumulate Date"
Selection.Find.ClearFormatting
With Selection.Find
.text = "First Accumulation Date"
.Replacement.text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdWord, Count:=1
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
MsgBox Selection.Copy
' recherche de "Final Accumulate Date"

Selection.Find.ClearFormatting
With Selection.Find
.text = "Final Accumulation Date"
.Replacement.text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdWord, Count:=1
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
MsgBox Selection.Copy

'ne pas demander l'enregistrement pour un document en lecture seule
WdDoc.Close False
'ferme la session Word
WdApp.Quit
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
6 mai 2010 à 16:20
Bonjour,
Essayez ceci:


Sub connectionword()
Dim oWord As Word.Application
'Créer une instance de word
Set oWord = CreateObject("Word.Application")
oWord.Documents.Open "chemin du document.doc"

'rendre le document word visible
oWord.Visible = True
oWord.ActiveWindow.ActivePane.VerticalPercentScrolled = 9
oWord.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
oWord.Selection.TypeText "Essai"

End Sub
@+
0

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

Posez votre question
brcav Messages postés 4 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 7 mai 2010
7 mai 2010 à 10:10
Pour loulou69

genial le debut ouvre parfaitement le fichier mais ensuite il y a un bug

Run time error 450

Wrong number of arguments or invalid property assignment

au niveau de la ligne directement apres l'ouverture du fichier

WdApp.Selection.Find.ClearFormatting

' recherche de "First Accumulate Date"
Selection.Find.ClearFormatting => cette ligne bug

a quoi est ce que cela peut etre du et a quoi sert cette ligne ?

Merci pour ton aide
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
7 mai 2010 à 10:15
Bonjour

Désolé, C'est un oubli
tu peux supprimer la ligne

WdApp.Selection.Find.ClearFormatting

puisque plus loin, il y a la ligne correcte
Selection.Find.ClearFormatting

Cela permet de réinitialiser tous les paramètres de recherche et en initialiser que quelques uns avec la commande "Selection.Find.Execute"

Milles excuses
0
brcav Messages postés 4 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 7 mai 2010
7 mai 2010 à 11:08
j avais deja essayé de la supprimer en la mettant en commentaire mais meme la ligne suivante est erronée

With Selection.Find
0
Rejoignez-nous