[Déplacé VBS --> VBA] Traitement de tous les fichiers word d'un repertoire [Résolu]

Signaler
Messages postés
3
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
30 avril 2010
-
houtas
Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013
-
Bonjour,

J'ai une problématique de traitement de fichiers word d'un répertoire données
Je dois traiter chaque fichier word et importer des données dans Excel.

J'ai fait la partie traitement du fichier word (code un peu barbare vu que je suis pas un expert mais bon ca fonctionne...) et l'import du fichier excel

Par contre, il me manque la partie automatisation de l'ouverture des fichiers word.

j'ai vu sur le forum qu'on pouvait faire qqch comme ceci :
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFiles = objFSO.GetFolder("D:\Boulot").Files

dbleCompteur = 0
For Each file In objFiles
strfile = objFSO.OpenTextFile(file).ReadAll

...

Si vous avez deja eu affaire à cette problématique, je suis intéressé!

Merci pour votre aide

6 réponses

Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013

Voici le code pour réaliser ce que tu veux
Sub fouilledossier()
Dim fso As Object
Dim objFiles As Folder
Dim dossier As String
Dim variable As Variant
Dim fFile As File
Dim objWord As New Word.Application
Set fso = CreateObject("Scripting.FileSystemObject")
'chemin du dossier contenant les fichiers
dossier = CurrentProject.Path
Set objFiles = fso.GetFolder(dossier)
Dim cheminfichier As String
For Each Item In objFiles.Files
        If Left(Item.Type, 30) "Document Microsoft Office Word" And Item.Attributes "32" Then
         cheminfichier = fso.GetFile(Item.Path)
         objWord.Documents.Open cheminfichier
         objWord.Visible = True
         'si tu veux fermer le fichier word
         'objWord.Documents(1).Close
         Set objWord = Nothing
        End If
Next
 Set fso = Nothing
 Set objFiles = Nothing
End Sub


Rajoute cette condition pour ne pas avoir les fichiers temporaires
Item.Attributes = "32" qui ont le code 34
Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013

merci d'accepter la réponse dans ce cas
Messages postés
6583
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
29 février 2020
96
Bonjour,
Voici le module pour ouvrir les fichiers.doc à partir de VBA Word:

Private Sub CommandButton1_Click()
OuvrirWord
End Sub
'Ouvrir fichier .doc dans Word
'Cocher dans Outils-Références:Microsoft Word 11.0 Object Library
Sub OuvrirWord()
Dim strFichier As String
Dim objWord As New Word.Application

On Error Resume Next
strFichier = "chemin du fichier"

' ouvrir un document Word
objWord.Documents.Open strFichier
' rendre Word visible
objWord.Visible = True

' fermer le document
'objWord.Documents(1).Close
' quitter l'application Word
'objWord.Quit

' libérer la mémoire
Set objWord = Nothing
End Sub
Messages postés
3
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
30 avril 2010

Merci!

En fait j'ai à peu près réussi à faire ce que je voulais en faisant ceci :

Dim DocWord As Word.Document

Repertoire = "D:\Boulot"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWord = objFSO.GetFolder(Repertoire)

For Each File In objWord.Files

Set DocWord = GetObject(File)

.....

Next

Par contre, il me traite meme les docs temporaire.
Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013

certaines variables déclarés n'ont pas été utilisés fFile et variable merci de ne pas en tenir compte
Messages postés
3
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
30 avril 2010

Merci pour votre contribution!

ca fonctionne :)