VBA repertorier les classeurs d'un dossier

Bonjour à tous,

je me présente, Christophe, 34 ans et tout nouveau dans le domaine VBA.

Je viens d'intégrer une nouvelle société et pour me simplifier la vie dans tous les tris de documents et récupérer les informations qui me sont nécessaires j'ai besoin de faire des requêtes en VBA.

Aujourd'hui je voudrai récupérer des informations stockées dans plusieurs classeurs Excel.

Pour ce faire, j'ai commencé mes recherches sur le net et j'ai déjà un bon début de macro en boucle qui me fais la liste de tous mes fichiers, me donne l'adresse, le nom du fichier et le lien complet, ouvre et ferme les fichiers listés.

J'attends que cette macro fonctionne parfaitement avant d'y ajouter les copier-coller qui m'intéressent. Ca sera l'étape suivante!

Par contre, tout cela compilé me donne du fil a retordre et j'ai besoin de votre aide sur certains points!!

Je fais appel aux experts!!!!

Voici ma macro issu de plusieurs macro trouvées sur différents forums et adapté a mon besoin.

Option Explicit

Sub test()

Dim Dossier As String

Dossier = ActiveWorkbook.Path

ListFilesInFolder Dossier, True

End Sub

Sub ListFilesInFolder(strFolderName As String, bIncludeSubfolders As Boolean)

Static FSO As FileSystemObject

Dim oSourceFolder As Scripting.Folder

Dim oSubFolder As Scripting.Folder

Dim oFile As Scripting.File

Static wksDest As Worksheet

Static iRow As Long

Static bNotFirstTime As Boolean

If Not bNotFirstTime Then

Set wksDest = ActiveSheet

Set FSO = CreateObject("Scripting.FileSystemObject")

wksDest.Cells(2, 1) = "Dossiers"

wksDest.Cells(2, 2) = "Noms des Fichiers"

wksDest.Cells(2, 3) = "Lien des fichiers"

iRow = 3

bNotFirstTime = True

End If

Set oSourceFolder = FSO.GetFolder(strFolderName)

For Each oFile In oSourceFolder.Files

wksDest.Cells(iRow, 1) = oFile.ParentFolder.Path

wksDest.Cells(iRow, 2) = oFile.Name

wksDest.Cells(iRow, 3) = oFile.Path

Shell "explorer.exe " & wksDest.Cells(iRow, 3).Text

Application.EnableEvents = False

ActiveWorkbook.Close

Application.EnableEvents = False

iRow = iRow + 1

Next oFile

If bIncludeSubfolders Then

For Each oSubFolder In oSourceFolder.SubFolders

ListFilesInFolder oSubFolder.Path, True

Next oSubFolder

End If

End Sub

Pour l'exécution de cette macro mon fichier la contenant (nommé import) doit être placé dans le dossier.

Alors avec cette macro, mes soucis sont:

1) Mon fichier import apparait également dans la liste, donc il s'ouvre puis se ferme puis ma macro s'arrete!! c'est balo!! Comment faire pour que ce fichier n'apparaisse pas dans ma liste.

L'idéal pour moi serai d'avoir l'ouverture d'une boite de dialogue avec sélection de l'emplacement ou aller chercher les infos. Dans ce cas, je n'aurais plus besoin de mettre le fichier la ou il doit piocher les infos.

2) Je souhaite juste ouvrir les fichiers, puiser les infos qui vont bien et refermer. Pour la copie et colle j'ai la macro a adapter dans ma boucle mais mon problème est que j'ai des messages du type "activer macro" ou "voulez vous enregistre avant de fermer les fichier". Je souhaite inhiber ces message et de ce fait ne pas avoir a cliquer a chaque ouverture et fermeture de fichier.

Voila pour mes premières questions....

J'espère avoir été assez clair dans mes explications.

Je vous remercie par avance de votre aide

Crdlt

Christophe

Je souhaite inhiber ces message et de ce fait ne pas avoir a cliquer a chaque ouverture et fermeture de fichier.

Application.DisplayAlerts = False

retire les messages de confirmations

le reste me depasse dsl

Merci de ta réponse Zarik,

Qu'appels tu messages de confirmation.?

voulez vous supprimer cette feuille? ou voulez vous enregistrer les modifications apporté a la feuille"X"?

Tout simplement refermer le classeur que j'ai ouvert sans avoir a cliquer sur non a la question voulez vous enregistrer les modifications.

tout a fait

Merci Zarik.

Cela fonctionne.

Maintenant il me manque le reste!!

lol

Rechercher des sujets similaires à "vba repertorier classeurs dossier"