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

Messages postés
3
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
30 avril 2010
- - Dernière réponse : houtas
Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013
- 30 avril 2010 à 18:10
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
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de houtas
Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013
3
Merci
merci d'accepter la réponse dans ce cas

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de houtas
Messages postés
6297
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 octobre 2019
87
0
Merci
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
Commenter la réponse de cs_Le Pivert
Messages postés
3
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
30 avril 2010
0
Merci
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.
Commenter la réponse de cs_fredburton
Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013
0
Merci
certaines variables déclarés n'ont pas été utilisés fFile et variable merci de ne pas en tenir compte
Commenter la réponse de houtas
Messages postés
3
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
30 avril 2010
0
Merci
Merci pour votre contribution!

ca fonctionne :)
Commenter la réponse de cs_fredburton