Bonjour à tous,
Voici mon problème : dans un fichier Excel "maître", je cherche à synthétiser des informations contenues dans d'autres fichiers Excel (tous au même format, puisqu'il s'agit de formulaires à remplir).
J'ai trouvé sur les forums une macro qui me permet de chercher tous les fichiers Excel contenus dans un certain dossier, et de copier sur mon fichier "maître" les informations "Windows" relatives à ces fichiers (date de création, lien hypertexte vers ce fichier etc). Jusque là tout va bien, puisque j'ai besoin de copier ces informations aussi...
Seulement, j'aimerais en plus récupérer des infos contenu dans les fichiers Excel en question (dans des cellules spécifiques des feuilles du fichier), et là j'ai un souci car la macro originale ne me permet pas de pouvoir ouvrir le fichier et de lire les infos dans les cellules (ou du moins j'ignore comment faire).
J'ai écumé les sujets sur le forum, sans trouver de réelles réponses à mon problèmes, et après de multiples tentatives de recopiage de code, je décide de demander votre aide !!
Voici le bout de code qui pose problème :
Je vous remercie d'avance car là je bloque vraiment !
Voici mon problème : dans un fichier Excel "maître", je cherche à synthétiser des informations contenues dans d'autres fichiers Excel (tous au même format, puisqu'il s'agit de formulaires à remplir).
J'ai trouvé sur les forums une macro qui me permet de chercher tous les fichiers Excel contenus dans un certain dossier, et de copier sur mon fichier "maître" les informations "Windows" relatives à ces fichiers (date de création, lien hypertexte vers ce fichier etc). Jusque là tout va bien, puisque j'ai besoin de copier ces informations aussi...
Seulement, j'aimerais en plus récupérer des infos contenu dans les fichiers Excel en question (dans des cellules spécifiques des feuilles du fichier), et là j'ai un souci car la macro originale ne me permet pas de pouvoir ouvrir le fichier et de lire les infos dans les cellules (ou du moins j'ignore comment faire).
J'ai écumé les sujets sur le forum, sans trouver de réelles réponses à mon problèmes, et après de multiples tentatives de recopiage de code, je décide de demander votre aide !!
Voici le bout de code qui pose problème :
Code:
Sub ListeFichiers(Repertoire As String)
'Nécessite d'activer la référence "Microsoft Scripting RunTime"
'Dans l'éditeur de macros (Alt+F11):
'Menu Outils
'Références
'Cochez la ligne "Microsoft Scripting RunTime".
'Cliquez sur le bouton OK pour valider.
Dim Fso As Scripting.FileSystemObject
Dim SourceFolder As Scripting.Folder
Dim SubFolder As Scripting.Folder
Dim FileItem As Scripting.File
Dim i As Long
Set Fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = Fso.GetFolder(Repertoire)
'Récupère le numéro de la dernière ligne vide dans la colonne A.
i = Range("A65536").End(xlUp).Row + 1
'Boucle sur tous les fichiers du répertoire
If Genre = APA Then
For Each fichier In SourceFolder.Files
'Récupère que les fichiers Excel, créés sous le nouveau format d'APA (après le 01/08/2012)
If FileItem.Name Like "?*.xls" And CDate(Format(FileItem.DateCreated, "dd/mm/yyyy")) > DateValue("01/08/2012") Then
'Ajoute un lien hypertexte vers le fichier
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 7), _
Address:=FileItem.ParentFolder & "\" & FileItem.Name
'Indique la date de création du fichier
Cells(i, 8) = FileItem.DateCreated
FileItem.Open 'Cette ligne pose problème dans la macro, puisqu'il n'arrive pas à ouvrir le fichier...
DateO = ActiveWorkbook.Sheets("formulaire").Range("D17").Text
Intitule = ActiveWorkbook.Sheets("formulaire").Range("C6").Text
Secteur = ActiveWorkbook.Sheets("formulaire").Range("D15").Text
a = 0
'Boucle pour compter les actions ouvertes
For k = 45 To 48
If Cells(k, 6) <> "" Then a = a + 1
End If
Next
NbreO = a
'Boucle pour compter les actions clôturées
b = 0
For L = 45 To 48
If Cells(L, 15) <> "" Then b = b + 1
End If
Next
NbreC = b
DateC = ActiveWorkbook.Sheets("formulaire").Range("N19").Text
'Inscrit la date de l'APA dans la 1ère cellule du fichier maître
ThisWorkbook.Sheets("APA").Cells(i, 1) = DateO
'Indique le libellé de l'APA (intitulé de la panne)dans la 2nde cellule
ThisWorkbook.Sheets("APA").Cells(i, 2) = Intitule
'Indique le secteur de l'APA
ThisWorkbook.Sheets("APA").Cells(i, 3) = Secteur
'Indique le nombre d'actions ouvertes
ThisWorkbook.Sheets("APA").Cells(i, 4) = NbreO
'Indique le nombre d'actions clôturées
ThisWorkbook.Sheets("APA").Cells(i, 5) = NbreC
'Indique la date de clôture
ThisWorkbook.Sheets("APA").Cells(i, 6) = DateC
i = i + 1
End If
FileItem.Close
Next FileItem
.....
Je vous remercie d'avance car là je bloque vraiment !