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

Résolu
cs_fredburton Messages postés 3 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 30 avril 2010 - 30 avril 2010 à 10:39
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
A voir également:

6 réponses

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 à 14:22
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
3
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
merci d'accepter la réponse dans ce cas
3
cs_Le Pivert Messages postés 7870 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 23 janvier 2023 137
30 avril 2010 à 11:48
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
0
cs_fredburton Messages postés 3 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 30 avril 2010
30 avril 2010 à 13:50
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.
0

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

Posez votre question
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 à 14:24
certaines variables déclarés n'ont pas été utilisés fFile et variable merci de ne pas en tenir compte
0
cs_fredburton Messages postés 3 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 30 avril 2010
30 avril 2010 à 17:11
Merci pour votre contribution!

ca fonctionne :)
0
Rejoignez-nous